An entry for the HackMoney hackathon.
This project builds on top of UpSideDai's concepts to create a CFD that is:
- Leveraged
- Fully backed by some collateral (e.g. DAI) at every given step
- Priceless (i.e. does not require a live price feed)
This Priceless CFD project can be seen as an "optimistic" CFD that is also leveraged, and fully backed by collateral. Should the CFD contract exceed the price boundary then a settlement request can be submitted. That request can also be disputed (usually by bots), and everyone is incentivized to report back the correct value of the underlying in order to prevent being penalized.
This repo is a proof of concept.
This project uses React + Next.js for the frontend, Truffle to compile the contracts, Solidity for the contract source code, and a bunch of code from UMA to mimic their "priceless" system, e.g.
- Mock Oracles
- Finder
- Whitelist
- Identifiers
The bot is written in Node.js using Ethers.js with a pub/sub method to listen to events.
- Make a
.envfile in this directory with the following contents (fill in your own):
PK_DEPLOYER=0x1234...
PK_DISPUTER=0x1234...
PK_MINTER_1=0x1234...
PK_MINTER_2=0x1234...
PK_GENERIC_1=0x1234...
MAINNET_NODE_URL=https://mainnet.infura.io/v3/API_KEY_HERE
-
Run
npm startinside thesmart-contractspackage to start a chain forked from Mainnet. -
Run
npx truffle migrate --network developmentto migrate the contracts to the chain. -
Run
npm testinside thesmart-contractspackage to run the test.