Awesome
A template for EVM-based smart contract development
How to use it?
Compile your contracts
pnpm compile
Test your contracts
There are 2 flavors of tests
- Using hardhat
pnpm test
- Using foundry
forge test
This assumes you have forge
installed and that you added forge-std in via the following command
git clone --recursive https://github.com/foundry-rs/forge-std.git lib/forge-std
(You can also add it as a submodule if you prefer, just remove the
lib/forge-std
line in .gitignore first)
watch for changes and rebuild automatically
pnpm compile:watch
deploy your contract
-
on localhost
This assumes you have a local node running:
pnpm local_node
pnpm run deploy localhost
-
on a network of your choice
Just make sure you have your .env.local setup, see .env
pnpm run deploy <network>
execute scripts
pnpm execute <network name> scripts/setMessage.ts
or if you want to execute in a forked environment :
pnpm fork:execute <network name> scripts/setMessage.ts "Hello world"
zellij
zellij is a useful multiplexer (think tmux) for which we have included a layout file to get started
Once installed simply run the following to get a local in-memory Ethereum node running along with the tests
pnpm start
if you want to try Zellij without installing it, try this :
bash <(curl -L zellij.dev/launch) --layout zellij.kdl
In the shell in the upper pane, you execute the script as mentioned above
pnpm execute localhost scripts/setMessage.ts "Hello everyone"
Initial Setup
You need to have these installed
Then you need to install the local dependencies with the following command:
pnpm i
We also recommend installing Zellij to have your dev env setup in one go via pnpm start