Skip to content

wighawag/template-ethereum-contracts

Repository files navigation

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

  1. Using hardhat
pnpm test
  1. 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

About

Template to develop ethereum smart contracts

Resources

Stars

Watchers

Forks

Packages

No packages published