简单总结
令牌的标准接口。
摘要
以下标准允许在智能合约中为代币实施标准 API。该标准提供了转移代币的基本功能,并允许代币获得批准,以便其他第三方链上使用。
动机
标准接口允许以太坊上的任何代币被其他应用程序重用:从钱包到去中心化交易所。
规范
Token
注意:
以下规范使用 Solidity 0.4.17(或更高版本)的语法
调用者必须处理返回的错误(布尔成功)。调用者不得假设永远不会返回 false!
name
返回令牌的名称 - 例如“我的令牌”。 可选 - 此方法可用于提高可用性,但接口和其他合约不得期望这些值存在。
function name() public view returns (string)
symbol
返回令牌的符号。例如。 “HIX”。 可选 - 此方法可用于提高可用性,但接口和其他合约不得期望这些值存在。
function symbol() public view returns (string)
decimals
返回令牌使用的小数位数 - 例如8、表示将代币数量除以100000000得到其用户表示。 可选 - 此方法可用于提高可用性,但接口和其他合约不得期望这些值存在。
function decimals() public view returns (uint8)
totalSupply
返回总代币供应量。
function totalSupply() public view returns (uint256)
balanceOf
返回地址为 _owner 的另一个帐户的帐户余额。
function balanceOf(address _owner) public view returns (uint256 balance)
transfer
将 _value 数量的代币转移到地址 _to,并且必须触发 Transfer 事件。如果消息调用者的账户余额没有足够的代币可以花费,该函数应该抛出。 注意 0 值的传输必须被视为正常传输并触发 Transfer 事件。
function transfer(address _to, uint256 _value) public returns (bool success)
transferFrom
将 _value 数量的代币从地址 _from 转移到地址 _to,并且必须触发 Transfer 事件。 transferFrom 方法用于提款工作流程,允许合约代表您转移代币。例如,这可用于允许合约代表您转移代币和/或以子货币收取费用。该函数应该抛出,除非 _from 帐户通过某种机制故意授权消息的发送者。 注意 0 值的传输必须被视为正常传输并触发 Transfer 事件。
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
approve
允许 _spender 多次从您的帐户中提款,最高可达 _value 金额。如果再次调用此函数,它会用 _value 覆盖当前容差。 注意:为了防止像这里描述和讨论的攻击向量,客户端应该确保以这样一种方式创建用户界面,即他们首先将津贴设置为 0,然后再将其设置为同一支出者的另一个值。虽然合约本身不应该强制执行它,以允许与之前部署的合约向后兼容
function approve(address _spender, uint256 _value) public returns (bool success)
allowance
返回 _spender 仍被允许从 _owner 提取的金额。
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
Events
Transfer
必须在代币转移时触发,包括零值转移。 创建新代币的代币合约应该在创建代币时触发 Transfer 事件,并将 _from 地址设置为 0x0。
event Transfer(address indexed _from, address indexed _to, uint256 _value)
Approval
必须在任何成功调用approve(address _spender, uint256 _value) 时触发。
event Approval(address indexed _owner, address indexed _spender, uint256 _value)