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 48f2cd0c3..88604bc21 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 @@ -269,9 +269,6 @@ method register*( g.userMessageLimit = some(userMessageLimit) g.membershipIndex = some(membershipIndex.toMembershipIndex()) - # Start tracking root changes after registration is complete - asyncSpawn g.trackRootChanges() - return method withdraw*( diff --git a/waku/waku_rln_relay/rln_relay.nim b/waku/waku_rln_relay/rln_relay.nim index 04d197ed5..e149d492c 100644 --- a/waku/waku_rln_relay/rln_relay.nim +++ b/waku/waku_rln_relay/rln_relay.nim @@ -479,6 +479,16 @@ proc mount( # Start epoch monitoring in the background wakuRlnRelay.epochMonitorFuture = monitorEpochs(wakuRlnRelay) + + # Start tracking root changes after successful initialization and registration + debug "~~~~~~~~~~~~~ Starting root tracking ~~~~~~~~~~~~~~~~" + debug "~~~~~~~~~~~~~ groupManager ~~~~~~~~~~~~~~~~" + + if conf.rlnRelayDynamic: + debug "~~~~~~~~~~~~~ groupManager is dynamic ~~~~~~~~~~~~~~~~" + let onchainGroupManager = cast[OnchainGroupManager](groupManager) + asyncSpawn onchainGroupManager.trackRootChanges() + return ok(wakuRlnRelay) proc isReady*(rlnPeer: WakuRLNRelay): Future[bool] {.async: (raises: [Exception]).} =