Cover photo

ERC标准

ERC标准

  • 什么是ERC标准?

  • ERC标准的种类有哪些?

  • 分别有什么作用?

1.ERC标准是什么?

  • ERC:Ethereum Request for Comment,表示以太坊开发者提交的协议提案

    • ERC中包含技术和组织等注意事项及标准,ERC后面的数字是议案的编号。

  • 相当于是一个 开发者不断各更新提交的关于以太坊中的一些使用标准,不断提交的协提案

ERC后面的数字是议案的编号

2.ERC20

  • ERC20:同质化代币

    • 定义代币的各种基础信息

  • 主要信息

    • 代币名称

    • 代币符号

  • 基础功能函数

    • 1.余额

    • 2.交易:当前用户发送

    • 3.交易:传递用户发送

    • 4.批准

    • 5.允许

function name() public view returns (string)
function symbol() public view returns (string)
function decimals() public view returns (uint8)
function totalSupply() public view returns (uint256)
function balanceOf(address _owner) public view returns (uint256 balance)
function transfer(address _to, uint256 _value) public returns (bool success)
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
function approve(address _spender, uint256 _value) public returns (bool success)
function allowance(address _owner, address _spender) public view returns (uint256 remaining)

包含一些事件

  • 监控交易

  • 监控证明

event Transfer(address indexed _from, address indexed _to, uint256 _value)
event Approval(address indexed _owner, address indexed _spender, uint256 _value)

3.ERC721

  • ERC721:非同质化代币 NFT

    • 可以具有唯一的标识

    • 主要应用:收藏品、密钥、彩票、音乐会座位编号、体育比赛等。

  • 所有 NFTs 都有一个 uint256 变量,名为 tokenId,所以对于任何 ERC-721 合约,这对值contract address, tokenId 必须是全局唯一的。

  • 也就是说,去中心化应用程序可以有一个“转换器”, 使用 tokenId 作为输入并输出一些很酷的事物图像,例如僵尸、武器、技能或神奇的小猫咪!

  • 实现唯一的标识,数据=》其他

基础的定义

  • 余额

  • token的所有者

  • 安全交易

  • 证明

  • 获取证明

    function balanceOf(address _owner) external view returns (uint256);
    function ownerOf(uint256 _tokenId) external view returns (address);
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
    function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
    function approve(address _approved, uint256 _tokenId) external payable;
    function setApprovalForAll(address _operator, bool _approved) external;
    function getApproved(uint256 _tokenId) external view returns (address);
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);

事件

    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);