Tooling required:
Run make setup
and customize .env
if necessary.
By default:
PRIVATE_KEY_LOCAL
is set to the first Anvil devnet account (seeded by ETH)
cd ../.. && make setup
- initialize libraries and npm packagesmake setup
- sets up symlinks & copies.env.example
to.env
if.env
does not existmake build
- build your projectmake watch
- watch files and re-run tests on temp local devnetmake clean
- remove compiled files
make test
- run tests on temp local devnetmake test-gas
- run tests and show gas report on temp local devnetmake test-fork
- run tests and show gas report using$ETH_NODE
as RPC endpoint
make lint
- lint files (look for code smells)make format-check
- checks that the code is properly formatted, but does not modify itmake format
- formats codemake check
- runsmake lint
andmake format-check
make anvil
- run local Anvil devnet on port 1337make deploy
- deploy the contracts on the $RPC_$CONFIG, using$PRIVATE_KEY_$CONFIG
as deployer private key, you can configure your own $CONFIG values, but we suggestLOCAL
,TEST
andMAIN
for local devnet, testnet and mainnet respectively- the contract addresses are output to
out/deployment.json
- also updates the wagmi-generated bindings (in
packages/webapp/src/generated.ts
)
- the contract addresses are output to
make deploy-debug
prints more about what happens to deploy (only to local devnet)
make selectors
- dumps to selectors for functions, events and errors toout/selectors.txt
make update-forge-std
- updates forge-std by git cloning it inside this repo (fuck git modules)