This package allows you to generate boilerplate TypeScript code and configs for smart contracts packages.
yarn add -g @0x/contracts-gen
Run it from within your smart contracts packages.
contracts-gen
You should run this tool after each time you move your contracts around to regenerate boilerplate code and configs.
This tool does the following:
- Reads your
compiler.json
. Specifically the list of smart contracts. - Creates
wrapper.ts
file which exports all contract wrappers. - Creates
artifacts.ts
file which exports all contract artifacts. - Generates list of JSON artifact files in
tsconfig.json
- Generates a glob for abi-gen in
package.json
On top of that - if your compiler.json
has contracts referenced just by name - it will resolve the name to relative path and put it there.
It also sorts all the lists in it's output leading to smaller and cleaner diffs.
We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository.
Please read our contribution guidelines before getting started.
If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
yarn config set workspaces-experimental true
Then install dependencies
yarn install
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
PKG=@0x/contracts-gen yarn build
Or continuously rebuild on change:
PKG=@0x/contracts-gen yarn watch
yarn clean
yarn lint