Skip to content
This repository was archived by the owner on Jul 9, 2021. It is now read-only.

Files

Latest commit

ac8b08d · Oct 16, 2020

History

History

migrations

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jan 14, 2020
Nov 17, 2019
Oct 16, 2020
Jun 25, 2020
Dec 17, 2018
Apr 4, 2019
Sep 3, 2020
Jul 15, 2020
Aug 27, 2020
Jun 5, 2019
Aug 19, 2020
Nov 22, 2019
Oct 18, 2018
Nov 21, 2018

Migrations

Migrate the 0x system of smart contracts on the network of your choice using these migrations.

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/migrations yarn build

Or continuously rebuild on change:

PKG=@0x/migrations yarn watch

Clean

yarn clean

Lint

yarn lint

Migrate

V2 smart contracts

In order to migrate the V2 0x smart contracts to TestRPC/Ganache running at http://localhost:8545, run:

yarn migrate:v2

Publish

0x Ganache Snapshot

The 0x Ganache snapshot can be generated and published in this package. In order to build the snapshot for this version of migrations run:

yarn build:snapshot

This will run the migrations in Ganache and output a zip file to be uploaded to the s3 bucket. For example, after running this command you will have created 0x_ganache_snapshot-2.2.2.zip. To publish the zip file to the s3 bucket run:

yarn publish:snapshot

This snapshot will now be publicly available at http://ganache-snapshots.0x.org.s3.amazonaws.com/0x_ganache_snapshot-latest.zip and also versioned with the package.json version.

0x Ganache Docker Image

We also publish a simple docker image which downloads the latest snapshot, extracts and runs Ganache. This is not required to be built when migrations change as it always downloads and runs the latest zip file. If you have made changes to the Dockerfile then a publish of the image is required. To do this run:

yarn build:snapshot:docker
yarn publish:snapshot:docker

The result is a published docker image to the 0xorg docker registry. To start the docker image run:

docker run -p 8545:8545 -ti 0xorg/ganache-cli:latest

This will pull the latest zip in the s3 bucket, extract and start Ganache with the snapshot.

In the event you need a specific version of the published Ganache snapshot run the following specifying the VERSION environment variable:

docker run -e VERSION=2.2.2 -p 8545:8545 -ti 0xorg/ganache-cli:latest

Production

If deploying contract changes to mainnet, @0x/contract-artifacts should also be updated and published. The artifacts must be copied from each contracts/{package-name}/generated-artifacts/{contract}.json.