getTokenSupply如何核对代币供应量? 图 1
getTokenSupply如何核对代币供应量? · 图 1

getTokenSupply返回Mint账户的原始供应量和小数位。最可靠的展示方式是保留amount字符串,再按decimals换算;浮点uiAmount可能损失精度。

本文用数值例子区分供应量、展示值和经济流通量。

事实与证据边界

核验项可确认结论
TokenAmount字段getTokenSupply读取SPL Mint的供应量并返回context以及TokenAmount结构中的amount、decimals、uiAmount和uiAmountString。
精度换算amount是未缩放十进制整数字符串,展示值应按decimals换算并优先保留uiAmountString,避免浮点uiAmount精度损失。
快照记录Mint供应量不等于经济流通量,也不能直接说明持有人分布;冻结、锁仓、销毁权限和特殊扩展需要另行查询。

123456789怎样显示

amount="123456789"decimals=6,展示值是123.456789。应用可直接使用uiAmountString,并保留原始amount用于计算。不要先把amount转成JavaScript Number,再除以10的6次方;大整数可能在转换时已经丢位。

字段建议用途
context.slot标记这次供应快照的账本上下文
amount精确整数计算与审计
decimals定点小数缩放
uiAmountString人类可读、避免浮点损失
uiAmount兼容显示;高精度场景不作唯一证据

Mint供应量是程序记录的已发行减销毁结果,不自动扣除冻结、锁仓、团队托管或不可流通账户。判断经济流通量还要定义排除地址和时间口径。

三个容易造成错误结论的做法

  • 不要这样做:用浮点uiAmount做总量对账
  • 不要这样做:把Mint供应量直接称为市场流通量
  • 不要这样做:忽略Token-2022扩展或自定义owner

从输入到验收

阶段动作
准备核对Mint地址、账户owner和Token程序版本
读取保存context.slot与完整TokenAmount
解释用大整数和decimals独立复算uiAmountString
复核第二端点在相近上下文复核原始amount
收尾将链上供应与业务定义的流通量分栏

用三条路径验收精度换算

第一条是成功路径。选择一个已经知道结果的对象,执行“核对Mint地址、账户owner和Token程序版本”和“保存context.slot与完整TokenAmount”,同时保存原始输入、原始输出、网络或版本、取证时间。另一位复核者只能读取这些材料,不读取页面上的结论;他需要独立完成TokenAmount字段解释。两次结果一致,说明这个样本可复现,但不能据此承诺所有环境都得到相同结果。

第二条是单变量反例。故意制造“用浮点uiAmount做总量对账”,并确保其余字段与成功样本完全相同。系统应明确指出哪一项校验失败,保留错误码、返回值或字节差异;若它自行切换默认值、吞掉未知字段或沿用缓存,测试就算失败。然后再针对“把Mint供应量直接称为市场流通量”建立独立反例,两个错误不要同时注入。

第三条是状态切换。先完成“用大整数和decimals独立复算uiAmountString”取得旧状态,再改变一个会影响供应与流通边界的条件并重新查询。旧证据不能被覆盖,新证据也不能倒推旧时点。页面要把对象主键、上下文和时间放在结果旁边,让读者知道结论针对哪次观察。

最终交接包应包含TokenAmount字段原文、精度换算推导、快照记录验收和供应与流通边界说明。若出现“忽略Token-2022扩展或自定义owner”,发布状态只能是待核验,并回到“第二端点在相近上下文复核原始amount”补证据。这样可把底层事实错误、环境变化与界面展示错误分开定位。

来源、增量与风险边界

  1. Solana RPC:正式接口、字段与规范语义。
  2. Solana RPC Overview:实现路径、兼容性或安全边界。

本文资料读取于2026-07-20。Token-2022扩展或自定义程序可能影响业务语义,调用前必须核对Mint owner和目标程序。

站内相邻主题可继续阅读:Token数值换算Solana RPC核验。供应量不是价格、持有人分布或可出售数量。任何“流通”结论都应披露排除规则和快照slot。