Skip to content

Commit 59f202a

Browse files
chore: fix node break issue when RLN is unregistered (#3573)
1 parent 16ce21d commit 59f202a

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

waku/waku_rln_relay/group_manager/on_chain/group_manager.nim

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,15 @@ proc trackRootChanges*(g: OnchainGroupManager) {.async: (raises: [CatchableError
202202
let rootUpdated = await g.updateRoots()
203203

204204
if rootUpdated:
205-
let proofResult = await g.fetchMerkleProofElements()
206-
if proofResult.isErr():
207-
error "Failed to fetch Merkle proof", error = proofResult.error
208-
else:
209-
g.merkleProofCache = proofResult.get()
205+
## The membership set on-chain has changed (some new members have joined or some members have left)
206+
if g.membershipIndex.isSome():
207+
## A membership index exists only if the node has registered with RLN.
208+
## Non-registered nodes cannot have Merkle proof elements.
209+
let proofResult = await g.fetchMerkleProofElements()
210+
if proofResult.isErr():
211+
error "Failed to fetch Merkle proof", error = proofResult.error
212+
else:
213+
g.merkleProofCache = proofResult.get()
210214

211215
let nextFreeIndex = await g.fetchNextFreeIndex()
212216
if nextFreeIndex.isErr():

0 commit comments

Comments
 (0)