From bd8b659247a674c44918d1c75f862beb55106fd2 Mon Sep 17 00:00:00 2001 From: Aaryamann Challani <43716372+rymnc@users.noreply.github.com> Date: Wed, 8 May 2024 17:48:44 +0530 Subject: [PATCH] chore(rln-relay): health check should account for window of roots (#2664) * test(rln-relay): health check should account for window of roots * fix: some type-fu * fix: widen the type vs narrowing * fix: add extra parens --- waku/waku_rln_relay/group_manager/on_chain/group_manager.nim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim b/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim index 458f5ec09..85f0fd871 100644 --- a/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim +++ b/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim @@ -586,7 +586,7 @@ proc getNewBlockCallback(g: OnchainGroupManager): proc = g.retryWrapper(handleBlockRes, "Failed to handle new block"): await g.getAndHandleEvents(fromBlock, latestBlock) - # cannot use isOkOr here because results in a compile-time error that + # cannot use isOkOr here because results in a compile-time error that # shows the error is void for some reason let setMetadataRes = g.setMetadata() if setMetadataRes.isErr(): @@ -855,7 +855,8 @@ method isReady*(g: OnchainGroupManager): Future[bool] {.async.} = g.retryWrapper(currentBlock, "Failed to get the current block number"): cast[BlockNumber](await g.ethRpc.get().provider.eth_blockNumber()) - if g.latestProcessedBlock < currentBlock: + # the node is still able to process messages if it is behind the latest block by a factor of the valid roots + if u256(g.latestProcessedBlock) < (u256(currentBlock) - u256(g.validRoots.len)): return false return not (await g.isSyncing())