From 9fb456ed8b4643420db66e25076ac5bd458fabc4 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 5 Nov 2025 15:19:54 +0100 Subject: [PATCH] add temporary debug logs RLN registration --- .../group_manager/on_chain/group_manager.nim | 27 +++++++++++++++++++ waku/waku_rln_relay/rln/wrappers.nim | 13 ++++++--- 2 files changed, 37 insertions(+), 3 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 76c00408e..a0f575af4 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 @@ -210,14 +210,20 @@ method register*( ): Future[void] {.async: (raises: [Exception]).} = initializedGuard(g) + debug "AAAAA register called" try: let leaf = rateCommitment.toLeaf().get() + debug "AAAAA register called" if g.registerCb.isSome(): + debug "AAAAA register called" let idx = g.latestIndex info "registering member via callback", rateCommitment = leaf, index = idx await g.registerCb.get()(@[Membership(rateCommitment: leaf, index: idx)]) + debug "AAAAA register called" g.latestIndex.inc() + debug "AAAAA register called" except CatchableError: + debug "AAAAA register called", error = getCurrentExceptionMsg() raise newException(ValueError, getCurrentExceptionMsg()) method register*( @@ -226,31 +232,42 @@ method register*( userMessageLimit: UserMessageLimit, ): Future[void] {.async: (raises: [Exception]).} = initializedGuard(g) + debug "AAAAA register called" let ethRpc = g.ethRpc.get() + debug "AAAAA register called" let wakuRlnContract = g.wakuRlnContract.get() + debug "AAAAA register called" var gasPrice: int + debug "AAAAA register called" g.retryWrapper(gasPrice, "Failed to get gas price"): int(await ethRpc.provider.eth_gasPrice()) * 2 + debug "AAAAA register called" let idCommitmentHex = identityCredential.idCommitment.inHex() + debug "AAAAA register called" info "identityCredential idCommitmentHex", idCommitment = idCommitmentHex let idCommitment = identityCredential.idCommitment.toUInt256() + debug "AAAAA register called" let idCommitmentsToErase: seq[UInt256] = @[] + debug "AAAAA register called" info "registering the member", idCommitment = idCommitment, userMessageLimit = userMessageLimit, idCommitmentsToErase = idCommitmentsToErase + debug "AAAAA register called" var txHash: TxHash g.retryWrapper(txHash, "Failed to register the member"): await wakuRlnContract .register(idCommitment, userMessageLimit.stuint(32), idCommitmentsToErase) .send(gasPrice = gasPrice) + debug "AAAAA register called" # wait for the transaction to be mined var tsReceipt: ReceiptObject g.retryWrapper(tsReceipt, "Failed to get the transaction receipt"): await ethRpc.getMinedTransactionReceipt(txHash) + debug "AAAAA register called" info "registration transaction mined", txHash = txHash g.registrationTxHash = some(txHash) # the receipt topic holds the hash of signature of the raised events @@ -258,12 +275,15 @@ method register*( info "ts receipt", receipt = tsReceipt[] if tsReceipt.status.isNone(): + debug "AAAAA register called" raise newException(ValueError, "Transaction failed: status is None") if tsReceipt.status.get() != 1.Quantity: + debug "AAAAA register called" raise newException( ValueError, "Transaction failed with status: " & $tsReceipt.status.get() ) + debug "AAAAA register called" ## Extract MembershipRegistered event from transaction logs (third event) let thirdTopic = tsReceipt.logs[2].topics[0] info "third topic", thirdTopic = thirdTopic @@ -273,6 +293,7 @@ method register*( ).data): raise newException(ValueError, "register: unexpected event signature") + debug "AAAAA register called" ## Parse MembershipRegistered event data: rateCommitment(256) || membershipRateLimit(256) || index(32) let arguments = tsReceipt.logs[2].data info "tx log data", arguments = arguments @@ -280,22 +301,28 @@ method register*( ## Extract membership index from transaction log data (big endian) membershipIndex = UInt256.fromBytesBE(arguments[64 .. 95]) + debug "AAAAA register called" trace "parsed membershipIndex", membershipIndex g.userMessageLimit = some(userMessageLimit) g.membershipIndex = some(membershipIndex.toMembershipIndex()) g.idCredentials = some(identityCredential) + debug "AAAAA register called" let rateCommitment = RateCommitment( idCommitment: identityCredential.idCommitment, userMessageLimit: userMessageLimit ) .toLeaf() .get() + debug "AAAAA register called" if g.registerCb.isSome(): + debug "AAAAA register called", + rateCommitment = rateCommitment, latestIndex = g.latestIndex let member = Membership(rateCommitment: rateCommitment, index: g.latestIndex) await g.registerCb.get()(@[member]) g.latestIndex.inc() + debug "AAAAA register called" return method withdraw*( diff --git a/waku/waku_rln_relay/rln/wrappers.nim b/waku/waku_rln_relay/rln/wrappers.nim index d1dec2b38..43777cd09 100644 --- a/waku/waku_rln_relay/rln/wrappers.nim +++ b/waku/waku_rln_relay/rln/wrappers.nim @@ -155,21 +155,28 @@ proc poseidon*(data: seq[seq[byte]]): RlnRelayResult[array[32, byte]] = return ok(output) proc toLeaf*(rateCommitment: RateCommitment): RlnRelayResult[seq[byte]] = + debug "AAAA toLeaf called" let idCommitment = rateCommitment.idCommitment var userMessageLimit: array[32, byte] try: - discard userMessageLimit.copyFrom( - toBytes(rateCommitment.userMessageLimit, Endianness.littleEndian) - ) + debug "AAAA toLeaf called" + let bytes = toBytes(rateCommitment.userMessageLimit, Endianness.littleEndian) + debug "AAAA toLeaf called" + discard userMessageLimit.copyFrom(bytes) + debug "AAAA toLeaf called" except CatchableError: return err( "could not convert the user message limit to bytes: " & getCurrentExceptionMsg() ) + debug "AAAA toLeaf called" let leaf = poseidon(@[@idCommitment, @userMessageLimit]).valueOr: + debug "AAAA toLeaf called" return err("could not convert the rate commitment to a leaf") + debug "AAAA toLeaf called" var retLeaf = newSeq[byte](leaf.len) for i in 0 ..< leaf.len: retLeaf[i] = leaf[i] + debug "AAAA toLeaf called" return ok(retLeaf) proc toLeaves*(rateCommitments: seq[RateCommitment]): RlnRelayResult[seq[seq[byte]]] =