状态

tokenfactory 模块维护以下主要对象的状态:

Denom Authority Metadata

  • 0x02 + | + denom + | + 0x01 ⇒ DenomAuthorityMetadata

Denom Creators

  • 0x03 + | + creator + | denom ⇒ denom

// DenomAuthorityMetadata specifies metadata for addresses that have specific
// capabilities over a token factory denom. Right now there is only one Admin
// permission, but is planned to be extended to the future.
message DenomAuthorityMetadata {
  option (gogoproto.equal) = true;

  // Can be empty for no admin, or a valid injective address
  string admin = 1 [ (gogoproto.moretags) = "yaml:\"admin\"" ];
}

Genesis 状态定义了模块的初始状态,用于设置模块。

// GenesisState defines the tokenfactory module's genesis state.
message GenesisState {
  // params defines the parameters of the module.
  Params params = 1 [ (gogoproto.nullable) = false ];

  repeated GenesisDenom factory_denoms = 2 [
    (gogoproto.moretags) = "yaml:\"factory_denoms\"",
    (gogoproto.nullable) = false
  ];
}

// GenesisDenom defines a tokenfactory denom that is defined within genesis
// state. The structure contains DenomAuthorityMetadata which defines the
// denom's admin.
message GenesisDenom {
  option (gogoproto.equal) = true;

  string denom = 1 [ (gogoproto.moretags) = "yaml:\"denom\"" ];
  DenomAuthorityMetadata authority_metadata = 2 [
    (gogoproto.moretags) = "yaml:\"authority_metadata\"",
    (gogoproto.nullable) = false
  ];
}

Params

Params 是一个模块级配置,用于存储系统参数并定义 tokenfactory 模块的整体功能。该模块可以通过治理进行修改,使用由 gov 模块原生支持的参数更新提案。

以下是 ocr 模块参数存储的结构体:

// Params defines the parameters for the tokenfactory module.
message Params {
  repeated cosmos.base.v1beta1.Coin denom_creation_fee = 1 [
    (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
    (gogoproto.moretags) = "yaml:\"denom_creation_fee\"",
    (gogoproto.nullable) = false
  ];
}

Last updated