A smart collateral contract to solve the game theoretical nash-equilibrium for sharing items with others. This contract aligns incentives using collateral that can be destroyed by either party if the contract falls through. Trying to make sharing easier / less risky!
See this post for more details: DALi - web3 libraries
This project uses a starter kit for developing, testing, and deploying smart contracts with a full Typescript environment. This stack uses Buidler as the platform layer to orchestrate all the tasks. Ethers is used for all Ethereum interactions and testing.
Clone this repository, then install the dependencies with npm install. Build everything with npm run build. https://buidler.dev has excellent docs, and can be used as reference for extending this project.
npm run compile
npm run build
In one terminal run npx buidler node
Then in another run npm run test
Notes:
- As is, the tests fail on purpose. This is to show the Solidity stack traces that Buidler enables!
- The gas usage table may be incomplete (the gas report currently needs to run with the
--network localhostflag; see below).
In one terminal run npx buidler node
Then in another run npm run test -- --network localhost
Notes:
- When running with this
localhostoption, you get a gas report but may not get good callstacks - See here for how to configure the gas usage report.
npm run coverage
Notes:
- running a coverage report currently deletes artifacts, so after each coverage run you will then need to run
npx buidler cleanfollowed bynpm run buildbefore re-running tests - the branch coverage is 75%
Create/modify network config in buidler.config.ts and add API key and private key, then run:
npx buidler run --network rinkeby scripts/deploy.ts
Add Etherscan API key to buidler.config.ts, then run:
npx buidler verify-contract --contract-name Counter --address <DEPLOYED ADDRESS>
- Better migrations strategy (Buidler working on this)
PRs and feedback welcome!