feat(SNM): Handle waku pari via waku api call

This commit is contained in:
Emil Ivanichkov 2024-03-13 14:50:41 +02:00 committed by Emil Ivanichkov
parent 618884c0e2
commit 142b559250
1 changed files with 20 additions and 9 deletions

View File

@ -7,12 +7,14 @@ import
chronicles/[log_output, topics_registry], chronicles/[log_output, topics_registry],
eth/p2p/discoveryv5/enr, eth/p2p/discoveryv5/enr,
libp2p/crypto/crypto, libp2p/crypto/crypto,
presto, presto/[route, segpath, server, client],
waku/waku_core, waku/waku_core,
# Local modules # Local modules
status_node_manager/[config, waku, utils], status_node_manager/[config, waku, utils],
status_node_manager/rest/common status_node_manager/rest/common,
status_node_manager/rest/apis/waku/[types, rest_waku_calls, rest_waku_api],
../libs/waku_utils/waku_node
type SNM* = ref object type SNM* = ref object
restServer*: RestServerRef restServer*: RestServerRef
@ -38,8 +40,12 @@ proc init*(T: type SNM,
SNM(restServer: restServer, SNM(restServer: restServer,
wakuHost: newClone wakuHost) wakuHost: newClone wakuHost)
proc run(snm: SNM) = proc installRestHandlers(restServer: RestServerRef, snm: SNM) =
restServer.router.installWakuApiHandlers(snm.wakuHost)
proc run(snm: SNM) {.async.} =
if not isNil(snm.restServer): if not isNil(snm.restServer):
snm.restServer.installRestHandlers(snm)
snm.restServer.start() snm.restServer.start()
runForever() runForever()
@ -52,14 +58,19 @@ proc doRunStatusNodeManager(config: StatusNodeManagerConfig,
notice "Starting Status Node Manager" notice "Starting Status Node Manager"
let snm = waitFor SNM.init(rng, config) let snm = waitFor SNM.init(rng, config)
snm.run() waitFor snm.run()
proc doWakuPairing(config: StatusNodeManagerConfig, rng: ref HmacDrbgContext) = proc doWakuPairing(config: StatusNodeManagerConfig, rng: ref HmacDrbgContext) =
let wakuPairResult = waitFor wakuPair(rng, config.qr, config.qrMessageNameTag, var wakuClient = RestClientRef.new(initTAddress(config.restAddress,
config.wakuPort, config.discv5Port, config.restPort))
config.requiredConnectedPeers,
config.pubSubTopic) let wakuPairRequestData = WakuPairRequestData(
echo wakuPairResult.wakuHandshakeResult qr: config.qr,
qrMessageNameTag: config.qrMessageNameTag,
pubSubTopic: config.pubSubTopic
)
waitFor wakuPair(wakuClient, wakuPairRequestData)
when isMainModule: when isMainModule:
setupLogLevel(LogLevel.NOTICE) setupLogLevel(LogLevel.NOTICE)