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”补证据。这样可把底层事实错误、环境变化与界面展示错误分开定位。
来源、增量与风险边界
- Solana RPC:正式接口、字段与规范语义。
- Solana RPC Overview:实现路径、兼容性或安全边界。
本文资料读取于2026-07-20。Token-2022扩展或自定义程序可能影响业务语义,调用前必须核对Mint owner和目标程序。
站内相邻主题可继续阅读:Token数值换算、Solana RPC核验。供应量不是价格、持有人分布或可出售数量。任何“流通”结论都应披露排除规则和快照slot。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。