区块链 · 数字资产知识 · 行业资讯
文章库关于本站

数字资产知识

区块链数字资产基础怎么学|原生资产余额和代币余额分开看

摘要

对照ethereum.org账户页对ETH余额字段的说明,并用OpenZeppelin ERC-20文档区分合约内balanceOf记账;同一地址可同时持有互不等价的原生余额与代币余额。

区块链账户模型的科技主题配图

账户先有原生余额字段,不等于代币清单

ethereum.org的Ethereum accounts页把账户定义为“带有ether(ETH)余额、可在以太坊上发送消息的实体”,并区分外部拥有账户(EOA)与合约账户。两种账户都能接收、持有并发送ETH和代币,但页面在“An account examined”中列出的四个字段里,与资产数量直接对应的是balance:该地址拥有的wei数量;wei是ETH的计量单位,1 ETH等于1e+18 wei。

也就是说,协议状态里为地址准备的原生记账槽位,首先记录的是原生资产ETH,而不是任意ERC-20代币的明细表。学习“区块链数字资产基础”时,应先把“地址上有没有ETH”和“某个代币合约里记了多少余额”当成两套问题,避免把钱包界面汇总余额误当成单一账本字段。

代币余额在合约里用balanceOf查询

OpenZeppelin Contracts的ERC-20文档说明:ERC-20合约跟踪同质化代币,任一枚与其他枚等价。示例合约部署后,可用GLDToken.balanceOf(deployerAddress)查询部署者余额,并用transfer把代币转到其他地址后再分别查询双方balanceOf。文档还强调decimals主要用于显示换算,合约内部运算仍基于整数。

因此,同一地址可以同时:在协议账户字段持有ETH(ethereum.org所述balance),又在多个ERC-20合约各自的映射中持有不同代币余额(OpenZeppelin示例中的balanceOf)。这些余额互不等价,也不能用“地址余额”一个词笼统替代;查看某代币是否足够,必须指向具体合约与其balanceOf结果。

SGT区块链发行总量的科技主题配图

基础核对顺序:网络、原生、再代币

把两份文档合在一起,可以得到一条可操作的学习顺序:先确认所看网络与地址类型(EOA或合约),再读该地址的原生ETH/wei余额,最后按代币合约地址分别查询balanceOf,并按该合约decimals理解显示值。ethereum.org还写明私钥控制的是账户活动与相关资金的托管关系,资金本身记在账本上——这进一步提醒:界面“总资产”是多来源汇总,不是链上单一字段。

写作边界:本文只区分原生余额与ERC-20合约余额两套记账,不展开跨链桥、不报价、不给出充值或交易指令;也不把OpenZeppelin示例中的游戏代币GLD解释成任何真实流通资产推荐。

← 返回全部文章

延伸阅读 · 相关栏目

区块链基础技术原理数字资产知识资料与核验