From 10275f46a99213cc21fb6d9494e9f4b078dbe797 Mon Sep 17 00:00:00 2001 From: stubbsta Date: Thu, 12 Jun 2025 10:11:10 +0200 Subject: [PATCH] Add IdCommitment to calldata as BE --- .../group_manager/on_chain/group_manager.nim | 14 +++++++------- 1 file changed, 7 insertions(+), 7 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 1ded9676b..a78ee3a17 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 @@ -264,7 +264,7 @@ proc trackRootChanges*(g: OnchainGroupManager) {.async: (raises: [CatchableError raise newException( CatchableError, "Failed to fetch next free index: " & nextFreeIndex.error ) - + let memberCount = cast[int64](nextFreeIndex.get()) waku_rln_number_registered_memberships.set(float64(memberCount)) @@ -634,7 +634,8 @@ method init*(g: OnchainGroupManager): Future[GroupManagerResult[void]] {.async.} # now we check on the contract if the commitment actually has a membership let idCommitment = keystoreCred.identityCredential.idCommitment.toUInt256() debug "checking if the idCommitment has a membership", - idCommitmentHex = idCommitment.toHex(), idCommitmentUInt256 = idCommitment + idCommitmentHex = keystoreCred.identityCredential.idCommitment.inHex(), + idCommitmentUInt256 = idCommitment try: # let membershipExists = # await wakuRlnContract.isInMembershipSet(idCommitment).call() @@ -649,11 +650,9 @@ method init*(g: OnchainGroupManager): Future[GroupManagerResult[void]] {.async.} # Encode the parameter (32 bytes for uint256) var encodedParams: seq[byte] = @[] - # Convert uint256 to 32-byte big-endian representation let commitmentBytes = keystoreCred.identityCredential.idCommitment - - # Combine function selector + encoded parameters - let callData = functionSelector & commitmentBytes + # Combine function selector + encoded parameters, commitmentBytes store in LE and needs to be sent in BE + let callData = functionSelector & commitmentBytes.reversed() # Create the transaction var tx: TransactionArgs @@ -698,7 +697,8 @@ method init*(g: OnchainGroupManager): Future[GroupManagerResult[void]] {.async.} ) if maxMembershipRateLimit.isErr(): - return err("Failed to fetch max membership rate limit: " & maxMembershipRateLimit.error) + return + err("Failed to fetch max membership rate limit: " & maxMembershipRateLimit.error) g.rlnRelayMaxMessageLimit = cast[uint64](maxMembershipRateLimit.get()) proc onDisconnect() {.async.} =