diff --git a/eth-node/bridge/geth/waku.go b/eth-node/bridge/geth/waku.go index 8c016d77d..242832d15 100644 --- a/eth-node/bridge/geth/waku.go +++ b/eth-node/bridge/geth/waku.go @@ -44,12 +44,22 @@ func (w *gethWakuWrapper) PeerCount() int { } // PeerCount function only added for compatibility with waku V2 -func (w *gethWakuWrapper) AddStorePeer(address string) error { - return errors.New("not available in WakuV1") +func (w *gethWakuWrapper) AddStorePeer(address string) (string, error) { + return "", errors.New("not available in WakuV1") } // AddRelayPeer function only added for compatibility with waku V2 -func (w *gethWakuWrapper) AddRelayPeer(address string) error { +func (w *gethWakuWrapper) AddRelayPeer(address string) (string, error) { + return "", errors.New("not available in WakuV1") +} + +// DialPeer function only added for compatibility with waku V2 +func (w *gethWakuWrapper) DialPeer(address string) error { + return errors.New("not available in WakuV1") +} + +// DialPeerByID function only added for compatibility with waku V2 +func (w *gethWakuWrapper) DialPeerByID(peerID string) error { return errors.New("not available in WakuV1") } diff --git a/eth-node/bridge/geth/wakuv2.go b/eth-node/bridge/geth/wakuv2.go index a29e0c9b4..c621affb6 100644 --- a/eth-node/bridge/geth/wakuv2.go +++ b/eth-node/bridge/geth/wakuv2.go @@ -222,11 +222,11 @@ func (w *gethWakuV2Wrapper) RequestHistoricMessagesWithTimeout(peerID []byte, en return errors.New("DEPRECATED") } -func (w *gethWakuV2Wrapper) AddStorePeer(address string) error { +func (w *gethWakuV2Wrapper) AddStorePeer(address string) (string, error) { return w.waku.AddStorePeer(address) } -func (w *gethWakuV2Wrapper) AddRelayPeer(address string) error { +func (w *gethWakuV2Wrapper) AddRelayPeer(address string) (string, error) { return w.waku.AddRelayPeer(address) } @@ -234,6 +234,14 @@ func (w *gethWakuV2Wrapper) Peers() map[string][]string { return w.waku.Peers() } +func (w *gethWakuV2Wrapper) DialPeer(address string) error { + return w.waku.DialPeer(address) +} + +func (w *gethWakuV2Wrapper) DialPeerByID(peerID string) error { + return w.waku.DialPeerByID(peerID) +} + func (w *gethWakuV2Wrapper) DropPeer(peerID string) error { return w.waku.DropPeer(peerID) } diff --git a/eth-node/types/waku.go b/eth-node/types/waku.go index feaadedef..8c52f7673 100644 --- a/eth-node/types/waku.go +++ b/eth-node/types/waku.go @@ -18,9 +18,13 @@ type Waku interface { Peers() map[string][]string - AddStorePeer(address string) error + AddStorePeer(address string) (string, error) - AddRelayPeer(address string) error + AddRelayPeer(address string) (string, error) + + DialPeer(address string) error + + DialPeerByID(peerID string) error DropPeer(peerID string) error diff --git a/protocol/messenger_peers.go b/protocol/messenger_peers.go index 199ceb93b..5f56cfedd 100644 --- a/protocol/messenger_peers.go +++ b/protocol/messenger_peers.go @@ -1,13 +1,21 @@ package protocol -func (m *Messenger) AddStorePeer(address string) error { +func (m *Messenger) AddStorePeer(address string) (string, error) { return m.transport.AddStorePeer(address) } -func (m *Messenger) AddRelayPeer(address string) error { +func (m *Messenger) AddRelayPeer(address string) (string, error) { return m.transport.AddStorePeer(address) } +func (m *Messenger) DialPeer(address string) error { + return m.transport.DialPeer(address) +} + +func (m *Messenger) DialPeerByID(peerID string) error { + return m.transport.DialPeerByID(peerID) +} + func (m *Messenger) DropPeer(peerID string) error { return m.transport.DropPeer(peerID) } diff --git a/protocol/transport/transport.go b/protocol/transport/transport.go index be102a4e0..86de35e9a 100644 --- a/protocol/transport/transport.go +++ b/protocol/transport/transport.go @@ -594,14 +594,22 @@ func PubkeyToHex(key *ecdsa.PublicKey) string { return types.EncodeHex(crypto.FromECDSAPub(key)) } -func (t *Transport) AddStorePeer(address string) error { +func (t *Transport) AddStorePeer(address string) (string, error) { return t.waku.AddStorePeer(address) } -func (t *Transport) AddRelayPeer(address string) error { +func (t *Transport) AddRelayPeer(address string) (string, error) { return t.waku.AddRelayPeer(address) } +func (t *Transport) DialPeer(address string) error { + return t.waku.DialPeer(address) +} + +func (t *Transport) DialPeerByID(peerID string) error { + return t.waku.DialPeerByID(peerID) +} + func (t *Transport) DropPeer(peerID string) error { return t.waku.DropPeer(peerID) } diff --git a/services/ext/api.go b/services/ext/api.go index 88fd9a713..56c28b21a 100644 --- a/services/ext/api.go +++ b/services/ext/api.go @@ -904,14 +904,22 @@ func (api *PublicAPI) BloomFilter() string { return hexutil.Encode(api.service.messenger.BloomFilter()) } -func (api *PublicAPI) AddStorePeer(address string) error { +func (api *PublicAPI) AddStorePeer(address string) (string, error) { return api.service.messenger.AddStorePeer(address) } -func (api *PublicAPI) AddRelayPeer(address string) error { +func (api *PublicAPI) AddRelayPeer(address string) (string, error) { return api.service.messenger.AddRelayPeer(address) } +func (api *PublicAPI) DialPeer(address string) error { + return api.service.messenger.DialPeer(address) +} + +func (api *PublicAPI) DialPeerByID(peerID string) error { + return api.service.messenger.DialPeerByID(peerID) +} + func (api *PublicAPI) DropPeer(peerID string) error { return api.service.messenger.DropPeer(peerID) } diff --git a/wakuv2/waku.go b/wakuv2/waku.go index 7534574e3..92bad082d 100644 --- a/wakuv2/waku.go +++ b/wakuv2/waku.go @@ -722,14 +722,28 @@ func (w *Waku) Peers() map[string][]string { return FormatPeerStats(w.node.Peers()) } -func (w *Waku) AddStorePeer(address string) error { - _, err := w.node.AddStorePeer(address) - return err +func (w *Waku) AddStorePeer(address string) (string, error) { + peerID, err := w.node.AddStorePeer(address) + if err != nil { + return "", err + } + return string(*peerID), nil } -func (w *Waku) AddRelayPeer(address string) error { - // TODO: - return nil +func (w *Waku) AddRelayPeer(address string) (string, error) { + peerID, err := w.node.AddRelayPeer(address) + if err != nil { + return "", err + } + return string(*peerID), nil +} + +func (w *Waku) DialPeer(address string) error { + return w.node.DialPeer(address) +} + +func (w *Waku) DialPeerByID(peerID string) error { + return w.node.DialPeerByID(peer.ID(peerID)) } func (w *Waku) DropPeer(peerID string) error {