diff --git a/waku/v2/protocol/waku_rln_relay/group_manager/on_chain/group_manager.nim b/waku/v2/protocol/waku_rln_relay/group_manager/on_chain/group_manager.nim index 4e96b620a..1c06d27c6 100644 --- a/waku/v2/protocol/waku_rln_relay/group_manager/on_chain/group_manager.nim +++ b/waku/v2/protocol/waku_rln_relay/group_manager/on_chain/group_manager.nim @@ -111,15 +111,16 @@ method register*(g: OnchainGroupManager, identityCredentials: IdentityCredential var txHash: TxHash try: # send the registration transaction and check if any error occurs txHash = await rlnContract.register(idCommitment).send(value = membershipFee, - gasPrice = gasPrice) + gasPrice = gasPrice, + gas = 100000'u64) except ValueError as e: + error "error while registering the member", msg = e.msg raise newException(ValueError, "could not register the member: " & e.msg) # wait for the transaction to be mined let tsReceipt = await ethRpc.getMinedTransactionReceipt(txHash) g.registrationTxHash = some(txHash) - # the receipt topic holds the hash of signature of the raised events # TODO: make this robust. search within the event list for the event let firstTopic = tsReceipt.logs[0].topics[0] @@ -223,7 +224,7 @@ proc seedBlockTableIntoTree*(g: OnchainGroupManager, blockTable: BlockTable): Fu except: error "failed to insert members into the tree" raise newException(ValueError, "failed to insert members into the tree") - debug "new members added to the Merkle tree", commitments=members.mapIt(it.idCommitment.inHex()) , startingIndex=startingIndex + trace "new members added to the Merkle tree", commitments=members.mapIt(it.idCommitment.inHex()) , startingIndex=startingIndex let lastIndex = startingIndex + members.len.uint - 1 let indexGap = startingIndex - latestIndex if not (toSeq(startingIndex..lastIndex) == members.mapIt(it.index)): @@ -364,6 +365,15 @@ method init*(g: OnchainGroupManager): Future[void] {.async.} = let chainId = await ethRpc.provider.eth_chainId() g.chainId = some(chainId) + if g.ethPrivateKey.isSome(): + let pk = g.ethPrivateKey.get() + let pkParseRes = keys.PrivateKey.fromHex(pk) + if pkParseRes.isErr(): + raise newException(ValueError, "could not parse the private key") + ethRpc.privateKey = some(pkParseRes.get()) + ethRpc.defaultAccount = ethRpc.privateKey.get().toPublicKey().toCanonicalAddress().Address + + let contractAddress = web3.fromHex(web3.Address, g.ethContractAddress) contract = ethRpc.contractSender(RlnContract, contractAddress) @@ -374,12 +384,6 @@ method init*(g: OnchainGroupManager): Future[void] {.async.} = except: raise newException(ValueError, "could not get the membership deposit") - if g.ethPrivateKey.isSome(): - let pk = g.ethPrivateKey.get() - let pkParseRes = keys.PrivateKey.fromHex(pk) - if pkParseRes.isErr(): - raise newException(ValueError, "could not parse the private key") - ethRpc.privateKey = some(pkParseRes.get()) g.ethRpc = some(ethRpc) g.rlnContract = some(contract) diff --git a/waku/v2/protocol/waku_rln_relay/rln/wrappers.nim b/waku/v2/protocol/waku_rln_relay/rln/wrappers.nim index 91f237c3d..6a2b940ef 100644 --- a/waku/v2/protocol/waku_rln_relay/rln/wrappers.nim +++ b/waku/v2/protocol/waku_rln_relay/rln/wrappers.nim @@ -104,7 +104,6 @@ proc poseidon*(data: seq[seq[byte]]): RlnRelayResult[array[32, byte]] = var hashInputBuffer = inputBytes.toBuffer() outputBuffer: Buffer # will holds the hash output - trace "poseidon hash input", hashInputBuffer = hashInputBuffer, inputBytes = inputBytes, bufflen = hashInputBuffer.len let hashSuccess = poseidon(addr hashInputBuffer, addr outputBuffer)