Escalation period
The buyer escalated the dispute. The dispute resolver should provide a final split between the buyer and seller.
DISPUTED
ESCALATED
RETRACTED RESOLVED DECIDED REFUSED
Period actions
Resolve the dispute
Retracts the dispute
Decide the dispute
Resolve the dispute
Refuse to decide
Post-period actions
Expire the escalated dispute
Expire the escalated dispute
Expire the escalated dispute
TypeScript SDK
The buyer and the seller mutually resolve the dispute and submit the decision on how the pot is split.
The buyer signs the proposal; the seller submits the transaction
const exchangeId = "1534";
const buyerPercentBasisPoints = 30_00;
const {
      r: sigR,
      s: sigS,
      v: sigV
    } = await buyerCoreSDK.signDisputeResolutionProposal({
      exchangeId,
      buyerPercentBasisPoints
});
await sellerCoreSDK.resolveDispute({
      exchangeId: exchangeId,
      buyerPercentBasisPoints,
      sigR,
      sigS,
      sigV
});The seller signs the proposal; the buyer submits the transaction
const exchangeId = "1534";
const buyerPercentBasisPoints = 30_00;
const {
      r: sigR,
      s: sigS,
      v: sigV
    } = await sellerCoreSDK.signDisputeResolutionProposal({
      exchangeId,
      buyerPercentBasisPoints
});
await buyerCoreSDK.resolveDispute({
      exchangeId: exchangeId,
      buyerPercentBasisPoints,
      sigR,
      sigS,
      sigV
});The buyer retracts the dispute. The outcome is equivalent to a normally completed exchange. The seller gets the price and the seller's deposit.
const exchangeId = "1534";
await buyerCoreSDK.retractDispute(exchangeId);The dispute resolver decides the split of the whole pot.
const exchangeId = "1534";
const buyerPercentBasisPoints = 30_00;
await drCoreSDK.decideDispute(exchangeId, buyerPercentBasisPoints);The dispute resolver decides not to decide the dispute. The exchange is reverted. The seller gets back the seller's deposit and the buyer gets the price.
const exchangeId = "1534";
await drCoreSDK.refuseEscalatedDispute(exchangeId);If the seller, the buyer and the dispute resolver did not perform any protocol action, the escalated dispute can be expired. The outcome is equivalent to refused escalated dispute. The seller gets back the seller's deposit and the buyer gets the price.
const exchangeId = "1534";
await coreSDK.expireEscalatedDispute(exchangeId);Solidity
The buyer and the seller mutually resolve the dispute and submit the decision on how the pot is split.
The other party signed the proposal, and this contract is submitting the transaction
IBosonDisputeHandler bosonProtocol = IBosonDisputeHandler(_bosonProtocolAddress);
uint256 exchangeId = 1534;
uint256 buyerPercent = 30_00;
bytes memory signature = 0x...; // must be provided by other signer
bosonProtocol.resolveDispute(exchangeId, buyerPercent, signature);The other party is submitting the transaction, and this contract uses EIP1271 verification
import { IERC1271 } from "@openzeppelin/contracts/interfaces/IERC1271.sol";
function isValidSignature(bytes32, bytes calldata) public view override returns (bytes4) {
    // validate the signature, e.g. ECDSA verification
    ...
    
    // If everything is ok, return the correct magic value
    return IERC1271.isValidSignature.selector;
}The buyer retracts the dispute. The outcome is equivalent to a normally completed exchange. The seller gets the price and the seller's deposit.
IBosonDisputeHandler bosonProtocol = IBosonDisputeHandler(_bosonProtocolAddress);
uint256 exchangeId = 1534;
bosonProtocol.retractDispute(exchangeId);The dispute resolver decides the split of the whole pot.
IBosonDisputeHandler bosonProtocol = IBosonDisputeHandler(_bosonProtocolAddress);
uint256 exchangeId = 1534;
uint256 buyerPercent = 30_00;
bosonProtocol.decideDispute(exchangeId, buyerPercent);The dispute resolver decides not to decide the dispute. The exchange is reverted. The seller gets back the seller's deposit and the buyer gets the price.
IBosonDisputeHandler bosonProtocol = IBosonDisputeHandler(_bosonProtocolAddress);
uint256 exchangeId = 1534;
bosonProtocol.refuseEscalatedDispute(exchangeId);If the seller, the buyer and the dispute resolver did not perform any protocol action, the escalated dispute can be expired. The outcome is equivalent to refused escalated dispute. The seller gets back the seller's deposit and the buyer gets the price.
IBosonDisputeHandler bosonProtocol = IBosonDisputeHandler(_bosonProtocolAddress);
uint256 exchangeId = 1534;
bosonProtocol.expireEscalatedDispute(exchangeId);Last updated
