mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-07 16:33:08 +00:00
adapt library codebase to latest nim-ffi
This commit is contained in:
parent
5dd5fa11dc
commit
204cf36085
@ -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())
|
||||||
|
|||||||
@ -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)
|
||||||
|
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
@ -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)
|
||||||
|
|
||||||
|
|||||||
@ -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)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user