简介
@0xproject/migrations 是一个由 0x Project 提供的 npm 包,用来部署智能合约以及迁移合约的状态。该包支持连接主网,测试网以及私有链。本文将为读者提供使用该包的详细教程。
安装
使用 npm 安装 @0xproject/migrations,输入以下命令:
npm install @0xproject/migrations --save
配置
在使用 @0xproject/migrations 之前,需要进行简单的配置。在项目根目录下新建一个配置文件 migrations-config.js,并输入以下内容:
-- -------------------- ---- ------- ----- ---------------- - ------------------------------------- ----- -------- - ----- -------- ------ -------------- - - -------- ------------ -- ------------------------------------------------ --------- ------------ -- ------ ---- -------- -- ------ --------- --------- -- -- --- -------------------------- ------------------------------------- ------ --- ------- --
在配置文件中,将 mnemonic 替换成自己的助记词,在 provider 中将 <network> 和 <your> 替换成正确的信息。其中 <network> 可选项包括 mainnet、ropsten、rinkeby、kovan 和 ganache。
部署合约
使用 @0xproject/migrations 部署合约的方法如下:
-- -------------------- ---- ------- ----- - --------------------- - - --------------------------------- ------ -- -- - ----- ---- - ---------------------- ----- --------------- - ----------------------------- ----- ------- - -------- ----- ------- - -------- ----- -------------------------------------------------- -------- -------- ---------------- -- ---------------- ---- --------------------------
在上述代码中,deployMigrationsAsync 方法的第一个参数是编译合约的二进制文件所在的目录。第二个参数是在哪个网络上进行部署,第三个参数是版本号。如果需要部署的合约发生了修改,则需要添加 --overwrite 参数。如果使用 solc 0.4.21 或以上的版本,可以使用 optimizerEnabled 参数启用优化。
迁移合约状态
使用 @0xproject/migrations 迁移合约状态的方法如下:
-- -------------------- ---- ------- ----- - ------------------ - - --------------------------------- ------ -- -- - ----- ---- - ---------------------- ----- ------- - -------- ----- ------- - -------- ----- ------------------------------- - ---------------------------- ----- ------------------------------------------------ -------- -------- -------------------------------- -- ---------------- ---- --------------------------
上述代码中,runMigrationsAsync 方法的第一个参数是迁移合约所在的目录。第二个参数是在哪个网络上进行迁移,第三个参数是版本号。如果需要重新部署已经存在的迁移合约,则需要添加 --redeploy 参数。如果使用 solc 0.4.21 或以上的版本,可以使用 optimizerEnabled 参数启用优化。
示例代码
以下示例代码读取 solc 编译器编译的二进制文件,部署智能合约。
-- -------------------- ---- ------- ----- -- - -------------- ----- ---- - ---------------- ----- - --------------------- - - --------------------------------- ------ -- -- - -- --------- ----- ---------- - --------------------------------------- -------- -- ------ ----- ---------------- - ------------------------ --- -- ------ --------------------------------------------- ---------------------------------- -- ------ ----- -------------------------------------------------- ---------- --------- -----
总结
使用 @0xproject/migrations 可以方便地部署智能合约以及迁移智能合约的状态。本文介绍了如何安装、配置以及使用该 npm 包。希望读者通过本文的学习,可以更好地运用 @0xproject/migrations 包。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/xproject-migrations