Contract is currently deployed on Ropsten. Mainnet release is forthcoming
The goal of this project is to provide the smart contract that will be used by the buyer, the seller, and Verify in order to conduct the transactions described in the Verify whitepaper. This includes sending the funds to Verify, converting 1% of the funds to CRED and storing it in the Verify account, converting the remaining 99% to the Dai stablecoin and storing it in the Verify escrow account, sending the funds stored in escrow to the seller, and allowing for refunds (in some fashion), in which case Verify refunds any money in the escrow account that hasn't been given to the seller yet.
To get started:
- Download or clone this repository
- Run the command
npm install
to install dependencies - Follow the instructions in the Testing section
To test the smart contracts, follow the below instructions:
- Run
truffle develop
. This sets up a local ganache-cli test server equipped with a copy of the Ethereum blockchain for you to run on. It also creates ten test Ethereum accounts, each with 100 test Ether. Their addresses and private keys will be listed after you run the command. You can plug those into thedeploy_contract
migration file in themigrations/
folder. Do not close the test server - keep the test server running - Open another terminal and run the command
truffle test
. This does three things:
- Compiles the smart contracts.
- Runs the migrations to deploy the contracts to the network. For testing purposes, we'll use a test network, in this case
testrpc
. Running on the main Ethereum network would be very slow and expensive. - Runs the tests (in the
test/
folder) against the smart contracts deployed on the network.
The contracts are stored in the folder marked contracts/
. In this folder, there are currently two files - Migrations.sol
and Purchase.sol
. Migration.sol
is auto-generated by Truffle. Purchase.sol
is the main smart contract currently under development.
The migrations are stored in the folder marked migrations/
. In this folder, there are currently two files, both of which are numbered. The file starting with 1_...
is auto-generated by Truffle. The one starting with 2_...
is used to deploy the smart contract to the ganache-cli
test server.
The unit tests are stored in the folder marked test
. In the folder, there is currently one file - purchase.js
. It contains several unit tests to run against the smart contract. The unit tests follow the Truffle testing specification (which is based off of the Mocha testing specification).
This project uses the official Solidity style guidelines, which can be found here: http://solidity.readthedocs.io/en/v0.4.24/style-guide.html
A couple of important things to note from the guidelines:
- We use four spaces per indentation level - use spaces, mixing tabs and spaces should be avoided.
- Strings are double-quoted instead of single-quoted.
- Functions should be grouped according to their visibility and ordered in the following way:
- constructor
- fallback function (if exists)
- external
- public
- internal
- private
If you need any help getting the smart contracts running on your computer, feel free to open an issue or contact us at [email protected].