- Audited
- Contracts are proxied and upgradable
- 400+ unit tests with 99% code coverage
- Deployment scripts with automatic Etherscan verification of each contract
All NPM resources are project-local. No global installs required.
cd path/to/seen-contracts
npm install
Create a file called environments.js
with
-
The following info for each Ethereum network environment.
txNode
: the endpoint for sending ethereum transactionsprivateKey
: a valid ethereum HD wallet private key
-
The following info for verifying code on Etherscan and running the gas reporter
etherscan.apiKey
: your etherscan API keycoinmarketcap.apiKey
: your coinmarketcap API key
module.exports = {
"etherscan": {
"apiKey": "<YOUR_ETHERSCAN_API_KEY>"
},
"coinmarketcap": {
"apiKey": "<YOUR_COINMARKETCAP_API_KEY>"
},
"rinkeby": {
"txNode": "https://rinkeby.infura.io/v3/<YOUR_INFURA_API_KEY>",
"privateKey": "<YOUR_WALLET_PRIVATE_KEY>"
},
"mainnet": {
"txNode": "https://mainnet.infura.io/v3/<YOUR_INFURA_API_KEY>",
"privateKey": "<YOUR_WALLET_PRIVATE_KEY>"
}
};
This creates the build artifacts for deployment or testing
npm run build
This builds the contracts and runs the unit tests.
npm run test
This deploys the built contracts to local network (mainly to test deployment script)
npm run deploy:local
This deploys the built contracts to Rinkeby
npm run deploy-suite:rinkeby
This deploys the built contracts to Mainnet
npm run deploy-suite:mainnet
This runs the scripts/manage-roles.js
script.
npm run manage-roles:rinkeby
This runs the scripts/manage-roles.js
script against mainnet.
npm run manage-roles:mainnet