We welcome all contributions!
Heads up: we use pnpm instead of yarn or npm. It might be new for you but I promise it's worth the hassle - it's really good at making big monorepos deterministic. Please ensure that you are running pnpm version 7.
First, run pnpm i
to install all deps.
We use TypeScript monorepo, each target is a separate package and has another package with tests. You need to run
pnpm watch
to automatically recompile all the projects as you introduce changes.
Run pnpm test:fix
before pushing, it will run eslint, prettier in fix mode and run all tests.
NB: due to a known issue in the npm version newer than 6 it is not possible to
start the commands. A quick fix is to downgrade the npm version npm install -g npm@6.14.17
.
Since we develop using multiple versions of Solidity to avoid Linter errors from Visual Code in the following way we can set the current solidity version.
- Install the "Solidity" extension from the Marketplace
- Inside
.sol
file, run right click ->Solidity: change workspace compiler version (remote)
- Choose version from dropdown menu (0.6.4 or 0.8.9 or ...)
Run pnpm build
to build all packages or pnpm watch
to start watching. Then enter desired package directory and run
pmpm link
.
DEBUG=typechain typechain