cranberry
1package utility
2
3import (
4"crypto/sha256"
5"encoding/hex"
6
7pbapi "gitverse.ru/IvanTimofeev/cranberry/pkg/grpc"
8"google.golang.org/protobuf/proto"
9)
10
11func BytesToTx(data []byte) *pbapi.Tx {
12tx := &pbapi.Tx{}
13err := proto.Unmarshal(data, tx)
14if err != nil {
15panic(err)
16}
17return tx
18}
19
20func TxToBytes(tx *pbapi.Tx) []byte {
21data, err := proto.Marshal(tx)
22if err != nil {
23panic(err)
24}
25return data
26}
27
28func TxToHashBytes(tx *pbapi.Tx) []byte {
29data := TxToBytes(tx)
30h := sha256.New()
31h.Write(data)
32hash := h.Sum(nil)
33return hash[:]
34}
35
36func TxToHash(tx *pbapi.Tx) string {
37hashBytes := TxToHashBytes(tx)
38return hex.EncodeToString(hashBytes)
39}
40