Hey community ,
the last few days I’ve been working on one of the last few missing pieces for the soon to be launched prediction market platform Omen. A good overview that outlines what Omen is and how it works can be found in this article.
As I just published a first draft version of the smart contract integration between realit.io and the DxDAO I am actively reaching out to you, seeking for feedback and reviewing the arbitrator smart contract.
Some context – The need for dispute resolution
As outlined in more detail on this article, Omen will be using realit.io, a crowd-sourced on-chain smart contract system that will set the correct outcome of markets created in Omen. In case of malicious or incorrect outcome voting, a dispute resolution can be called at anytime. Once the fee was paid, the answer will be paused on realit.io and the final decision will be delegated to the DxDAO. The final decision making will take place through the decentralized government mechanisms by the DxDAO members (proposal voting) and provide the final answer for realit.io
Deliverables
The integration basically exist of two parts, the Arbitrator Contract that handles the smart contract interaction between realit.io and the DxDAO and the second part, a DAOstack Generic Scheme that provides an UI on DAOstack to let the DxDAO members vote on the final outcome.
Testing Walkthrough
This shortly walks you through the process of testing the integration workflow.
1. Create Question on realit.io :
Please note that this first step to create questions on realit.io will be fully automated by the Omen smart contracts (Work in progress). However, as of now the question need to be created manually. Set the Custom Arbitrator contract to this address: 0x1f279db583c9e90df76c42e5439f4ceb4d5a8eef
2. Add an answer
As Arbitration can only be requested once at least one answer has been submitted, create an answer for the created question.
3. Request Arbitration
Requesting Arbitration will call the function “notifyOfArbitrationRequest” on the Arbitrator contract.
The status in realit.io will be changed to “Arbitration pending”:
4. Dispute Resolution Request
The function “notifyOfArbitrationRequest” that has just been triggered creates a “Dispute Resolution Request” within the DxDAO (Currently at this Testing DAO: https://alchemy-omengenericsche-m5ml19.herokuapp.com/dao/0xd94c5810a43ae1560569592e041bf839e490cd1b/) to notify members to act.
5. Create Final Answer Proposal
For every possible final answer a new proposal of the type “Propose final Answer to Question” needs to be created.
6. Upvote the proposal for execution
As you probably don’t have REP on this testing DAO either provide me a Rinkeby address in the comment to assign you some REP or ping me to let me vote it up for you.
7. Check that the question was resolved on realit.io
8. Make sure the Dispute Fee has been transferred to the DAO
Arbitrator contract events:
Next Steps
To finalize the integration and starting the deployment process for Rinkeby and Mainnet this week I highly appreciate your feedback.
- Awaiting community feedback & changes
- Pushing the Arbitrator Contract to Rinkeby & Kovan
- Pushing the Arbitrator Contract to Mainnet
- Deploying DAOstack Generic Scheme
- Requesting realit.io to add the DxDAO in Arbitrator-Dropdown in DApp