💭
Solidity初心者のCryptoZombiesまとめ(中級編チャプター5)
はじめに
チャプター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