初心者文系主婦がブロックチェーンを学ぶブログ

IT革命のビッグウェーブに乗り遅れた主婦が、ブロックチェーン革命の波にのるべく、ブロックチェーン技術を学ぶブログです。

【CryptZombies】レッスン5チャプター4:リファクタリング

リファクタリング

リファクタリングとは、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することです。

前チャプターで、ownerOfという関数を定義しました。
しかし、レッスン4を振り返ると、同じownerOfという名前のmodifierもzombiefeeding.solの中に作っています。
このコードをコンパイルしようとしても、コンパイラは同じ名前の修飾詞と関数を持つことはできないとエラーを出します。

ERC721トークン規格を使用するということは、定義されたある名前の関数を私たちのコントラクトが持つことを、他のコントラクトから予期されるということになります。
したがって、modifier名を別のものに変更して、レッスン4のコードをリファクタリングしなくてはなりませn。

テストの実行

zombiefeeding.solへ戻ろう。modifier名をownerOfからonlyOwnerOfへ変更していくぞ。

①修飾詞名の定義をonlyOwnerOfに変更せよ。

modifier onlyownerOf(uint _zombieId) {
    require(msg.sender == zombieToOwner[_zombieId]);
    _;
  }

②下へスクロールしていき、この修飾詞を使っているfeedAndMultiply関数を見つけたら、ここでも同じように名前を変更せよ。

 function feedAndMultiply(uint _zombieId, uint _targetDna, string _species) internal onlyownerOf(_zombieId) {
    中略
  }


お疲れさまでした!


<参考>
CryptoZombies - イーサリアム上でゲームを開発する方法を学習。Powered by Loom Network