FT合约设置18位小数后Ref Finance平台代币数值显示异常问题咨询
你提供的NEP-141标准代币合约代码实现正确,decimals字段已按需求设置为18,链上元数据配置没有问题。
fn ft_metadata(&self) -> FungibleTokenMetadata { FungibleTokenMetadata { spec: FT_METADATA_SPEC.to_string(), name: String::from("Avrit fungible token"), symbol: String::from("AVRIT"), icon: None, reference: None, reference_hash: None, decimals: 18, } }
显示异常根因
你遇到的显示偏差属于第三方DEX平台缓存问题,与链上合约无关:
- 大多数DEX不会实时同步链上代币元数据,会将首次提交的代币信息存入自有中心化数据库,后续默认使用缓存数据计算余额。你遇到的数值偏差完全符合小数位配置错误的计算逻辑:若DEX侧缓存的AVRIT代币小数位为6,1×10^25最小单位余额会被计算为
10^25 / 10^6 = 1×10^19,和你反馈的显示结果完全匹配。 - 若你在合约部署后修改过
decimals字段取值,链上更新不会主动同步到已缓存旧数据的第三方平台,也会触发同类显示不一致问题。
修复方案
联系对应DEX的官方运营,提交代币合约地址和正确的元数据证明,申请更新平台侧缓存的代币小数位配置即可。
内容的提问来源于stack exchange,提问作者Amiya Behera
相关产品推荐
相关产品推荐

