Article Summary
GPT 4

概述

ERC是Ethereum Request for Comments的首字母缩写。它就像技术文档,定义了适用于一群想要利用以太坊生态系统的开发者和用户的方法、行为、创新和研究。ERC-20介绍了在以太坊区块链上创建可互换代币的代币标准,在该协议下的相同的代币完全一致。

ERC-20 提出了一个同质化代币的标准,换句话说,它们具有一种属性,使得每个代币都与另一个代币(在类型和价值上)完全相同。 例如,一个 ERC-20 代币就像以太币一样,意味着一个代币会并永远会与其他代币一样。

ERC-20(以太坊意见征求 20)由 Fabian Vogelsteller 提出于 2015 年 11 月。这是一个能实现智能合约中代币的应用程序接口标准。

ERC-20 的功能示例包括:

  1. 将代币从一个帐户转到另一个帐户
  2. 获取帐户的当前代币余额
  3. 获取网络上可用代币的总供应量
  4. 批准一个帐户中一定的代币金额由第三方帐户使用

如果智能合约实施了下列方法和事件,它可以被称为 ERC-20 代币合约,一旦部署,将负责跟踪以太坊上创建的代币。

接口定义

/ SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;
interface IERC20 {

Transfer 事件

event Transfer(address indexed from ,adress indexed to ,uint256 value);
  // 定义Transfer事件,在发生交易转移时触发。Solidity event在 EVM 的日志记录功能之上提供了一个抽象。应用程序可以通过以太坊客户端的 RPC 接口订阅和监听这些事件

Approval 事件

event Approval(address indexed owner, address indexed spenfer, uint 256 value);
   // 定义Approval事件,在发生代币授权时触发该事件

totalSupply 函数

function totalSupply() exetrnal view returns(uint256);
//获得当前代币的总供应量

balanceOf 函数

// 获取当前账户的代币余额
 function balanceOf(address account) external view returns (uint256);

transfer 函数

// 代币转移函数,将amount数量的代币转移到to地址
 function transfer(address to, uint256 amount) external returns (bool);

transferFrom 函数

    // 从from地址转移amounts数量到to地址
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

allowance 函数

//获取owner地址账号授权(approve方法进行授权)给spender地址的代币数量
function allowance(address owner, address spender) external view returns (uint256);

approve 函数

// 授权给spender地址 amount数量的代币,spender账户可以转移该数量代币通过调用
function approve(address spender, uint256 amount) external returns (bool);

链接

https://learnblockchain.cn/article/4506