adapt library codebase to latest nim-ffi

This commit is contained in:
Ivan Folgueira Bande 2025-12-14 00:43:43 +01:00
parent 5dd5fa11dc
commit 204cf36085
No known key found for this signature in database
GPG Key ID: 3C117481F89E24A7
9 changed files with 46 additions and 45 deletions

View File

@ -26,17 +26,17 @@ proc waku_listen_addresses(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
## returns a comma-separated string of the listen addresses ## returns a comma-separated string of the listen addresses
return ok(ctx.myLib.node.getMultiaddresses().join(",")) return ok(ctx.myLib[].node.getMultiaddresses().join(","))
proc waku_get_my_enr( proc waku_get_my_enr(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
return ok(ctx.myLib.node.enr.toURI()) return ok(ctx.myLib[].node.enr.toURI())
proc waku_get_my_peerid( proc waku_get_my_peerid(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
return ok($ctx.myLib.node.peerId()) return ok($ctx.myLib[].node.peerId())
proc waku_get_metrics( proc waku_get_metrics(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
@ -46,4 +46,4 @@ proc waku_get_metrics(
proc waku_is_online( proc waku_is_online(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
return ok($ctx.myLib.healthMonitor.onlineMonitor.amIOnline()) return ok($ctx.myLib[].healthMonitor.onlineMonitor.amIOnline())

View File

@ -47,7 +47,7 @@ proc waku_discv5_update_bootnodes(
## Updates the bootnode list used for discovering new peers via DiscoveryV5 ## Updates the bootnode list used for discovering new peers via DiscoveryV5
## bootnodes - JSON array containing the bootnode ENRs i.e. `["enr:...", "enr:..."]` ## bootnodes - JSON array containing the bootnode ENRs i.e. `["enr:...", "enr:..."]`
updateDiscv5BootstrapNodes($bootnodes, ctx.myLib).isOkOr: updateDiscv5BootstrapNodes($bootnodes, ctx.myLib[]).isOkOr:
error "UPDATE_DISCV5_BOOTSTRAP_NODES failed", error = error error "UPDATE_DISCV5_BOOTSTRAP_NODES failed", error = error
return err($error) return err($error)
@ -71,7 +71,7 @@ proc waku_dns_discovery(
proc waku_start_discv5( proc waku_start_discv5(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
(await ctx.myLib.wakuDiscv5.start()).isOkOr: (await ctx.myLib[].wakuDiscv5.start()).isOkOr:
error "START_DISCV5 failed", error = error error "START_DISCV5 failed", error = error
return err("error starting discv5: " & $error) return err("error starting discv5: " & $error)
@ -80,7 +80,7 @@ proc waku_start_discv5(
proc waku_stop_discv5( proc waku_stop_discv5(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
await ctx.myLib.wakuDiscv5.stop() await ctx.myLib[].wakuDiscv5.stop()
return ok("discv5 stopped correctly") return ok("discv5 stopped correctly")
proc waku_peer_exchange_request( proc waku_peer_exchange_request(
@ -89,7 +89,7 @@ proc waku_peer_exchange_request(
userData: pointer, userData: pointer,
numPeers: uint64, numPeers: uint64,
) {.ffi.} = ) {.ffi.} =
let numValidPeers = (await performPeerExchangeRequestTo(numPeers, ctx.myLib)).valueOr: let numValidPeers = (await performPeerExchangeRequestTo(numPeers, ctx.myLib[])).valueOr:
error "waku_peer_exchange_request failed", error = error error "waku_peer_exchange_request failed", error = error
return err("failed peer exchange: " & $error) return err("failed peer exchange: " & $error)

View File

@ -58,19 +58,20 @@ proc createWaku(
return ok(wakuRes) return ok(wakuRes)
registerReqFFI(CreateNodeRequest, waku: ptr Waku): registerReqFFI(CreateNodeRequest, ctx: ptr FFIContext[Waku]):
proc( proc(
configJson: cstring, appCallbacks: AppCallbacks configJson: cstring, appCallbacks: AppCallbacks
): Future[Result[string, string]] {.async.} = ): Future[Result[string, string]] {.async.} =
waku[] = (await createWaku(configJson, cast[AppCallbacks](appCallbacks))).valueOr: ctx.myLib[] = (await createWaku(configJson, cast[AppCallbacks](appCallbacks))).valueOr:
error "CreateNodeRequest failed", error = error error "CreateNodeRequest failed", error = error
return err($error) return err($error)
return ok("") return ok("")
proc waku_start( proc waku_start(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
(await startWaku(addr ctx.myLib)).isOkOr: (await startWaku(ctx[].myLib)).isOkOr:
error "START_NODE failed", error = error error "START_NODE failed", error = error
return err("failed to start: " & $error) return err("failed to start: " & $error)
return ok("") return ok("")
@ -79,7 +80,7 @@ proc waku_stop(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
try: try:
await ctx.myLib.stop() await ctx.myLib[].stop()
except Exception as exc: except Exception as exc:
error "STOP_NODE failed", error = exc.msg error "STOP_NODE failed", error = exc.msg
return err("failed to stop: " & exc.msg) return err("failed to stop: " & exc.msg)

View File

@ -11,7 +11,7 @@ proc waku_get_peerids_from_peerstore(
) {.ffi.} = ) {.ffi.} =
## returns a comma-separated string of peerIDs ## returns a comma-separated string of peerIDs
let peerIDs = let peerIDs =
ctx.myLib.node.peerManager.switch.peerStore.peers().mapIt($it.peerId).join(",") ctx.myLib[].node.peerManager.switch.peerStore.peers().mapIt($it.peerId).join(",")
return ok(peerIDs) return ok(peerIDs)
proc waku_connect( proc waku_connect(
@ -22,7 +22,7 @@ proc waku_connect(
timeoutMs: cuint, timeoutMs: cuint,
) {.ffi.} = ) {.ffi.} =
let peers = ($peerMultiAddr).split(",").mapIt(strip(it)) let peers = ($peerMultiAddr).split(",").mapIt(strip(it))
await ctx.myLib.node.connectToNodes(peers, source = "static") await ctx.myLib[].node.connectToNodes(peers, source = "static")
return ok("") return ok("")
proc waku_disconnect_peer_by_id( proc waku_disconnect_peer_by_id(
@ -31,13 +31,13 @@ proc waku_disconnect_peer_by_id(
let pId = PeerId.init($peerId).valueOr: let pId = PeerId.init($peerId).valueOr:
error "DISCONNECT_PEER_BY_ID failed", error = $error error "DISCONNECT_PEER_BY_ID failed", error = $error
return err($error) return err($error)
await ctx.myLib.node.peerManager.disconnectNode(pId) await ctx.myLib[].node.peerManager.disconnectNode(pId)
return ok("") return ok("")
proc waku_disconnect_all_peers( proc waku_disconnect_all_peers(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
await ctx.myLib.node.peerManager.disconnectAllPeers() await ctx.myLib[].node.peerManager.disconnectAllPeers()
return ok("") return ok("")
proc waku_dial_peer( proc waku_dial_peer(
@ -51,7 +51,7 @@ proc waku_dial_peer(
let remotePeerInfo = parsePeerInfo($peerMultiAddr).valueOr: let remotePeerInfo = parsePeerInfo($peerMultiAddr).valueOr:
error "DIAL_PEER failed", error = $error error "DIAL_PEER failed", error = $error
return err($error) return err($error)
let conn = await ctx.myLib.node.peerManager.dialPeer(remotePeerInfo, $protocol) let conn = await ctx.myLib[].node.peerManager.dialPeer(remotePeerInfo, $protocol)
if conn.isNone(): if conn.isNone():
let msg = "failed dialing peer" let msg = "failed dialing peer"
error "DIAL_PEER failed", error = msg, peerId = $remotePeerInfo.peerId error "DIAL_PEER failed", error = msg, peerId = $remotePeerInfo.peerId
@ -69,7 +69,7 @@ proc waku_dial_peer_by_id(
let pId = PeerId.init($peerId).valueOr: let pId = PeerId.init($peerId).valueOr:
error "DIAL_PEER_BY_ID failed", error = $error error "DIAL_PEER_BY_ID failed", error = $error
return err($error) return err($error)
let conn = await ctx.myLib.node.peerManager.dialPeer(pId, $protocol) let conn = await ctx.myLib[].node.peerManager.dialPeer(pId, $protocol)
if conn.isNone(): if conn.isNone():
let msg = "failed dialing peer" let msg = "failed dialing peer"
error "DIAL_PEER_BY_ID failed", error = msg, peerId = $peerId error "DIAL_PEER_BY_ID failed", error = msg, peerId = $peerId
@ -83,7 +83,7 @@ proc waku_get_connected_peers_info(
## returns a JSON string mapping peerIDs to objects with protocols and addresses ## returns a JSON string mapping peerIDs to objects with protocols and addresses
var peersMap = initTable[string, PeerInfo]() var peersMap = initTable[string, PeerInfo]()
let peers = ctx.myLib.node.peerManager.switch.peerStore.peers().filterIt( let peers = ctx.myLib[].node.peerManager.switch.peerStore.peers().filterIt(
it.connectedness == Connected it.connectedness == Connected
) )
@ -103,7 +103,7 @@ proc waku_get_connected_peers(
) {.ffi.} = ) {.ffi.} =
## returns a comma-separated string of peerIDs ## returns a comma-separated string of peerIDs
let let
(inPeerIds, outPeerIds) = ctx.myLib.node.peerManager.connectedPeers() (inPeerIds, outPeerIds) = ctx.myLib[].node.peerManager.connectedPeers()
connectedPeerids = concat(inPeerIds, outPeerIds) connectedPeerids = concat(inPeerIds, outPeerIds)
return ok(connectedPeerids.mapIt($it).join(",")) return ok(connectedPeerids.mapIt($it).join(","))
@ -115,7 +115,7 @@ proc waku_get_peerids_by_protocol(
protocol: cstring, protocol: cstring,
) {.ffi.} = ) {.ffi.} =
## returns a comma-separated string of peerIDs that mount the given protocol ## returns a comma-separated string of peerIDs that mount the given protocol
let connectedPeers = ctx.myLib.node.peerManager.switch.peerStore let connectedPeers = ctx.myLib[].node.peerManager.switch.peerStore
.peers($protocol) .peers($protocol)
.filterIt(it.connectedness == Connected) .filterIt(it.connectedness == Connected)
.mapIt($it.peerId) .mapIt($it.peerId)

View File

@ -17,11 +17,11 @@ proc waku_ping_peer(
proc ping(): Future[Result[Duration, string]] {.async, gcsafe.} = proc ping(): Future[Result[Duration, string]] {.async, gcsafe.} =
try: try:
let conn = let conn =
await ctx.myLib.node.switch.dial(peerInfo.peerId, peerInfo.addrs, PingCodec) await ctx.myLib[].node.switch.dial(peerInfo.peerId, peerInfo.addrs, PingCodec)
defer: defer:
await conn.close() await conn.close()
let pingRTT = await ctx.myLib.node.libp2pPing.ping(conn) let pingRTT = await ctx.myLib[].node.libp2pPing.ping(conn)
if pingRTT == 0.nanos: if pingRTT == 0.nanos:
return err("could not ping peer: rtt-0") return err("could not ping peer: rtt-0")
return ok(pingRTT) return ok(pingRTT)

View File

@ -36,18 +36,18 @@ proc waku_filter_subscribe(
callEventCallback(ctx, "onReceivedMessage"): callEventCallback(ctx, "onReceivedMessage"):
$JsonMessageEvent.new(pubsubTopic, msg) $JsonMessageEvent.new(pubsubTopic, msg)
checkFilterClientMounted(ctx.myLib).isOkOr: checkFilterClientMounted(ctx.myLib[]).isOkOr:
return err($error) return err($error)
var filterPushEventCallback = FilterPushHandler(onReceivedMessage(ctx)) var filterPushEventCallback = FilterPushHandler(onReceivedMessage(ctx))
ctx.myLib.node.wakuFilterClient.registerPushHandler(filterPushEventCallback) ctx.myLib[].node.wakuFilterClient.registerPushHandler(filterPushEventCallback)
let peer = ctx.myLib.node.peerManager.selectPeer(WakuFilterSubscribeCodec).valueOr: let peer = ctx.myLib[].node.peerManager.selectPeer(WakuFilterSubscribeCodec).valueOr:
let errorMsg = "could not find peer with WakuFilterSubscribeCodec when subscribing" let errorMsg = "could not find peer with WakuFilterSubscribeCodec when subscribing"
error "fail filter subscribe", error = errorMsg error "fail filter subscribe", error = errorMsg
return err(errorMsg) return err(errorMsg)
let subFut = ctx.myLib.node.filterSubscribe( let subFut = ctx.myLib[].node.filterSubscribe(
some(PubsubTopic($pubsubTopic)), some(PubsubTopic($pubsubTopic)),
($contentTopics).split(",").mapIt(ContentTopic(it)), ($contentTopics).split(",").mapIt(ContentTopic(it)),
peer, peer,
@ -67,16 +67,16 @@ proc waku_filter_unsubscribe(
pubSubTopic: cstring, pubSubTopic: cstring,
contentTopics: cstring, contentTopics: cstring,
) {.ffi.} = ) {.ffi.} =
checkFilterClientMounted(ctx.myLib).isOkOr: checkFilterClientMounted(ctx.myLib[]).isOkOr:
return err($error) return err($error)
let peer = ctx.myLib.node.peerManager.selectPeer(WakuFilterSubscribeCodec).valueOr: let peer = ctx.myLib[].node.peerManager.selectPeer(WakuFilterSubscribeCodec).valueOr:
let errorMsg = let errorMsg =
"could not find peer with WakuFilterSubscribeCodec when unsubscribing" "could not find peer with WakuFilterSubscribeCodec when unsubscribing"
error "fail filter process", error = errorMsg error "fail filter process", error = errorMsg
return err(errorMsg) return err(errorMsg)
let subFut = ctx.myLib.node.filterUnsubscribe( let subFut = ctx.myLib[].node.filterUnsubscribe(
some(PubsubTopic($pubsubTopic)), some(PubsubTopic($pubsubTopic)),
($contentTopics).split(",").mapIt(ContentTopic(it)), ($contentTopics).split(",").mapIt(ContentTopic(it)),
peer, peer,
@ -90,16 +90,16 @@ proc waku_filter_unsubscribe(
proc waku_filter_unsubscribe_all( proc waku_filter_unsubscribe_all(
ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer ctx: ptr FFIContext[Waku], callback: FFICallBack, userData: pointer
) {.ffi.} = ) {.ffi.} =
checkFilterClientMounted(ctx.myLib).isOkOr: checkFilterClientMounted(ctx.myLib[]).isOkOr:
return err($error) return err($error)
let peer = ctx.myLib.node.peerManager.selectPeer(WakuFilterSubscribeCodec).valueOr: let peer = ctx.myLib[].node.peerManager.selectPeer(WakuFilterSubscribeCodec).valueOr:
let errorMsg = let errorMsg =
"could not find peer with WakuFilterSubscribeCodec when unsubscribing all" "could not find peer with WakuFilterSubscribeCodec when unsubscribing all"
error "fail filter unsubscribe all", error = errorMsg error "fail filter unsubscribe all", error = errorMsg
return err(errorMsg) return err(errorMsg)
let unsubFut = ctx.myLib.node.filterUnsubscribeAll(peer) let unsubFut = ctx.myLib[].node.filterUnsubscribeAll(peer)
if not await unsubFut.withTimeout(FilterOpTimeout): if not await unsubFut.withTimeout(FilterOpTimeout):
let errorMsg = "filter un-subscription all timed out" let errorMsg = "filter un-subscription all timed out"

View File

@ -18,7 +18,7 @@ proc waku_lightpush_publish(
pubSubTopic: cstring, pubSubTopic: cstring,
jsonWakuMessage: cstring, jsonWakuMessage: cstring,
) {.ffi.} = ) {.ffi.} =
if ctx.myLib.node.wakuLightpushClient.isNil(): if ctx.myLib[].node.wakuLightpushClient.isNil():
let errorMsg = "LightpushRequest waku.node.wakuLightpushClient is nil" let errorMsg = "LightpushRequest waku.node.wakuLightpushClient is nil"
error "PUBLISH failed", error = errorMsg error "PUBLISH failed", error = errorMsg
return err(errorMsg) return err(errorMsg)
@ -34,14 +34,14 @@ proc waku_lightpush_publish(
let msg = json_message_event.toWakuMessage(jsonMessage).valueOr: let msg = json_message_event.toWakuMessage(jsonMessage).valueOr:
return err("Problem building the WakuMessage: " & $error) return err("Problem building the WakuMessage: " & $error)
let peerOpt = ctx.myLib.node.peerManager.selectPeer(WakuLightPushCodec) let peerOpt = ctx.myLib[].node.peerManager.selectPeer(WakuLightPushCodec)
if peerOpt.isNone(): if peerOpt.isNone():
let errorMsg = "failed to lightpublish message, no suitable remote peers" let errorMsg = "failed to lightpublish message, no suitable remote peers"
error "PUBLISH failed", error = errorMsg error "PUBLISH failed", error = errorMsg
return err(errorMsg) return err(errorMsg)
let msgHashHex = ( let msgHashHex = (
await ctx.myLib.node.wakuLegacyLightpushClient.publish( await ctx.myLib[].node.wakuLegacyLightpushClient.publish(
$pubsubTopic, msg, peer = peerOpt.get() $pubsubTopic, msg, peer = peerOpt.get()
) )
).valueOr: ).valueOr:

View File

@ -19,7 +19,7 @@ proc waku_relay_get_peers_in_mesh(
userData: pointer, userData: pointer,
pubSubTopic: cstring, pubSubTopic: cstring,
) {.ffi.} = ) {.ffi.} =
let meshPeers = ctx.myLib.node.wakuRelay.getPeersInMesh($pubsubTopic).valueOr: let meshPeers = ctx.myLib[].node.wakuRelay.getPeersInMesh($pubsubTopic).valueOr:
error "LIST_MESH_PEERS failed", error = error error "LIST_MESH_PEERS failed", error = error
return err($error) return err($error)
## returns a comma-separated string of peerIDs ## returns a comma-separated string of peerIDs
@ -31,7 +31,7 @@ proc waku_relay_get_num_peers_in_mesh(
userData: pointer, userData: pointer,
pubSubTopic: cstring, pubSubTopic: cstring,
) {.ffi.} = ) {.ffi.} =
let numPeersInMesh = ctx.myLib.node.wakuRelay.getNumPeersInMesh($pubsubTopic).valueOr: let numPeersInMesh = ctx.myLib[].node.wakuRelay.getNumPeersInMesh($pubsubTopic).valueOr:
error "NUM_MESH_PEERS failed", error = error error "NUM_MESH_PEERS failed", error = error
return err($error) return err($error)
return ok($numPeersInMesh) return ok($numPeersInMesh)
@ -43,7 +43,7 @@ proc waku_relay_get_connected_peers(
pubSubTopic: cstring, pubSubTopic: cstring,
) {.ffi.} = ) {.ffi.} =
## Returns the list of all connected peers to an specific pubsub topic ## Returns the list of all connected peers to an specific pubsub topic
let connPeers = ctx.myLib.node.wakuRelay.getConnectedPeers($pubsubTopic).valueOr: let connPeers = ctx.myLib[].node.wakuRelay.getConnectedPeers($pubsubTopic).valueOr:
error "LIST_CONNECTED_PEERS failed", error = error error "LIST_CONNECTED_PEERS failed", error = error
return err($error) return err($error)
## returns a comma-separated string of peerIDs ## returns a comma-separated string of peerIDs
@ -55,7 +55,7 @@ proc waku_relay_get_num_connected_peers(
userData: pointer, userData: pointer,
pubSubTopic: cstring, pubSubTopic: cstring,
) {.ffi.} = ) {.ffi.} =
let numConnPeers = ctx.myLib.node.wakuRelay.getNumConnectedPeers($pubsubTopic).valueOr: let numConnPeers = ctx.myLib[].node.wakuRelay.getNumConnectedPeers($pubsubTopic).valueOr:
error "NUM_CONNECTED_PEERS failed", error = error error "NUM_CONNECTED_PEERS failed", error = error
return err($error) return err($error)
return ok($numConnPeers) return ok($numConnPeers)
@ -72,7 +72,7 @@ proc waku_relay_add_protected_shard(
try: try:
let relayShard = RelayShard(clusterId: uint16(clusterId), shardId: uint16(shardId)) let relayShard = RelayShard(clusterId: uint16(clusterId), shardId: uint16(shardId))
let protectedShard = ProtectedShard.parseCmdArg($relayShard & ":" & $publicKey) let protectedShard = ProtectedShard.parseCmdArg($relayShard & ":" & $publicKey)
ctx.myLib.node.wakuRelay.addSignedShardsValidator( ctx.myLib[].node.wakuRelay.addSignedShardsValidator(
@[protectedShard], uint16(clusterId) @[protectedShard], uint16(clusterId)
) )
except ValueError as exc: except ValueError as exc:
@ -94,7 +94,7 @@ proc waku_relay_subscribe(
var cb = onReceivedMessage(ctx) var cb = onReceivedMessage(ctx)
ctx.myLib.node.subscribe( ctx.myLib[].node.subscribe(
(kind: SubscriptionKind.PubsubSub, topic: $pubsubTopic), (kind: SubscriptionKind.PubsubSub, topic: $pubsubTopic),
handler = WakuRelayHandler(cb), handler = WakuRelayHandler(cb),
).isOkOr: ).isOkOr:
@ -108,7 +108,7 @@ proc waku_relay_unsubscribe(
userData: pointer, userData: pointer,
pubSubTopic: cstring, pubSubTopic: cstring,
) {.ffi.} = ) {.ffi.} =
ctx.myLib.node.unsubscribe((kind: SubscriptionKind.PubsubSub, topic: $pubsubTopic)).isOkOr: ctx.myLib[].node.unsubscribe((kind: SubscriptionKind.PubsubSub, topic: $pubsubTopic)).isOkOr:
error "UNSUBSCRIBE failed", error = error error "UNSUBSCRIBE failed", error = error
return err($error) return err($error)
@ -135,7 +135,7 @@ proc waku_relay_publish(
let msg = json_message_event.toWakuMessage(jsonMessage).valueOr: let msg = json_message_event.toWakuMessage(jsonMessage).valueOr:
return err("Problem building the WakuMessage: " & $error) return err("Problem building the WakuMessage: " & $error)
(await ctx.myLib.node.wakuRelay.publish($pubsubTopic, msg)).isOkOr: (await ctx.myLib[].node.wakuRelay.publish($pubsubTopic, msg)).isOkOr:
error "PUBLISH failed", error = error error "PUBLISH failed", error = error
return err($error) return err($error)

View File

@ -86,7 +86,7 @@ proc waku_store_query(
return err("StoreRequest failed to parse peer addr: " & $error) return err("StoreRequest failed to parse peer addr: " & $error)
let queryResponse = ( let queryResponse = (
await ctx.myLib.node.wakuStoreClient.query(storeQueryRequest, peer) await ctx.myLib[].node.wakuStoreClient.query(storeQueryRequest, peer)
).valueOr: ).valueOr:
return err("StoreRequest failed store query: " & $error) return err("StoreRequest failed store query: " & $error)