はじめに
OpenZeppelin SDKの前身であるZeppelinOSのプロジェクト(v2.4)を、OpenZeppelin SDKプロジェクト(v2.5)に移行するための手順をメモ。
ZeppelinOSからOpenZeppelin SDKへの移行方法
package.json
- zos -> @openzeppelin/cli
> npm uninstall zos
> npm install @openzeppelin/cli
- openzeppelin-eth -> @openzeppelin/contracts-ethereum-package
> npm uninstall openzeppelin-eth
> npm install @openzeppelin/contracts-ethereum-package
- (optional) web3@1.0.0-beta.37 -> web3@1.2
web3のバージョンがv1.2でstableになり、OpenZeppelin SDKでも、v2.5.2からはv1.2を使用するようになった。
> npm uninstall openzeppelin-eth
> npm install @openzeppelin/contracts-ethereum-package
コマンド
-
zos
->openzeppelin
またはoz
プロジェクト管理ファイル
今まで、zos
のprefixで識別されていたプロジェクト管理ファイルは、全て.openzeppelinディレクトリに移された。
- zos.json -> .openzeppelin/project.json
- zos.dev-5777.json -> .openzeppelin/dev-5777.json
- zos.rinkeby.json -> .openzeppelin/rinkeby.json
など
solidityファイル
import部分を修正する必要がある。
openzeppelin-eth -> @openzeppelin/contracts-ethereum-package
// import "openzeppelin-eth/contracts/math/SafeMath.sol";
import "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol";
まとめ
上記の変更を加えることで、ZeppelinOSのプロジェクトをOpenZeppelin SDKのプロジェクトに移行できる。
場合によってはnpm周りなどもう少し修正が必要になることがあるが、@openzeppelin以下を使うことに気をつければ大丈夫。
おまけ
OpenZeppelin SDKについては、以下のtweetや以前書いたqiita記事を見てもらうのが良いかと思います。
EthereumのdApps開発フレームワークとしてOpenZeppelin SDKが急成長しているので、紹介の意味も込めて1つ記事を書きました。Truffleの強力な対抗馬になると思います。https://t.co/WO8J928CVB
— こみー / Ryo Komiyama (@ryoheikomy) July 25, 2019
OpenZeppelin SDKの旧名はZeppelinOSで、5日前の2019/07/20に名称を変更しました。この変更でv2.5になったのですが、実はちょうど1ヶ月前のv2.4へのアップデートでインタラクティブなCLIをリリースしており、このCLIが非常に有用です。
— こみー / Ryo Komiyama (@ryoheikomy) July 25, 2019
Qiita記事: OpenZeppelin SDK (旧ZeppelinOS) を使って、コードを1行も書かずに3分でERC721を発行する