1

我正在构建一个 cosmos-sdk 链,并且想知道官方对 Cosmos 链上硬币的十进制精度的支持是什么,无论是通过钉子铸造还是通过创世作为主要的质押/恶魔代币。

我们希望支持 10**18,因为它与以太坊匹配,只是想弄清楚这一点。谢谢

4

2 回答 2

0

银行模块和后续的硬币类型包含元数据功能,其中包括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",
}
于 2021-01-20T17:40:36.560 回答
0

Coin.Amount在整个 SDK中使用的int. 有一个DecCoin,但是好像用的不多。

实际上,硬币是整数值,上限似乎是10**76添加到 genesis 时appd add-genesis-account。然而,在链条开始后,平衡起来比10**76工作正常。

于 2021-01-18T05:36:47.657 回答