CryptoZombiesコード解説 ERC721

CryptoZombiesのコードを解説します。コントラクトの関係全体を見たい方はこちらへ。

contract ERC721

非代替性をもつトークンについてのコントラクトの規格です。この規格(プログラム的には関数群と各関数に実装すべき処理の要請)に沿って、ZombiesOwnershipを実装します。

関連するレッスン、チャプター

  • Lesson 5
  • ソースコード・解説

    
    contract ERC721 {
      // トークン(ここではゾンビ)の交換がされたときに発火するイベント
      event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
    
      // トークンの受け取り許可がされたときに発生するイベント
      event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
    
      // _ownerが持っているトークンの残高を返す。今回はゾンビの保有数を返している。
      function balanceOf(address _owner) public view returns (uint256 _balance);
    
      // トークンIDから、そのトークンの所有者のEthereumアカウントIDを返す。
      function ownerOf(uint256 _tokenId) public view returns (address _owner);
    
      // この関数を呼んだアカウント(msg.sender)から、_to あてに _tokenIdで示したトークンを送付する。
      function transfer(address _to, uint256 _tokenId) public;
    
      // この関数を呼んだアカウント(msg.sender)が、_toに対して_tokenIdの受け取りを許可する。
      function approve(address _to, uint256 _tokenId) public;
    
      // もしapproveにより受け取り許可がされていたら、msg.senderが、_tokenIdのトークンの所有権を取得する。
      function takeOwnership(uint256 _tokenId) public;
    }