Adds multiple calldatas to a batch and calls Multicall3 contract's aggregate3
function.
$ yarn add @kleros/multicall-relayer
import MultiCaller from "@kleros/multicall-relayer"
const multicaller = new MultiCaller({
rpcUrl,
privateKey,
multicall3Address,
gasPriceCeilingWei, // optional
logtailSourceToken, // optional
amqp: { url, exchange } // optional
})
multicaller.add({
allowFailure: false,
target: poh.address,
callData: pohI.encodeFunctionData(
"withdrawFeesAndRewards",
[beneficiary, humanityId, requestId, challengeId, round]
)
})
// Or multiple calls...
multicaller.add(...calls)
const tx = await multicaller.send()
rpcUrl
- url of the rpc to be used.privateKey
- private key of wallet to execute the transaction.multicall3Address
- Multicall3 contract address on the chain corresponding to the given rpc.gasPriceCeilingWei
(optional) - gas price ceiling in wei.logtailSourceToken
(optional) - Logtail token to send logs to. If missing,console.log
is used.amqp
(optional) - AMQP to be notified once the transaction is sent to the blockchain. Requires 2 parameters:url
- url of the provider.exchange
- name of the exchange.