From 088cc0f11b25a26fa156550f7d3266730919277a Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Sun, 25 Jan 2026 23:21:37 +0100 Subject: [PATCH] fix compilation issues --- waku/common/message_hash.go | 24 ++++++++++++++++++++++++ waku/nwaku.go | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/waku/common/message_hash.go b/waku/common/message_hash.go index 65c66fc..d976e67 100644 --- a/waku/common/message_hash.go +++ b/waku/common/message_hash.go @@ -3,6 +3,9 @@ package common import ( "crypto/sha256" "encoding/binary" + "encoding/hex" + "errors" + "fmt" "hash" "sync" @@ -27,6 +30,27 @@ func ToMessageHash(b []byte) MessageHash { return result } +func ToMessageHashFromStringFormat(val string) (MessageHash, error) { + if len(val) == 0 { + return MessageHash{}, errors.New("empty message hash string not allowed") + } + + if len(val) < 2 || val[:2] != "0x" { + return MessageHash{}, errors.New("string must start with 0x") + } + + // Remove "0x" prefix for hex decoding + hexStr := val[2:] + + // Verify the remaining string is valid hex + v, err := hex.DecodeString(hexStr) + if err != nil { + return MessageHash{}, fmt.Errorf("invalid hex string: %v", err) + + } + return MessageHash(v), nil +} + var sha256Pool = sync.Pool{New: func() interface{} { return sha256.New() }} diff --git a/waku/nwaku.go b/waku/nwaku.go index 5e2490d..18b83b4 100644 --- a/waku/nwaku.go +++ b/waku/nwaku.go @@ -1015,7 +1015,7 @@ func (n *WakuNode) RelayPublish(ctx context.Context, message *common.WakuMessage wg.Wait() if C.getRet(resp) == C.RET_OK { msgHash := C.GoStringN(C.getMyCharPtr(resp), C.int(C.getMyCharLen(resp))) - parsedMsgHash, err := common.ToMessageHash(msgHash) + parsedMsgHash, err := common.ToMessageHashFromStringFormat(msgHash) if err != nil { return common.MessageHash([32]byte{}), err }