最新の OpenZeppelin (1.9.0) をみたら、これまでとかなり Crowdsale コントラクトのデプロイ手順が異なっていたのでメモ。
これまでは、Crowdsale Contract の中で Token Contract のインスタンスを生成していたが、どうやら Gas 消費量が大きすぎるらしく、Crowdsale と Token の Contract を別々にデプロイ(インスタンスの生成)をしておき、あとから Token の owner を Contract のアドレスに変えるといった方法をとるらしい。(少なくとも mint をする Crowdsale の場合。)
手順のめも
- まず Token Contract をデプロイする
- Crowdsale Contract のデプロイ時に、Token Contract のアドレスを指定する
- Token Contract の owner を Crowdsale Contract のアドレスにする