Smart contracts
Node version
Node >v16.14.X is supported, although Node v18.17.X is recommended.
A .nvmrc
has been provided if you use nvm
. You can use this by:
Environment variables
Before you start, you need to setup the environment variables. Look at the .env.example
to know what to setup. Env variables required are:
Framework
The smart contracts run on a Hardhat environment.
The smart contracts are written in Solidity, and are in the contracts
directory.
Tests are written in JS/TS, and are in tests
directory. An example test is written for you here.
Scripts are also written in JS/TS, and are in scripts
directory. Some mandatory scripts are already there to get started with.
Deploying on local test chain
The dev
command automates everything for you to setup a local test chain.
This will also generate some funded test wallets for you in this test chain, which you can use to develop your DApp.
You may also start this local chain by forking any EVM compatible chain. Just run:
To see all available options, run:
The dev
command internally runs the provided scripts/deploy_localhost
script to deploy all contracts in the correct sequence. When working on your own smart contracts, make sure to update this script.
Local test chain explorer
Optionally, you can also enable a local blockchain explorer, which auto-indexes all transactions, and provides a feature-loaded dashboard for you to get an overview of this chain.
To use it, run the dev
command with -e
, optionally with a few more args.
For this to work, you need to sign up on Ethernal, and create a workspace. Then you put your login email, password and workspace name inside the .env
in smart-contracts
(checkout the .env.example
).
The above config can also be mentioned with dev
command params --ethernal-login-email
, --ethernal-login-password
and --ethernal-workspace
, which overrides the env variables.
Once started, you can access the chain explorer at the same URL as mentioned before!
Deploying to production
The deploy
command automates everything for you to deploy to any EVM compatible chain.
The deploy
command internally runs the provided scripts/deploy_prod
script to deploy all contracts in the correct sequence. When working on your own smart contracts, make sure to update this script.
To see all available options, run:
Last updated