State

The tokenfactory module keeps state of the following primary objects:

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 state defines the initial state of the module to be used to setup the module.

// 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 is a module-wide configuration that stores system parameters and defines overall functioning of the tokenfactory module. This module is modifiable by governance using params update proposal natively supported by gov module.

Struct for the ocr module params store.

// 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