From ff8d4ef8a4e8ff53f9b3886f09524127ce8323c8 Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Thu, 8 Apr 2021 18:07:31 -0400 Subject: [PATCH] change ContentTopic from uint32 to string --- cmd/root.go | 5 +- waku/v2/node/wakunode2.go | 2 +- waku/v2/protocol/waku_message.pb.go | 54 +++--- waku/v2/protocol/waku_message.proto | 2 +- waku/v2/protocol/waku_store.pb.go | 190 ++++++++-------------- waku/v2/protocol/waku_store.proto | 2 +- waku/v2/protocol/waku_store/waku_store.go | 3 +- 7 files changed, 110 insertions(+), 148 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index f4f3aaac..72fd8cbc 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -3,7 +3,6 @@ package cmd import ( "context" "crypto/rand" - "encoding/binary" "encoding/hex" "fmt" "net" @@ -39,7 +38,7 @@ func (dbStore *DBStore) Put(message *protocol.WakuMessage) error { func (dbStore *DBStore) GetAll() ([]*protocol.WakuMessage, error) { fmt.Println("TODO: Implement MessageProvider.GetAll. Returning a sample message") exampleMessage := new(protocol.WakuMessage) - exampleMessage.ContentTopic = 1 + exampleMessage.ContentTopic = "dingpu" exampleMessage.Payload = []byte("Hello!") exampleMessage.Version = 0 @@ -115,7 +114,7 @@ var rootCmd = &cobra.Command{ return } - var DefaultContentTopic uint32 = binary.LittleEndian.Uint32([]byte("dingpu")) + var DefaultContentTopic string = "dingpu" response, err := wakuNode.Query(DefaultContentTopic, true, 10) if err != nil { diff --git a/waku/v2/node/wakunode2.go b/waku/v2/node/wakunode2.go index c0374443..6b28b0f8 100644 --- a/waku/v2/node/wakunode2.go +++ b/waku/v2/node/wakunode2.go @@ -196,7 +196,7 @@ func (w *WakuNode) AddStorePeer(address string) error { return w.store.AddPeer(info.ID, info.Addrs) } -func (w *WakuNode) Query(contentTopic uint32, asc bool, pageSize uint64) (*protocol.HistoryResponse, error) { +func (w *WakuNode) Query(contentTopic string, asc bool, pageSize uint64) (*protocol.HistoryResponse, error) { if w.store == nil { return nil, errors.New("WakuStore is not set") } diff --git a/waku/v2/protocol/waku_message.pb.go b/waku/v2/protocol/waku_message.pb.go index 6a69d8ab..47b47c23 100644 --- a/waku/v2/protocol/waku_message.pb.go +++ b/waku/v2/protocol/waku_message.pb.go @@ -25,7 +25,7 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type WakuMessage struct { Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` - ContentTopic uint32 `protobuf:"varint,2,opt,name=contentTopic,proto3" json:"contentTopic,omitempty"` + ContentTopic string `protobuf:"bytes,2,opt,name=contentTopic,proto3" json:"contentTopic,omitempty"` Version uint32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` Timestamp float64 `protobuf:"fixed64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Proof []byte `protobuf:"bytes,21,opt,name=proof,proto3" json:"proof,omitempty"` @@ -74,11 +74,11 @@ func (m *WakuMessage) GetPayload() []byte { return nil } -func (m *WakuMessage) GetContentTopic() uint32 { +func (m *WakuMessage) GetContentTopic() string { if m != nil { return m.ContentTopic } - return 0 + return "" } func (m *WakuMessage) GetVersion() uint32 { @@ -109,19 +109,19 @@ func init() { func init() { proto.RegisterFile("waku_message.proto", fileDescriptor_6f0a20862b3bf714) } var fileDescriptor_6f0a20862b3bf714 = []byte{ - // 183 bytes of a gzipped FileDescriptorProto + // 186 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2a, 0x4f, 0xcc, 0x2e, 0x8d, 0xcf, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x00, 0x53, 0xc9, 0xf9, 0x39, 0x4a, 0x33, 0x19, 0xb9, 0xb8, 0xc3, 0x13, 0xb3, 0x4b, 0x7d, 0x21, 0xf2, 0x42, 0x12, 0x5c, 0xec, 0x05, 0x89, 0x95, 0x39, 0xf9, 0x89, 0x29, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0x3c, 0x41, 0x30, 0xae, 0x90, 0x12, 0x17, 0x4f, 0x72, 0x7e, 0x5e, 0x49, 0x6a, 0x5e, 0x49, - 0x48, 0x7e, 0x41, 0x66, 0xb2, 0x04, 0x93, 0x02, 0xa3, 0x06, 0x6f, 0x10, 0x8a, 0x18, 0x48, 0x77, - 0x59, 0x6a, 0x51, 0x71, 0x66, 0x7e, 0x9e, 0x04, 0x33, 0x58, 0x1a, 0xc6, 0x15, 0x92, 0xe1, 0xe2, - 0x2c, 0xc9, 0xcc, 0x4d, 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0x90, 0x60, 0x51, 0x60, 0xd4, 0x60, 0x0c, - 0x42, 0x08, 0x08, 0x89, 0x70, 0xb1, 0x16, 0x14, 0xe5, 0xe7, 0xa7, 0x49, 0x88, 0x82, 0xed, 0x84, - 0x70, 0x9c, 0x04, 0x4e, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, - 0x19, 0x8f, 0xe5, 0x18, 0x92, 0xd8, 0xc0, 0xee, 0x36, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xc9, - 0xff, 0x08, 0x77, 0xd4, 0x00, 0x00, 0x00, + 0x48, 0x7e, 0x41, 0x66, 0xb2, 0x04, 0x93, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x8a, 0x18, 0x48, 0x77, + 0x59, 0x6a, 0x51, 0x71, 0x66, 0x7e, 0x9e, 0x04, 0xb3, 0x02, 0xa3, 0x06, 0x6f, 0x10, 0x8c, 0x2b, + 0x24, 0xc3, 0xc5, 0x59, 0x92, 0x99, 0x9b, 0x5a, 0x5c, 0x92, 0x98, 0x5b, 0x20, 0xc1, 0xa2, 0xc0, + 0xa8, 0xc1, 0x18, 0x84, 0x10, 0x10, 0x12, 0xe1, 0x62, 0x2d, 0x28, 0xca, 0xcf, 0x4f, 0x93, 0x10, + 0x05, 0xdb, 0x09, 0xe1, 0x38, 0x09, 0x9c, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, + 0x47, 0x72, 0x8c, 0x33, 0x1e, 0xcb, 0x31, 0x24, 0xb1, 0x81, 0xdd, 0x6d, 0x0c, 0x08, 0x00, 0x00, + 0xff, 0xff, 0xb0, 0xa0, 0x70, 0x06, 0xd4, 0x00, 0x00, 0x00, } func (m *WakuMessage) Marshal() (dAtA []byte, err error) { @@ -168,10 +168,12 @@ func (m *WakuMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x18 } - if m.ContentTopic != 0 { - i = encodeVarintWakuMessage(dAtA, i, uint64(m.ContentTopic)) + if len(m.ContentTopic) > 0 { + i -= len(m.ContentTopic) + copy(dAtA[i:], m.ContentTopic) + i = encodeVarintWakuMessage(dAtA, i, uint64(len(m.ContentTopic))) i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } if len(m.Payload) > 0 { i -= len(m.Payload) @@ -204,8 +206,9 @@ func (m *WakuMessage) Size() (n int) { if l > 0 { n += 1 + l + sovWakuMessage(uint64(l)) } - if m.ContentTopic != 0 { - n += 1 + sovWakuMessage(uint64(m.ContentTopic)) + l = len(m.ContentTopic) + if l > 0 { + n += 1 + l + sovWakuMessage(uint64(l)) } if m.Version != 0 { n += 1 + sovWakuMessage(uint64(m.Version)) @@ -293,10 +296,10 @@ func (m *WakuMessage) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ContentTopic", wireType) } - m.ContentTopic = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowWakuMessage @@ -306,11 +309,24 @@ func (m *WakuMessage) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ContentTopic |= uint32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthWakuMessage + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthWakuMessage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContentTopic = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 3: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) diff --git a/waku/v2/protocol/waku_message.proto b/waku/v2/protocol/waku_message.proto index 1fd859cb..3f924962 100644 --- a/waku/v2/protocol/waku_message.proto +++ b/waku/v2/protocol/waku_message.proto @@ -4,7 +4,7 @@ package protocol; message WakuMessage { bytes payload = 1; - uint32 contentTopic = 2; + string contentTopic = 2; uint32 version = 3; double timestamp = 4; bytes proof = 21; diff --git a/waku/v2/protocol/waku_store.pb.go b/waku/v2/protocol/waku_store.pb.go index 348f722c..ada44989 100644 --- a/waku/v2/protocol/waku_store.pb.go +++ b/waku/v2/protocol/waku_store.pb.go @@ -167,7 +167,7 @@ func (m *PagingInfo) GetDirection() PagingInfo_Direction { } type HistoryQuery struct { - Topics []uint32 `protobuf:"varint,1,rep,packed,name=topics,proto3" json:"topics,omitempty"` + Topics []string `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"` PagingInfo *PagingInfo `protobuf:"bytes,2,opt,name=pagingInfo,proto3" json:"pagingInfo,omitempty"` StartTime float64 `protobuf:"fixed64,3,opt,name=startTime,proto3" json:"startTime,omitempty"` EndTime float64 `protobuf:"fixed64,4,opt,name=endTime,proto3" json:"endTime,omitempty"` @@ -209,7 +209,7 @@ func (m *HistoryQuery) XXX_DiscardUnknown() { var xxx_messageInfo_HistoryQuery proto.InternalMessageInfo -func (m *HistoryQuery) GetTopics() []uint32 { +func (m *HistoryQuery) GetTopics() []string { if m != nil { return m.Topics } @@ -367,34 +367,34 @@ func init() { func init() { proto.RegisterFile("waku_store.proto", fileDescriptor_ca6891f77a46e680) } var fileDescriptor_ca6891f77a46e680 = []byte{ - // 427 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x51, 0xc1, 0x6e, 0xd3, 0x40, - 0x10, 0xed, 0x92, 0x36, 0xb5, 0x27, 0x81, 0x46, 0x23, 0xa8, 0x4c, 0x05, 0x56, 0xe4, 0x03, 0xe4, - 0x80, 0x2c, 0x61, 0xe0, 0xc6, 0xa5, 0x4d, 0x85, 0x88, 0x10, 0xa2, 0x2c, 0x48, 0x3d, 0x56, 0xc6, - 0x1e, 0xac, 0x55, 0xa9, 0xd7, 0xdd, 0x5d, 0x03, 0xed, 0x57, 0x70, 0xe0, 0xc0, 0x9f, 0xf0, 0x0b, - 0x1c, 0xf9, 0x04, 0x14, 0x7e, 0x04, 0x65, 0xbd, 0xb6, 0x83, 0xe0, 0xd4, 0xd3, 0xea, 0xcd, 0x7b, - 0x33, 0xf3, 0xf6, 0x0d, 0x4c, 0x3e, 0xa5, 0xa7, 0xf5, 0x89, 0x36, 0x52, 0x51, 0x5c, 0x29, 0x69, - 0x24, 0x7a, 0xf6, 0xc9, 0xe4, 0x87, 0x3d, 0xb4, 0xdc, 0x19, 0x69, 0x9d, 0x16, 0x8e, 0x8d, 0xe6, - 0xb0, 0xb5, 0x28, 0x73, 0xfa, 0x8c, 0xbb, 0x30, 0xcc, 0x45, 0x41, 0xda, 0x04, 0x6c, 0xca, 0x66, - 0x63, 0xee, 0x10, 0x46, 0x30, 0x56, 0x94, 0x91, 0xf8, 0x48, 0xf9, 0x5b, 0x71, 0x46, 0xc1, 0xb5, - 0x29, 0x9b, 0x31, 0xfe, 0x57, 0x2d, 0xfa, 0xce, 0x00, 0x8e, 0xd2, 0x42, 0x94, 0xc5, 0xa2, 0x7c, - 0x2f, 0x71, 0x0f, 0xbc, 0x2a, 0x2d, 0xe8, 0x8d, 0xb8, 0x24, 0x3b, 0x6c, 0x93, 0x77, 0x18, 0xef, - 0xc3, 0x30, 0xab, 0x95, 0x96, 0xca, 0x0e, 0x1a, 0x25, 0x3b, 0x71, 0x6b, 0x2f, 0xb6, 0x3e, 0xb8, - 0xa3, 0xf1, 0x29, 0xf8, 0xb9, 0x50, 0x94, 0x19, 0x21, 0xcb, 0x60, 0x30, 0x65, 0xb3, 0x1b, 0x49, - 0xd8, 0x6b, 0xfb, 0x6d, 0xf1, 0x61, 0xab, 0xe2, 0x7d, 0x43, 0x74, 0x0f, 0xfc, 0xae, 0x8e, 0x63, - 0xf0, 0x0e, 0xf6, 0xe7, 0x2f, 0x8e, 0xf7, 0xf9, 0xe1, 0x64, 0x03, 0x47, 0xb0, 0xfd, 0xec, 0x15, - 0xb7, 0x80, 0x45, 0x5f, 0x19, 0x8c, 0x9f, 0x8b, 0x55, 0x5c, 0x17, 0xaf, 0x6b, 0x52, 0x17, 0xab, - 0x18, 0x8c, 0xac, 0x44, 0xa6, 0x03, 0x36, 0x1d, 0xcc, 0xae, 0x73, 0x87, 0xf0, 0x31, 0x40, 0xd5, - 0xed, 0x74, 0xde, 0x6f, 0xfe, 0xcf, 0x0f, 0x5f, 0xd3, 0xe1, 0x1d, 0xf0, 0xb5, 0x49, 0x95, 0xb1, - 0xc9, 0x0d, 0x6c, 0x72, 0x7d, 0x01, 0x03, 0xd8, 0xa6, 0xb2, 0x49, 0x75, 0xd3, 0x72, 0x2d, 0x8c, - 0x2e, 0x61, 0xc7, 0xb9, 0xe2, 0xa4, 0x2b, 0x59, 0x6a, 0xc2, 0x87, 0xe0, 0xb9, 0xcb, 0x35, 0xd6, - 0x46, 0xc9, 0xad, 0x7e, 0xfd, 0x71, 0x7a, 0x5a, 0xbf, 0x6c, 0x58, 0xde, 0xc9, 0xae, 0xe6, 0x39, - 0xfa, 0xc2, 0x00, 0xda, 0xe5, 0x47, 0x73, 0xbc, 0x0b, 0xa0, 0xe8, 0xbc, 0x26, 0x6d, 0x4e, 0x44, - 0x6e, 0xcf, 0xe9, 0x73, 0xdf, 0x55, 0x16, 0x39, 0x3e, 0x80, 0xad, 0xf3, 0x55, 0x70, 0x6e, 0xfc, - 0x6e, 0x3f, 0x7e, 0x3d, 0x56, 0xde, 0x88, 0xf0, 0x09, 0x78, 0xca, 0x7d, 0xc8, 0xc6, 0x31, 0x4a, - 0x6e, 0xff, 0xd3, 0xd0, 0xfe, 0x98, 0x77, 0xd2, 0x83, 0xc9, 0x8f, 0x65, 0xc8, 0x7e, 0x2e, 0x43, - 0xf6, 0x6b, 0x19, 0xb2, 0x6f, 0xbf, 0xc3, 0x8d, 0x77, 0x43, 0xdb, 0xf5, 0xe8, 0x4f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x7e, 0xa9, 0x5e, 0x0d, 0xef, 0x02, 0x00, 0x00, + // 426 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x51, 0xc1, 0x6e, 0xd4, 0x30, + 0x10, 0xad, 0xd9, 0x76, 0x9b, 0xcc, 0xae, 0xe8, 0x6a, 0x04, 0x55, 0xa8, 0x20, 0x5a, 0xe5, 0x00, + 0x39, 0xa0, 0x48, 0x04, 0xb8, 0x71, 0x69, 0xb7, 0x42, 0xac, 0x10, 0xa2, 0x18, 0xa4, 0x1e, 0xab, + 0x90, 0x0c, 0x91, 0x55, 0x1a, 0xa7, 0xb6, 0x03, 0xb4, 0x5f, 0xc1, 0x81, 0x03, 0x7f, 0xc2, 0x2f, + 0x70, 0xe4, 0x13, 0xd0, 0xf2, 0x23, 0x68, 0x1d, 0x27, 0x29, 0x82, 0x13, 0x27, 0xeb, 0xcd, 0x7b, + 0x33, 0xf3, 0xfc, 0x06, 0x66, 0x1f, 0xb3, 0xd3, 0xe6, 0x44, 0x1b, 0xa9, 0x28, 0xa9, 0x95, 0x34, + 0x12, 0x3d, 0xfb, 0xe4, 0xf2, 0xfd, 0x1e, 0x5a, 0xee, 0x8c, 0xb4, 0xce, 0x4a, 0xc7, 0x46, 0x0b, + 0xd8, 0x5a, 0x56, 0x05, 0x7d, 0xc2, 0x5d, 0x18, 0x17, 0xa2, 0x24, 0x6d, 0x02, 0x36, 0x67, 0xf1, + 0x94, 0x3b, 0x84, 0x11, 0x4c, 0x15, 0xe5, 0x24, 0x3e, 0x50, 0xf1, 0x46, 0x9c, 0x51, 0x70, 0x6d, + 0xce, 0x62, 0xc6, 0xff, 0xa8, 0x45, 0xdf, 0x18, 0xc0, 0x51, 0x56, 0x8a, 0xaa, 0x5c, 0x56, 0xef, + 0x24, 0xee, 0x81, 0x57, 0x67, 0x25, 0xbd, 0x16, 0x97, 0x64, 0x87, 0x6d, 0xf2, 0x1e, 0xe3, 0x3d, + 0x18, 0xe7, 0x8d, 0xd2, 0x52, 0xd9, 0x41, 0x93, 0x74, 0x27, 0xe9, 0xec, 0x25, 0xd6, 0x07, 0x77, + 0x34, 0x3e, 0x01, 0xbf, 0x10, 0x8a, 0x72, 0x23, 0x64, 0x15, 0x8c, 0xe6, 0x2c, 0xbe, 0x9e, 0x86, + 0x83, 0x76, 0xd8, 0x96, 0x1c, 0x76, 0x2a, 0x3e, 0x34, 0x44, 0x77, 0xc1, 0xef, 0xeb, 0x38, 0x05, + 0xef, 0x60, 0x7f, 0xf1, 0xfc, 0x78, 0x9f, 0x1f, 0xce, 0x36, 0x70, 0x02, 0xdb, 0x4f, 0x5f, 0x72, + 0x0b, 0x58, 0xf4, 0x85, 0xc1, 0xf4, 0x99, 0x58, 0xc7, 0x75, 0xf1, 0xaa, 0x21, 0x75, 0xb1, 0x8e, + 0xc1, 0xc8, 0x5a, 0xe4, 0x3a, 0x60, 0xf3, 0x51, 0xec, 0x73, 0x87, 0xf0, 0x11, 0x40, 0xdd, 0xef, + 0x74, 0xde, 0x6f, 0xfc, 0xcb, 0x0f, 0xbf, 0xa2, 0xc3, 0xdb, 0xe0, 0x6b, 0x93, 0x29, 0x63, 0x93, + 0x1b, 0xd9, 0xe4, 0x86, 0x02, 0x06, 0xb0, 0x4d, 0x55, 0x9b, 0xea, 0xa6, 0xe5, 0x3a, 0x18, 0x5d, + 0xc2, 0x8e, 0x73, 0xc5, 0x49, 0xd7, 0xb2, 0xd2, 0x84, 0x0f, 0xc0, 0x73, 0x97, 0x6b, 0xad, 0x4d, + 0xd2, 0x9b, 0xc3, 0xfa, 0xe3, 0xec, 0xb4, 0x79, 0xd1, 0xb2, 0xbc, 0x97, 0xfd, 0x9f, 0xe7, 0xe8, + 0x33, 0x03, 0xe8, 0x96, 0x1f, 0x2d, 0xf0, 0x0e, 0x80, 0xa2, 0xf3, 0x86, 0xb4, 0x39, 0x11, 0x85, + 0x3d, 0xa7, 0xcf, 0x7d, 0x57, 0x59, 0x16, 0x78, 0x1f, 0xb6, 0xce, 0xd7, 0xc1, 0xb9, 0xf1, 0xbb, + 0xc3, 0xf8, 0xab, 0xb1, 0xf2, 0x56, 0x84, 0x8f, 0xc1, 0x53, 0xee, 0x43, 0x36, 0x8e, 0x49, 0x7a, + 0xeb, 0xaf, 0x86, 0xee, 0xc7, 0xbc, 0x97, 0x1e, 0xcc, 0xbe, 0xaf, 0x42, 0xf6, 0x63, 0x15, 0xb2, + 0x9f, 0xab, 0x90, 0x7d, 0xfd, 0x15, 0x6e, 0xbc, 0x1d, 0xdb, 0xae, 0x87, 0xbf, 0x03, 0x00, 0x00, + 0xff, 0xff, 0x9f, 0x85, 0xef, 0xfb, 0xef, 0x02, 0x00, 0x00, } func (m *Index) Marshal() (dAtA []byte, err error) { @@ -535,22 +535,13 @@ func (m *HistoryQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } if len(m.Topics) > 0 { - dAtA4 := make([]byte, len(m.Topics)*10) - var j3 int - for _, num := range m.Topics { - for num >= 1<<7 { - dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j3++ - } - dAtA4[j3] = uint8(num) - j3++ + for iNdEx := len(m.Topics) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Topics[iNdEx]) + copy(dAtA[i:], m.Topics[iNdEx]) + i = encodeVarintWakuStore(dAtA, i, uint64(len(m.Topics[iNdEx]))) + i-- + dAtA[i] = 0xa } - i -= j3 - copy(dAtA[i:], dAtA4[:j3]) - i = encodeVarintWakuStore(dAtA, i, uint64(j3)) - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -725,11 +716,10 @@ func (m *HistoryQuery) Size() (n int) { var l int _ = l if len(m.Topics) > 0 { - l = 0 - for _, e := range m.Topics { - l += sovWakuStore(uint64(e)) + for _, s := range m.Topics { + l = len(s) + n += 1 + l + sovWakuStore(uint64(l)) } - n += 1 + sovWakuStore(uint64(l)) + l } if m.PagingInfo != nil { l = m.PagingInfo.Size() @@ -1050,81 +1040,37 @@ func (m *HistoryQuery) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowWakuStore - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Topics = append(m.Topics, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowWakuStore - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthWakuStore - } - postIndex := iNdEx + packedLen - if postIndex < 0 { - return ErrInvalidLengthWakuStore - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var elementCount int - var count int - for _, integer := range dAtA[iNdEx:postIndex] { - if integer < 128 { - count++ - } - } - elementCount = count - if elementCount != 0 && len(m.Topics) == 0 { - m.Topics = make([]uint32, 0, elementCount) - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowWakuStore - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Topics = append(m.Topics, v) - } - } else { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Topics", wireType) } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWakuStore + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthWakuStore + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthWakuStore + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Topics = append(m.Topics, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field PagingInfo", wireType) diff --git a/waku/v2/protocol/waku_store.proto b/waku/v2/protocol/waku_store.proto index 0dbeec18..3fe260af 100644 --- a/waku/v2/protocol/waku_store.proto +++ b/waku/v2/protocol/waku_store.proto @@ -20,7 +20,7 @@ message PagingInfo { } message HistoryQuery { - repeated uint32 topics = 1; + repeated string topics = 1; PagingInfo pagingInfo = 2; // used for pagination double startTime = 3; double endTime = 4; diff --git a/waku/v2/protocol/waku_store/waku_store.go b/waku/v2/protocol/waku_store/waku_store.go index ca1f8abb..0626395d 100644 --- a/waku/v2/protocol/waku_store/waku_store.go +++ b/waku/v2/protocol/waku_store/waku_store.go @@ -31,6 +31,7 @@ var log = logging.Logger("wakustore") const WakuStoreProtocolId = libp2pProtocol.ID("/vac/waku/store/2.0.0-beta1") const MaxPageSize = 100 // Maximum number of waku messages in each page const ConnectionTimeout = 10 * time.Second +const DefaultContentTopic = "/waku/2/default-content/proto" func minOf(vars ...int) int { min := vars[0] @@ -133,7 +134,7 @@ func paginateWithoutIndex(list []IndexedWakuMessage, pinfo *protocol.PagingInfo) return } -func contains(s []uint32, e uint32) bool { +func contains(s []string, e string) bool { for _, a := range s { if a == e { return true