@0x/contracts-gen

Generates boilerplate code for smart contracts packages

Usage no npm install needed!

<script type="module">
  import 0xContractsGen from 'https://cdn.skypack.dev/@0x/contracts-gen';
</script>

README

Contracts Gen

This package allows you to generate boilerplate TypeScript code and configs for smart contracts packages.

Installation

yarn add -g @0x/contracts-gen

Usage

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.

What can it generate

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.

Contributing

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.

Install dependencies

If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:

yarn config set workspaces-experimental true

Then install dependencies

yarn install

Build

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

Clean

yarn clean

Lint

yarn lint