Skip to content

UMA adapter #1006

@zajck

Description

@zajck

UMA could take a role of a Dispute Resolver in Boson. If the dispute is escalated, it can be offloaded to UMA, where it would be resolved via an optimistic oracle, and the resolution would be submitted to the Boson protocol.

The solution should not require any change of the Boson protocol and could serve as an example how can external DR mechnisms can be plugged into Boson.

The adapter should have the methods that allow both interaction with Boson and UMA.

  1. Register itself as a DR resolver in Boson.
    1. Call createDisputeResolver in Boson. Either do it in the constructor, or have a restricted method to do it. The constructor (or a dedicated method) should allow the deployer to specify _disputeResolverFees and _sellerAllowList, while DisputeResolver memory _disputeResolver parameter should be constructed in the contract itself. The deployer should not be able to call updateDisputeResolver, since it would allow them to take over the DR entity and resolve the issue even if it was expected that UMA will do it.
  2. addFeesToDisputeResolver and removeFeesFromDisputeResolver should be implemented in the adapter, since these parameters can change over time. They should be callable only by the owner (deployer).
  3. If a seller wants to use UMA for DR, they just specifiy UMA's ID when they create the offer.
  4. When escalate dispute is called in the protocol:
    1. MVP: Buyer needs to manually call uma adapter to make an asserion in UMA.
      1. UMA adapter should verifiy that dispute was escalated in the protocol
      2. UMA adapter should call OptimisticOracleV3.assertTruth.
        1. claim should include dispute information, especially exhangeId and buyerPercent. It can include additional data that helps with the resolution
        2. asserter is the buyer address
        3. callbackRecipient is UMA adapter address address(this)
        4. liveness matches the escalation period in Boson protocol
        5. currency matches the exchange's exchangeToken
        6. bond matches DRFee (TBC)
        7. identifier TBD
        8. identifier
    2. Post MVP: calling escalateDispute should automatically do the steps above.
  5. UMA adapter must implement OptimisticOracleV3CallbackRecipientInterface
  6. When assertionResolvedCallback is invoked, UMA adapter should call Boson decideDispute with buyerPercent depending on the UMA DR resolution outcome.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions