diff --git a/examples/basic2/go.mod b/examples/basic2/go.mod index 3846d5f..080843d 100644 --- a/examples/basic2/go.mod +++ b/examples/basic2/go.mod @@ -5,5 +5,5 @@ go 1.15 require ( github.com/ethereum/go-ethereum v1.9.5 github.com/ipfs/go-log v1.0.5 - github.com/status-im/go-waku v0.0.0-20210419000316-ef67ff356f7e + github.com/status-im/go-waku v0.0.0-20210422000937-997bc4f2d86d ) diff --git a/examples/basic2/go.sum b/examples/basic2/go.sum index 1b6cbc0..39d9d11 100644 --- a/examples/basic2/go.sum +++ b/examples/basic2/go.sum @@ -611,6 +611,8 @@ github.com/status-im/go-waku v0.0.0-20210415175540-7ba8c51bcafe h1:yGtEg5EzBpSLe github.com/status-im/go-waku v0.0.0-20210415175540-7ba8c51bcafe/go.mod h1:GjrbwNCdtae7sFmvFyXJPSRgnrcmJp3wVSjDZWOG8+s= github.com/status-im/go-waku v0.0.0-20210419000316-ef67ff356f7e h1:bb/99wDRvUQpKQQFGa4lxhJY3LRx821rqv0D4txuD1M= github.com/status-im/go-waku v0.0.0-20210419000316-ef67ff356f7e/go.mod h1:GjrbwNCdtae7sFmvFyXJPSRgnrcmJp3wVSjDZWOG8+s= +github.com/status-im/go-waku v0.0.0-20210422000937-997bc4f2d86d h1:hfCilmm5iO2Wd2rix3x9OkEmgIGHnkEkEcyy0D7ng2k= +github.com/status-im/go-waku v0.0.0-20210422000937-997bc4f2d86d/go.mod h1:GjrbwNCdtae7sFmvFyXJPSRgnrcmJp3wVSjDZWOG8+s= github.com/status-im/go-wakurelay-pubsub v0.4.2 h1:F4UGcP80H0PGaeJ0mRMzA1Ux3DKYiyv/qu3bOR/efTg= github.com/status-im/go-wakurelay-pubsub v0.4.2/go.mod h1:LSCVYR7mnBBsxVJghrGpQ3yJAAATEe6XeQQqGCZhwrE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= diff --git a/examples/basic2/main.go b/examples/basic2/main.go index 5786dc0..30214a3 100644 --- a/examples/basic2/main.go +++ b/examples/basic2/main.go @@ -14,7 +14,7 @@ import ( "github.com/ethereum/go-ethereum/crypto" logging "github.com/ipfs/go-log" "github.com/status-im/go-waku/waku/v2/node" - "github.com/status-im/go-waku/waku/v2/protocol" + "github.com/status-im/go-waku/waku/v2/protocol/pb" ) var log = logging.Logger("basic2") @@ -76,7 +76,7 @@ func write(wakuNode *node.WakuNode, msgContent string) { payload, err := p.Encode(version) - msg := &protocol.WakuMessage{ + msg := &pb.WakuMessage{ Payload: payload, Version: version, ContentTopic: contentTopic, diff --git a/examples/chat2/chat.go b/examples/chat2/chat.go index 505839b..2faf096 100644 --- a/examples/chat2/chat.go +++ b/examples/chat2/chat.go @@ -2,13 +2,12 @@ package main import ( "chat2/pb" - "context" "time" "github.com/golang/protobuf/proto" "github.com/libp2p/go-libp2p-core/peer" "github.com/status-im/go-waku/waku/v2/node" - "github.com/status-im/go-waku/waku/v2/protocol" + wpb "github.com/status-im/go-waku/waku/v2/protocol/pb" ) // Chat represents a subscription to a single PubSub topic. Messages @@ -18,7 +17,6 @@ type Chat struct { // Messages is a channel of messages received from other peers in the chat room Messages chan *pb.Chat2Message - ctx context.Context sub *node.Subscription node *node.WakuNode @@ -28,7 +26,7 @@ type Chat struct { // NewChat tries to subscribe to the PubSub topic for the room name, returning // a ChatRoom on success. -func NewChat(ctx context.Context, n *node.WakuNode, selfID peer.ID, nickname string) (*Chat, error) { +func NewChat(n *node.WakuNode, selfID peer.ID, nickname string) (*Chat, error) { // join the default waku topic and subscribe to it sub, err := n.Subscribe(nil) if err != nil { @@ -36,7 +34,6 @@ func NewChat(ctx context.Context, n *node.WakuNode, selfID peer.ID, nickname str } c := &Chat{ - ctx: ctx, node: n, sub: sub, self: selfID, @@ -77,7 +74,7 @@ func (cr *Chat) Publish(message string) error { return err } - wakuMsg := &protocol.WakuMessage{ + wakuMsg := &wpb.WakuMessage{ Payload: payload, Version: version, ContentTopic: DefaultContentTopic, @@ -89,7 +86,7 @@ func (cr *Chat) Publish(message string) error { return err } -func (cr *Chat) decodeMessage(wakumsg *protocol.WakuMessage) { +func (cr *Chat) decodeMessage(wakumsg *wpb.WakuMessage) { payload, err := node.DecodePayload(wakumsg, &node.KeyInfo{Kind: node.None}) if err != nil { return @@ -111,7 +108,7 @@ func (cr *Chat) readLoop() { } } -func (cr *Chat) displayMessages(messages []*protocol.WakuMessage) { +func (cr *Chat) displayMessages(messages []*wpb.WakuMessage) { for _, msg := range messages { cr.decodeMessage(msg) } diff --git a/examples/chat2/go.mod b/examples/chat2/go.mod index eaa2827..96a6d09 100644 --- a/examples/chat2/go.mod +++ b/examples/chat2/go.mod @@ -10,6 +10,6 @@ require ( github.com/ipfs/go-log/v2 v2.1.1 github.com/libp2p/go-libp2p-core v0.8.5 github.com/rivo/tview v0.0.0-20210312174852-ae9464cc3598 - github.com/status-im/go-waku v0.0.0-20210420214635-287a54aca716 + github.com/status-im/go-waku v0.0.0-20210422000937-997bc4f2d86d google.golang.org/protobuf v1.25.0 ) diff --git a/examples/chat2/go.sum b/examples/chat2/go.sum index 6c7a59c..818e58b 100644 --- a/examples/chat2/go.sum +++ b/examples/chat2/go.sum @@ -789,6 +789,9 @@ github.com/status-im/go-waku v0.0.0-20210415175540-7ba8c51bcafe h1:yGtEg5EzBpSLe github.com/status-im/go-waku v0.0.0-20210415175540-7ba8c51bcafe/go.mod h1:GjrbwNCdtae7sFmvFyXJPSRgnrcmJp3wVSjDZWOG8+s= github.com/status-im/go-waku v0.0.0-20210419000316-ef67ff356f7e h1:bb/99wDRvUQpKQQFGa4lxhJY3LRx821rqv0D4txuD1M= github.com/status-im/go-waku v0.0.0-20210419000316-ef67ff356f7e/go.mod h1:GjrbwNCdtae7sFmvFyXJPSRgnrcmJp3wVSjDZWOG8+s= +github.com/status-im/go-waku v0.0.0-20210420214635-287a54aca716/go.mod h1:GjrbwNCdtae7sFmvFyXJPSRgnrcmJp3wVSjDZWOG8+s= +github.com/status-im/go-waku v0.0.0-20210422000937-997bc4f2d86d h1:hfCilmm5iO2Wd2rix3x9OkEmgIGHnkEkEcyy0D7ng2k= +github.com/status-im/go-waku v0.0.0-20210422000937-997bc4f2d86d/go.mod h1:GjrbwNCdtae7sFmvFyXJPSRgnrcmJp3wVSjDZWOG8+s= github.com/status-im/go-wakurelay-pubsub v0.4.2 h1:F4UGcP80H0PGaeJ0mRMzA1Ux3DKYiyv/qu3bOR/efTg= github.com/status-im/go-wakurelay-pubsub v0.4.2/go.mod h1:LSCVYR7mnBBsxVJghrGpQ3yJAAATEe6XeQQqGCZhwrE= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= diff --git a/examples/chat2/main.go b/examples/chat2/main.go index 1fce936..a1eaf5a 100644 --- a/examples/chat2/main.go +++ b/examples/chat2/main.go @@ -19,7 +19,7 @@ import ( logging "github.com/ipfs/go-log" "github.com/libp2p/go-libp2p-core/peer" "github.com/status-im/go-waku/waku/v2/node" - store "github.com/status-im/go-waku/waku/v2/protocol/waku_store" + "github.com/status-im/go-waku/waku/v2/protocol/store" ) var DefaultContentTopic string = "dingpu" @@ -68,7 +68,7 @@ func main() { } // join the chat - chat, err := NewChat(ctx, wakuNode, wakuNode.Host().ID(), nick) + chat, err := NewChat(wakuNode, wakuNode.Host().ID(), nick) if err != nil { panic(err) } @@ -80,7 +80,7 @@ func main() { } logging.SetAllLoggers(lvl) - ui := NewChatUI(chat) + ui := NewChatUI(ctx, chat) // Connect to a static node or use random node from fleets.status.im go func() { @@ -124,7 +124,8 @@ func main() { time.Sleep(300 * time.Millisecond) ui.displayMessage("Querying historic messages") - response, err := wakuNode.Query([]string{DefaultContentTopic}, 0, 0, + tCtx, _ := context.WithTimeout(ctx, 1*time.Second) + response, err := wakuNode.Query(tCtx, []string{DefaultContentTopic}, 0, 0, store.WithAutomaticRequestId(), store.WithPeer(*storeNodeId), store.WithPaging(true, 0)) diff --git a/examples/chat2/ui.go b/examples/chat2/ui.go index 3618219..bbf0012 100644 --- a/examples/chat2/ui.go +++ b/examples/chat2/ui.go @@ -2,6 +2,7 @@ package main import ( "chat2/pb" + "context" "fmt" "io" "strings" @@ -23,11 +24,13 @@ type ChatUI struct { msgW io.Writer inputCh chan string doneCh chan struct{} + + ctx context.Context } // NewChatUI returns a new ChatUI struct that controls the text UI. // It won't actually do anything until you call Run(). -func NewChatUI(chat *Chat) *ChatUI { +func NewChatUI(ctx context.Context, chat *Chat) *ChatUI { chatUI := new(ChatUI) app := tview.NewApplication() @@ -137,6 +140,7 @@ Available commands: chatUI.app = app chatUI.msgW = msgBox chatUI.chat = chat + chatUI.ctx = ctx chatUI.inputCh = inputCh chatUI.doneCh = make(chan struct{}, 1) @@ -193,7 +197,7 @@ func (ui *ChatUI) handleEvents() { // when we receive a message from the chat room, print it to the message window ui.displayChatMessage(m) - case <-ui.chat.ctx.Done(): + case <-ui.ctx.Done(): return case <-ui.doneCh: