@0x/migrations 中文文档教程
Migrations
使用这些迁移在您选择的网络上迁移智能合约的 0x 系统。
Contributing
我们欢迎来自更广泛社区的改进和修复! 要报告此包中的错误,请在此存储库中创建一个问题。
请在开始之前阅读我们的贡献指南。
Install dependencies
如果您没有启用 yarn workspaces (Yarn < v1.0) - 启用它们:
yarn config set workspaces-experimental true
然后安装依赖
yarn install
Build
项 要构建此包和它所依赖的所有其他 monorepo 包,请从 monorepo 根目录运行以下命令:
PKG=@0x/migrations yarn build
或持续重建on change:
PKG=@0x/migrations yarn watch
Clean
yarn clean
Lint
yarn lint
Migrate
V2 smart contracts
为了将 V2 0x 智能合约迁移到运行在 http://localhost:8545
的 TestRPC/Ganache,运行:
yarn migrate:v2
Publish
0x Ganache Snapshot
可以在这个包中生成和发布 0x Ganache 快照。 为了构建此版本迁移运行的快照:
yarn build:snapshot
这将在 Ganache 中运行迁移并输出一个 zip 文件以上传到 s3 存储桶。 例如,运行此命令后,您将创建 0x_ganache_snapshot-2.2.2.zip
。 将 zip 文件发布到 s3 存储桶运行:
yarn publish:snapshot
此快照现在将在 http://ganache-snapshots.0x.org.s3.amazonaws.com/0xganachesnapshot-latest 上公开提供。 zip 并且还使用 package.json 版本进行了版本控制。
0x Ganache Docker Image
我们还发布了一个简单的 docker 镜像,它可以下载最新的快照、提取并运行 Ganache。 当迁移发生变化时不需要构建它,因为它总是下载并运行最新的 zip 文件。 如果您对 Dockerfile 进行了更改,则需要发布图像。 要执行此操作:
yarn build:snapshot:docker
yarn publish:snapshot:docker
结果是将 docker 映像发布到 0xorg docker 注册表。 要启动 docker 镜像运行:
docker run -p 8545:8545 -ti 0xorg/ganache-cli:latest
这将拉取 s3 存储桶中的最新 zip,提取并使用快照启动 Ganache。
如果您需要已发布的 Ganache 快照的特定版本,请运行以下指定 VERSION 环境变量:
docker run -e VERSION=2.2.2 -p 8545:8545 -ti 0xorg/ganache-cli:latest
Production
如果将合约更改部署到主网,@0x/contract-artifacts
也应更新和发布。 必须从每个 contracts/{package-name}/generated-artifacts/{contract}.json
复制工件。
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/0xganachesnapshot-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
.