CryptoZombies 5
2634 ワード
ERC20, ERC721
タグ:いくつかの共通の規則に従うスマートな規則
ERC 721規格
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;
}
に約束
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;
}
contract SatoshiNakamoto is NickSzabo, HalFinney {
// 오 이런, 이 세계의 비밀이 밝혀졌군!
}
balanceOf
function balanceOf(address _owner) public view returns (uint256 _balance);
addressを受信し、その値にどれだけのタグがあるかを返します.クリプトン星ゾンビではゾンビを意味し、あるプレイヤーがどれだけゾンビを持っているかを意味します.
ownerOf
マークID(クリプトンゾンビではゾンビID)を受信し、そのIDを持つ人のアドレスを返します.
function ownerOf(uint256 _tokenId) public view returns (address _owner);
改造する
私たちのコードで使用するmodifierの名前はトークン標準関数の名前と同じなので、変更する必要があります.
ERC 721トークン基準を使用すると、他の請負業者も私たちのオファーに正しい名前で定義された関数があり、正常に動作することを望んでいます.
これにより,他の請負業者が我々の内部実装ロジックを知らなくても,トークン標準関数を介して我々と通信することができる.
(key - value)
ERC 721伝送路織物
ERC 721を伝送する方法は2つある.
トークンの所有者はtransfer関数を呼び出し、トランスポートオブジェクトのaddressとトランスポートするtokenIdを呼び出します.
function transfer(address _to, uint256 _tokenId) public;
上記の情報を使用してapprove関数を呼び出し、見積書でタグを使用できるようにした人を保存します.(第2期)
function approve(address _to, uint256 _tokenId) public;
function takeOwnership(uint256 _tokenId) public;
approve方式では、2回の関数呼び出しが発生するため、関数呼び出しの間に誰が何を承認したかを格納するデータ構造が必要です.takeOwnership関数でmsg.Senderがトークンを持つことが承認されたことを確認し、確認後にtransferを呼び出す
ライブラリ(Library)
エンティティ内の特殊なタイプの規則
この機能は、基本(ネイティブ)データ型に関数を貼り付ける場合に便利です.
キーワード
SafeMath
オーバーフローやバックフローなどの問題を防止するライブラリ.
一般的には、基本的な数学演算よりもSafeMathの方が安全です.
assert
requireに似た条件を満たさないと、エラーが発生します.
違いは、require関数が失敗すると、残りのガスが返されます.
Reference
この問題について(CryptoZombies 5), 我々は、より多くの情報をここで見つけました https://velog.io/@soccerball/CryptoZombies-5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol