💭

Solidity初心者のCryptoZombiesまとめ(中級編チャプター5)

2022/10/15に公開

はじめに

前回のチャプター

チャプター5/6で学べること

チャプター5では、ERC721規格で使われているメソッドについて学ぶことができる。チャプター6ではweb3.js(クライアント側)のコーディングが主なので、Solidityについてはほぼ記載がないため割愛する。

ERC721規格

  • 非代替トークンであるNon-Fungible Token(NFT)の取り扱いをするための規格。規格の中で以下のようなメソッドや機能がすでに作られていて、基本的にはそれを元にコントラクトを実装していく。
contract ERC721 {
  event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
  event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);

  function balanceOf(address _owner) public view returns (uint256 _balance);
  function ownerOf(uint256 _tokenId) public view returns (address _owner);
  function transfer(address _to, uint256 _tokenId) public;
  function approve(address _to, uint256 _tokenId) public;
  function takeOwnership(uint256 _tokenId) public;
}

balanceOf

  • addressを受け取り、そのaddressのトークン保有量を返す。
function balanceOf(address _owner) public view returns (uint256 _balance);

ownerOf

  • トークンID (この場合ゾンビのIDだ)を受け取り、その所有者の addressを返す。
function ownerOf(uint256 _tokenId) public view returns (address _owner);

SafeMath

  • オーバーフローを防ぐための関数。以下のようにして、使用することでオーバーフローを未然に防げる
using SafeMath for uint256;

uint256 a = 5;
uint256 b = a.add(3); // 5 + 3 = 8
uint256 c = a.mul(2); // 5 * 2 = 10

Discussion