Comment on page
Disputing Root Bundles
Across requires proposals and disputes to be accompanied by a bond. This bond is returned if the proposal or dispute is correct, and is sacrificed if it is found to be incorrect. This protects against attempts to incorrectly move funds, as well as spam and other denial of service attempts.
The Across Bond Token (ABT) is the bond collateral required by the HubPool contract. This is a WETH-like contract that is minted in return for depositing Ether, and can be redeemed for the underlying Ether at any time. ABT implements custom ERC20 transferFrom() logic in order to limit the addresses that are able to make HubPool root bundle proposals.
- 1.The relayer-v2 package must be installed.
- 2.The mnemonic for an EOA must be set in the relayer-v2
- 1.The configured EOA must be funded with at least 0.45 ABT or ETH (1 ABT == 1 ETH), plus additional ETH for gas to handle the necessary deposit, approval and/or dispute transactions.
- 2.It is sufficient for the entire amount to be held in ETH, since the dispute script automates the steps of minting ABT and approving the HubPool to spend it.
- 3.The actual amounts are subject to change based on the prevailing gas price at the time of the dispute, and the configured bond amount.
$ git clone https://github.com/across-protocol/relayer-v2.git
$ cd relayer-v2
$ yarn install && yarn build
# Copy the predefined sample config and update the MNEMONIC variable in
# .env to match the relevant mnemonic.
$ cp .env.example .env
$ yarn dispute
# The dispute script will dump information about the Bond Token and
# latest HubPool proposal. If necessary, it will automatically mint the
# requisite amount of the bond token and will approve the HubPool to use
# it. At the conclusion, the script will provide the transaction hash of
# the most recent proposal and will request to re-run with the flag
# --txnHash <proposal-transaction-hash>
# Re-running the script with this additional argument will automatically
# submit a dispute.
$ yarn dispute --txnHash <proposal-transaction-hash>