Bonded Dispute Module

See IBondedDisputeModule.sol for more details.

1. Introduction

The Bonded Dispute Module is a contract that allows users to dispute a proposed response by bonding tokens. Depending on the result of the dispute, the tokens are either returned to the disputer or to the proposer (slashed).

2. Contract Details

Key Methods

  • decodeRequestData: Decodes request parameters.
  • disputeResponse: Starts a dispute.
  • onDisputeStatusChange: Is a hook called by the oracle when a dispute status has been updated.
  • disputeEscalated: Called by the oracle when a dispute has been escalated. Not implemented in this module.

Request Parameters

  • accountingExtension: The address holding the bonded tokens. It must implement the IAccountingExtension.sol interface.
  • bondToken: The ERC20 token used for bonding.
  • bondSize: The amount of tokens the disputer must bond to be able to dispute a response.

3. Key Mechanisms & Concepts

Check out Accounting Extension.

4. Gotchas

  • The module does not handle the cases of inconclusive dispute, e.g. if a ERC20 vote has failed to reach the quorum.
  • Choosing a non-ERC20 token might result in disputers not being able to use this module.