cranberry
1package utility2
3import (4"crypto/sha256"5"encoding/hex"6
7pbapi "gitverse.ru/IvanTimofeev/cranberry/pkg/grpc"8"google.golang.org/protobuf/proto"9)
10
11func BlockHeaderToBytes(bh *pbapi.BlockHeader) []byte {12data, err := proto.Marshal(bh)13if err != nil {14panic(err)15}16return data17}
18
19func BlockHeaderToHash(bh *pbapi.BlockHeader) string {20hashBytes := BlockHeaderToHashBytes(bh)21return hex.EncodeToString(hashBytes)22}
23
24func BlockHeaderToHashBytes(bh *pbapi.BlockHeader) []byte {25data := BlockHeaderToBytes(bh)26h := sha256.New()27h.Write(data)28hash := h.Sum(nil)29return hash[:]30}
31