Lesson 5 capture 8 ERC721 takeOwnership
トークン移転の一連の流れ
function _transfer(address _from, address _to, uint256 _tokenId) private {
ownerZombieCount[_to]++;
ownerZombieCount[_from]--;
zombieToOwner[_tokenId] = _to;
Transfer(_from, _to, _tokenId);
}
mapping (uint => address) zombieApprovals;
function transfer(address _to, uint256 _tokenId) public onlyOwnerOf(_tokenId) {
_transfer(msg.sender, _to, _tokenId);
}
function approve(address _to, uint256 _tokenId) public onlyOwnerOf(_tokenId) {
zombieApprovals[_tokenId] = _to;
Approval(msg.sender, _to, _tokenId);
}
function takeOwnership(uint256 _tokenId) public {
require(zombieApprovals[_tokenId] == msg.sender);
address owner = ownerOf(_tokenId);
_transfer(owner, msg.sender, _tokenId);
}
prev
-
クリプトゾンビLesson 5 capture 7 ERC721 Approveでのトークン移転
Lesson 5 capture 7 ERC721 Approveでのトークン移転 Approveでのトークン移転の流れ。 (トークン所有者がまずapprove関数を呼び出し、一番目と同じ情報を関数に ...
next
-
クリプトゾンビLesson 5 capture 9 オーバーフロー対策
Lesson 5 capture 9 オーバーフロー対策 コントラクトのセキュリティ強化 オーバーフローとアンダーフロー オーバーフロー 変数のとりうる値を超えた状態。 uint8の値は、最大2^8 ...