diff --git a/waku/common/envelope.go b/waku/common/envelope.go index bbdd972..1c18512 100644 --- a/waku/common/envelope.go +++ b/waku/common/envelope.go @@ -2,15 +2,13 @@ package common import ( "encoding/json" - - "github.com/logos-messaging/logos-messaging-go-bindings/waku/pb" ) // Envelope contains information about the pubsub topic of a WakuMessage // and a hash used to identify a message based on the bytes of a WakuMessage // protobuffer type Envelope struct { - msg *pb.WakuMessage + msg *WakuMessage topic string hash MessageHash } @@ -39,7 +37,7 @@ func (e *Envelope) UnmarshalJSON(input []byte) error { return err } - e.msg = &pb.WakuMessage{ + e.msg = &WakuMessage{ Payload: wakuEnvelope.WakuMessage.Payload, ContentTopic: wakuEnvelope.WakuMessage.ContentTopic, Version: wakuEnvelope.WakuMessage.Version, @@ -54,7 +52,7 @@ func (e *Envelope) UnmarshalJSON(input []byte) error { return nil } -func (e *Envelope) Message() *pb.WakuMessage { +func (e *Envelope) Message() *WakuMessage { return e.msg } diff --git a/waku/pb/message.pb.go b/waku/common/message.pb.go similarity index 96% rename from waku/pb/message.pb.go rename to waku/common/message.pb.go index bfa40ef..920a243 100644 --- a/waku/pb/message.pb.go +++ b/waku/common/message.pb.go @@ -1,13 +1,14 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // 14/WAKU2-MESSAGE rfc: https://rfc.vac.dev/spec/14/ -package pb +package common import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" ) const ( @@ -42,6 +43,12 @@ func (x *WakuMessage) String() string { return protoimpl.X.MessageStringOf(x) } +// Hash calculates the hash of a waku message +func (msg *WakuMessage) Hash(pubsubTopic string) MessageHash { + hash := SHA256([]byte(pubsubTopic), msg.Payload, []byte(msg.ContentTopic), msg.Meta, toBytes(msg.GetTimestamp())) + return ToMessageHash(hash) +} + func (*WakuMessage) ProtoMessage() {} func (x *WakuMessage) ProtoReflect() protoreflect.Message { diff --git a/waku/common/message_hash.go b/waku/common/message_hash.go index 3b21068..65c66fc 100644 --- a/waku/common/message_hash.go +++ b/waku/common/message_hash.go @@ -7,10 +7,6 @@ import ( "sync" "github.com/ethereum/go-ethereum/common/hexutil" - "go.uber.org/zap" - "go.uber.org/zap/zapcore" - - "github.com/logos-messaging/logos-messaging-go-bindings/waku/pb" ) // MessageHash represents an unique identifier for a message within a pubsub topic @@ -49,27 +45,8 @@ func SHA256(data ...[]byte) []byte { return h.Sum(nil) } -// Hash calculates the hash of a waku message -func (msg *pb.WakuMessage) Hash(pubsubTopic string) MessageHash { - hash := SHA256([]byte(pubsubTopic), msg.Payload, []byte(msg.ContentTopic), msg.Meta, toBytes(msg.GetTimestamp())) - return ToMessageHash(hash) -} - func toBytes(i int64) []byte { b := make([]byte, 8) binary.BigEndian.PutUint64(b, uint64(i)) return b } - -func (msg *pb.WakuMessage) LogFields(pubsubTopic string) []zapcore.Field { - return []zapcore.Field{ - zap.Stringer("hash", msg.Hash(pubsubTopic)), - zap.String("pubsubTopic", pubsubTopic), - zap.String("contentTopic", msg.ContentTopic), - zap.Int64("timestamp", msg.GetTimestamp()), - } -} - -func (msg *pb.WakuMessage) Logger(logger *zap.Logger, pubsubTopic string) *zap.Logger { - return logger.With(msg.LogFields(pubsubTopic)...) -} diff --git a/waku/nwaku.go b/waku/nwaku.go index 866d7be..8dac952 100644 --- a/waku/nwaku.go +++ b/waku/nwaku.go @@ -359,7 +359,6 @@ import ( "github.com/libp2p/go-libp2p/core/peer" libp2pproto "github.com/libp2p/go-libp2p/core/protocol" "github.com/multiformats/go-multiaddr" - "github.com/logos-messaging/logos-messaging-go-bindings/waku/pb" "github.com/logos-messaging/logos-messaging-go-bindings/waku/utils" "github.com/logos-messaging/logos-messaging-go-bindings/waku/common" diff --git a/waku/nwaku_test.go b/waku/nwaku_test.go index 041b699..af02e3f 100644 --- a/waku/nwaku_test.go +++ b/waku/nwaku_test.go @@ -16,7 +16,6 @@ import ( "github.com/logos-messaging/logos-messaging-go-bindings/waku/common" ma "github.com/multiformats/go-multiaddr" "github.com/stretchr/testify/require" - "github.com/logos-messaging/logos-messaging-go-bindings/waku/pb" "github.com/logos-messaging/logos-messaging-go-bindings/waku/store" ) diff --git a/waku/nwaku_test_utils.go b/waku/nwaku_test_utils.go index 1082331..4582122 100644 --- a/waku/nwaku_test_utils.go +++ b/waku/nwaku_test_utils.go @@ -18,7 +18,6 @@ import ( "github.com/libp2p/go-libp2p/core/peer" "github.com/logos-messaging/logos-messaging-go-bindings/utils" "github.com/logos-messaging/logos-messaging-go-bindings/waku/common" - "github.com/logos-messaging/logos-messaging-go-bindings/waku/pb" "google.golang.org/protobuf/proto" ) diff --git a/waku/payload/waku_payload.go b/waku/payload/waku_payload.go index caa4403..5ab140a 100644 --- a/waku/payload/waku_payload.go +++ b/waku/payload/waku_payload.go @@ -13,7 +13,6 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/crypto/ecies" - "github.com/logos-messaging/logos-messaging-go-bindings/waku/pb" ) // KeyKind indicates the type of encryption to apply @@ -90,7 +89,7 @@ func (payload Payload) Encode(version uint32) ([]byte, error) { return nil, errors.New("unsupported wakumessage version") } -func EncodeWakuMessage(message *pb.WakuMessage, keyInfo *KeyInfo) error { +func EncodeWakuMessage(message *WakuMessage, keyInfo *KeyInfo) error { msgPayload := message.Payload payload := Payload{ Data: msgPayload, @@ -108,7 +107,7 @@ func EncodeWakuMessage(message *pb.WakuMessage, keyInfo *KeyInfo) error { // DecodePayload decodes a WakuMessage depending on the version parameter. // 0 for raw unencrypted data, and 1 for using WakuV1 decoding -func DecodePayload(message *pb.WakuMessage, keyInfo *KeyInfo) (*DecodedPayload, error) { +func DecodePayload(message *WakuMessage, keyInfo *KeyInfo) (*DecodedPayload, error) { switch message.GetVersion() { case uint32(0): return &DecodedPayload{Data: message.Payload}, nil @@ -153,7 +152,7 @@ func DecodePayload(message *pb.WakuMessage, keyInfo *KeyInfo) (*DecodedPayload, return nil, errors.New("unsupported wakumessage version") } -func DecodeWakuMessage(message *pb.WakuMessage, keyInfo *KeyInfo) error { +func DecodeWakuMessage(message *WakuMessage, keyInfo *KeyInfo) error { decodedPayload, err := DecodePayload(message, keyInfo) if err != nil { return err diff --git a/waku/relay_test.go b/waku/relay_test.go index a0cf785..25cd96d 100644 --- a/waku/relay_test.go +++ b/waku/relay_test.go @@ -9,7 +9,6 @@ import ( "github.com/cenkalti/backoff/v3" "github.com/logos-messaging/logos-messaging-go-bindings/waku/common" "github.com/stretchr/testify/require" - "github.com/logos-messaging/logos-messaging-go-bindings/waku/pb" "google.golang.org/protobuf/proto" ) diff --git a/waku/store_test.go b/waku/store_test.go index 78821e1..4e53547 100644 --- a/waku/store_test.go +++ b/waku/store_test.go @@ -6,10 +6,8 @@ import ( "time" "github.com/cenkalti/backoff/v3" - "github.com/stretchr/testify/require" - "github.com/logos-messaging/logos-messaging-go-bindings/waku/pb" - "github.com/logos-messaging/logos-messaging-go-bindings/waku/common" + "github.com/stretchr/testify/require" "google.golang.org/protobuf/proto" ) @@ -57,7 +55,7 @@ func TestStoreQuery3Nodes(t *testing.T) { err = WaitForAutoConnection([]*WakuNode{node1, node2, node3}) require.NoError(t, err, "Nodes did not connect within timeout") Debug("Publishing message from Node1 using RelayPublish") - message := node1.CreateMessage(&pb.WakuMessage{ + message := node1.CreateMessage(&WakuMessage{ Payload: []byte("test-message"), ContentTopic: "test-content-topic", Timestamp: proto.Int64(time.Now().UnixNano()), @@ -136,7 +134,7 @@ func TestStoreQueryMultipleMessages(t *testing.T) { Debug("Publishing %d messages from Node1 using RelayPublish", numMessages) for i := 0; i < numMessages; i++ { - message := node1.CreateMessage(&pb.WakuMessage{ + message := node1.CreateMessage(&WakuMessage{ Payload: []byte(fmt.Sprintf("message-%d", i)), ContentTopic: "test-content-topic", Timestamp: proto.Int64(time.Now().UnixNano()), @@ -226,7 +224,7 @@ func TestStoreQueryWith5Pagination(t *testing.T) { Debug("Publishing %d messages from Node1 using RelayPublish", numMessages) for i := 0; i < numMessages; i++ { - message := node1.CreateMessage(&pb.WakuMessage{ + message := node1.CreateMessage(&WakuMessage{ Payload: []byte(fmt.Sprintf("message-%d", i)), ContentTopic: "test-content-topic", Timestamp: proto.Int64(time.Now().UnixNano()), @@ -308,7 +306,7 @@ func TestStoreQueryWithPaginationMultiplePages(t *testing.T) { Debug("Publishing %d messages from Node1 using RelayPublish", numMessages) for i := 0; i < numMessages; i++ { - message := node1.CreateMessage(&pb.WakuMessage{ + message := node1.CreateMessage(&WakuMessage{ Payload: []byte(fmt.Sprintf("message-%d", i)), ContentTopic: "test-content-topic", Timestamp: proto.Int64(time.Now().UnixNano()), @@ -416,7 +414,7 @@ func TestStoreQueryWithPaginationReverseOrder(t *testing.T) { queryTimestamp := proto.Int64(time.Now().UnixNano()) Debug("Publishing %d messages from Node1 using RelayPublish", numMessages) for i := 0; i < numMessages; i++ { - message := node1.CreateMessage(&pb.WakuMessage{ + message := node1.CreateMessage(&WakuMessage{ Payload: []byte(fmt.Sprintf("message-%d", i)), ContentTopic: "test-content-topic", Timestamp: proto.Int64(time.Now().UnixNano()),