mirror of https://github.com/waku-org/nwaku.git
fix(rln-relay): on chain registration (#1627)
* fix(rln-relay): on chain registration * fix(rln-relay): bump gas lim
This commit is contained in:
parent
85f33a8efd
commit
b1bafda2ee
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue