
适用范围:先理解代币接口
Web3代币交易所相关术语涉及多个层面,本文聚焦以太坊ERC-20代币的技术概念,适用于理解相关应用中的资产信息与合约交互。交易所的撮合、报价和账户记账规则,需要另行依据具体系统说明,不能由代币标准推断。
以太坊开发者文档将ERC-20描述为同质化代币的通用接口,涵盖余额查询、供应量查询、转账和授权。同一种代币的单位具有可互换性;这不意味着不同代币价值相同,也不意味着某种代币价格固定。
名称、符号与精度分别表示什么
name表示名称,symbol表示简称,decimals表示显示数量采用的小数位数。OpenZeppelin文档将这些归入元数据接口,并说明其ERC20实现默认精度为18,但允许修改。精度用于把合约中的整数转换为用户可读数量,不改变合约内部的整数运算。
因此,显示小数位更多不能说明代币更有价值。阅读资产数量时,需要把原始数值与该代币的精度结合理解,不能把不同精度的原始整数直接比较。
余额与总供应量的口径
balanceOf对应某个地址持有的代币数量,totalSupply对应该代币当前的总供应量。前者回答“这个地址有多少”,后者回答“这种代币共存在多少”。
总供应量字段本身不提供流通范围、锁定安排或持有人分类,因此不能直接充当流通量。地址余额也只说明代币合约中的记录,不能单独证明某个平台账户已完成入账。
授权、额度与转账的区别
approve用于设置指定支出方的可用额度,allowance用于查询剩余额度。transfer从调用者账户转出代币;transferFrom则可由获得授权的支出方,在权限范围内从持有人账户转移代币。
授权建立的是支出权限,通常不会立即改变持有人的代币余额。余额充足与授权额度充足也是两个条件:涉及代扣的合约交互,可能因为其中任何一个不足而失败。
常见问题:符合标准是否代表功能相同
ERC-20统一了基础接口,但没有统一所有业务规则。铸造、销毁、暂停转账等功能取决于具体合约实现,不能仅凭ERC-20标签判断是否存在,或由谁控制。
转账成功也不必然表示接收合约能够使用这些代币。ERC-20基础标准没有强制的接收通知机制;代币可能记在某个合约地址名下,却缺少后续转出路径。理解“成功”时,需要区分代币余额更新与接收方业务处理完成。