微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cosmos-sdk 链上硬币的十进制精度

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?