eth-game
Ongoing collections of smart contracts for games
Using this Project
Clone this repository, then install the dependencies with npm install
. Build everything with npm run build
. https://hardhat.org has excellent docs, and can be used as reference for extending this project.
Available Functionality
Build Contracts and Generate Typechain Typeings
npm run compile
Run Contract Tests & Get Callstacks
In one terminal run npx hardhat 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 localhost
flag; see below).
Run Contract Tests and Generate Gas Usage Report
In one terminal run npx hardhat node
Then in another run npm run test -- --network localhost
Notes:
- When running with this
localhost
option, you get a gas report but may not get good callstacks - See here for how to configure the gas usage report.
Run Coverage Report for Tests
npm run coverage
Notes:
- running a coverage report currently deletes artifacts, so after each coverage run you will then need to run
npx buidler clean
followed bynpm run build
before re-running tests - the branch coverage is 75%
Deploy to Ethereum
Create/modify network config in hardhat.config.ts
and add API key and private key, then run:
npx hardhat run --network rinkeby scripts/deploy.ts
Verify on Etherscan
Using the hardhat-etherscan plugin, add Etherscan API key to hardhat.config.ts
, then run:
npx hardhat verify --network rinkeby <DEPLOYED ADDRESS>
PRs and feedback welcome!