如何解决cosmos-sdk 链上硬币的十进制精度
我正在构建一个 cosmos-sdk 链,并想知道官方对 cosmos 链上代币十进制精度的支持是什么,要么通过挂钩铸造,要么通过创世作为主要抵押/恶魔代币播种。
我们希望支持 10**18,因为它与以太坊相匹配,并且只是想弄清楚这一点。 谢谢
解决方法
Coin.Amount
在整个 SDK is an int
中使用。有一个 DecCoin
,但似乎用得不多。
实际上,硬币是整数值,当用 10**76
添加到 genesis 时,上限似乎是 appd add-genesis-account
。但是,在链启动后,平衡超过 10**76
可以正常工作。
银行模块和后续硬币类型包含元数据功能,其中包括 ADR-024-coin-metadata 中概述的小数。
相关类型如下:
message DenomUnit {
string denom = 1;
uint32 exponent = 2;
repeated string aliases = 3;
}
message Metadata {
string description = 1;
repeated DenomUnit denom_units = 2;
string base = 3;
string display = 4;
}
此处给出了具有 6 位小数的 $ATOM 示例:
{
"description": "The native staking token of the Cosmos Hub.","denom_units": [
{
"denom": "uatom","exponent": 0,"aliases": [
"microatom"
],},{
"denom": "matom","exponent": 3,"aliases": [
"milliatom"
]
},{
"denom": "atom","exponent": 6,}
],"base": "uatom","display": "atom",}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。