Documentation ¶
Index ¶
- Constants
- Variables
- func ParamKeyTable() params.KeyTable
- func RegisterCodec(cdc *codec.Codec)
- type AccountKeeper
- type Asset
- type AssetSupplies
- type AssetSupply
- type Assets
- type GenesisState
- type MsgBlockAddress
- type MsgIssueTokens
- type MsgRedeemTokens
- type MsgSetPauseStatus
- type MsgUnblockAddress
- type Params
- type QueryAssetParams
- type RateLimit
- type SupplyKeeper
Constants ¶
const ( EventTypeIssue = "issue_tokens" EventTypeRedeem = "redeem_tokens" EventTypeBlock = "block_address" EventTypeUnblock = "unblock_address" EventTypePause = "change_pause_status" EventTypeSeize = "seize_coins_from_blocked_address" AttributeValueCategory = ModuleName AttributeKeyDenom = "denom" AttributeKeyIssueAmount = "amount_issued" AttributeKeyRedeemAmount = "amount_redeemed" AttributeKeyBlock = "address_blocked" AttributeKeyUnblock = "address_unblocked" AttributeKeyAddress = "address" AttributeKeyPauseStatus = "pause_status" )
Events emitted by the issuance module
const ( // ModuleName The name that will be used throughout the module ModuleName = "issuance" // StoreKey Top level store key where all module items will be stored StoreKey = ModuleName // RouterKey Top level router key RouterKey = ModuleName // DefaultParamspace default name for parameter store DefaultParamspace = ModuleName // QuerierRoute route used for abci queries QuerierRoute = ModuleName )
const ( QueryGetParams = "parameters" QueryGetAsset = "asset" )
Querier routes for the issuance module
Variables ¶
var ( ErrAssetNotFound = sdkerrors.Register(ModuleName, 2, "no asset with input denom found") ErrNotAuthorized = sdkerrors.Register(ModuleName, 3, "account not authorized") ErrAssetPaused = sdkerrors.Register(ModuleName, 4, "asset is paused") ErrAccountBlocked = sdkerrors.Register(ModuleName, 5, "account is blocked") ErrAccountAlreadyBlocked = sdkerrors.Register(ModuleName, 6, "account is already blocked") ErrAccountAlreadyUnblocked = sdkerrors.Register(ModuleName, 7, "account is already unblocked") ErrIssueToModuleAccount = sdkerrors.Register(ModuleName, 8, "cannot issue tokens to module account") ErrExceedsSupplyLimit = sdkerrors.Register(ModuleName, 9, "asset supply over limit") ErrAssetUnblockable = sdkerrors.Register(ModuleName, 10, "asset does not support block/unblock functionality") ErrAccountNotFound = sdkerrors.Register(ModuleName, 11, "cannot block account that does not exist in state") )
Errors used by the issuance module
var ( AssetSupplyPrefix = []byte{0x01} PreviousBlockTimeKey = []byte{0x02} )
KVStore key prefixes
var ( KeyAssets = []byte("Assets") DefaultAssets = Assets{} ModuleAccountName = ModuleName )
Parameter keys and default values
var ModuleCdc *codec.Codec
ModuleCdc generic sealed codec to be used throughout module
Functions ¶
func ParamKeyTable ¶
ParamKeyTable Key declaration for parameters
func RegisterCodec ¶
RegisterCodec registers the necessary types for issuance module
Types ¶
type AccountKeeper ¶
type AccountKeeper interface {
GetAccount(ctx sdk.Context, addr sdk.AccAddress) authexported.Account
}
AccountKeeper expected interface for the account keeper (noalias)
type Asset ¶
type Asset struct { Owner sdk.AccAddress `json:"owner" yaml:"owner"` Denom string `json:"denom" yaml:"denom"` BlockedAddresses []sdk.AccAddress `json:"blocked_addresses" yaml:"blocked_addresses"` Paused bool `json:"paused" yaml:"paused"` Blockable bool `json:"blockable" yaml:"blockable"` RateLimit RateLimit `json:"rate_limit" yaml:"rate_limit"` }
Asset type for assets in the issuance module
type AssetSupply ¶
type AssetSupply struct { CurrentSupply sdk.Coin `json:"current_supply" yaml:"current_supply"` TimeElapsed time.Duration `json:"time_elapsed" yaml:"time_elapsed"` }
AssetSupply contains information about an asset's rate-limited supply (the total supply of the asset is tracked in the top-level supply module)
func NewAssetSupply ¶
func NewAssetSupply(currentSupply sdk.Coin, timeElapsed time.Duration) AssetSupply
NewAssetSupply initializes a new AssetSupply
func (AssetSupply) GetDenom ¶
func (a AssetSupply) GetDenom() string
GetDenom getter method for the denom of the asset supply
func (AssetSupply) Validate ¶
func (a AssetSupply) Validate() error
Validate performs a basic validation of an asset supply fields.
type GenesisState ¶
type GenesisState struct { Params Params `json:"params" yaml:"params"` Supplies AssetSupplies `json:"supplies" yaml:"supplies"` }
GenesisState is the state that must be provided at genesis for the issuance module
func DefaultGenesisState ¶
func DefaultGenesisState() GenesisState
DefaultGenesisState returns the default GenesisState for the issuance module
func NewGenesisState ¶
func NewGenesisState(params Params, supplies AssetSupplies) GenesisState
NewGenesisState returns a new GenesisState
func (GenesisState) Equal ¶
func (gs GenesisState) Equal(gs2 GenesisState) bool
Equal checks whether two GenesisState structs are equivalent
func (GenesisState) IsEmpty ¶
func (gs GenesisState) IsEmpty() bool
IsEmpty returns true if a GenesisState is empty
func (GenesisState) Validate ¶
func (gs GenesisState) Validate() error
Validate performs basic validation of genesis data returning an error for any failed validation criteria.
type MsgBlockAddress ¶
type MsgBlockAddress struct { Sender sdk.AccAddress `json:"sender" yaml:"sender"` Denom string `json:"denom" yaml:"denom"` Address sdk.AccAddress `json:"blocked_address" yaml:"blocked_address"` }
MsgBlockAddress message type used by the issuer to block an address from holding or transferring tokens
func NewMsgBlockAddress ¶
func NewMsgBlockAddress(sender sdk.AccAddress, denom string, addr sdk.AccAddress) MsgBlockAddress
NewMsgBlockAddress returns a new MsgBlockAddress
func (MsgBlockAddress) GetSignBytes ¶
func (msg MsgBlockAddress) GetSignBytes() []byte
GetSignBytes gets the canonical byte representation of the Msg
func (MsgBlockAddress) GetSigners ¶
func (msg MsgBlockAddress) GetSigners() []sdk.AccAddress
GetSigners returns the addresses of signers that must sign
func (MsgBlockAddress) Route ¶
func (msg MsgBlockAddress) Route() string
Route return the message type used for routing the message.
func (MsgBlockAddress) String ¶
func (msg MsgBlockAddress) String() string
String implements fmt.Stringer
func (MsgBlockAddress) Type ¶
func (msg MsgBlockAddress) Type() string
Type returns a human-readable string for the message, intended for utilization within tags.
func (MsgBlockAddress) ValidateBasic ¶
func (msg MsgBlockAddress) ValidateBasic() error
ValidateBasic does a simple validation check that doesn't require access to state.
type MsgIssueTokens ¶
type MsgIssueTokens struct { Sender sdk.AccAddress `json:"sender" yaml:"sender"` Tokens sdk.Coin `json:"tokens" yaml:"tokens"` Receiver sdk.AccAddress `json:"receiver" yaml:"receiver"` }
MsgIssueTokens message type used by the issuer to issue new tokens
func NewMsgIssueTokens ¶
func NewMsgIssueTokens(sender sdk.AccAddress, tokens sdk.Coin, receiver sdk.AccAddress) MsgIssueTokens
NewMsgIssueTokens returns a new MsgIssueTokens
func (MsgIssueTokens) GetSignBytes ¶
func (msg MsgIssueTokens) GetSignBytes() []byte
GetSignBytes gets the canonical byte representation of the Msg
func (MsgIssueTokens) GetSigners ¶
func (msg MsgIssueTokens) GetSigners() []sdk.AccAddress
GetSigners returns the addresses of signers that must sign
func (MsgIssueTokens) Route ¶
func (msg MsgIssueTokens) Route() string
Route return the message type used for routing the message.
func (MsgIssueTokens) String ¶
func (msg MsgIssueTokens) String() string
String implements fmt.Stringer
func (MsgIssueTokens) Type ¶
func (msg MsgIssueTokens) Type() string
Type returns a human-readable string for the message, intended for utilization within tags.
func (MsgIssueTokens) ValidateBasic ¶
func (msg MsgIssueTokens) ValidateBasic() error
ValidateBasic does a simple validation check that doesn't require access to state.
type MsgRedeemTokens ¶
type MsgRedeemTokens struct { Sender sdk.AccAddress `json:"sender" yaml:"sender"` Tokens sdk.Coin `json:"tokens" yaml:"tokens"` }
MsgRedeemTokens message type used by the issuer to redeem (burn) tokens
func NewMsgRedeemTokens ¶
func NewMsgRedeemTokens(sender sdk.AccAddress, tokens sdk.Coin) MsgRedeemTokens
NewMsgRedeemTokens returns a new MsgRedeemTokens
func (MsgRedeemTokens) GetSignBytes ¶
func (msg MsgRedeemTokens) GetSignBytes() []byte
GetSignBytes gets the canonical byte representation of the Msg
func (MsgRedeemTokens) GetSigners ¶
func (msg MsgRedeemTokens) GetSigners() []sdk.AccAddress
GetSigners returns the addresses of signers that must sign
func (MsgRedeemTokens) Route ¶
func (msg MsgRedeemTokens) Route() string
Route return the message type used for routing the message.
func (MsgRedeemTokens) String ¶
func (msg MsgRedeemTokens) String() string
String implements fmt.Stringer
func (MsgRedeemTokens) Type ¶
func (msg MsgRedeemTokens) Type() string
Type returns a human-readable string for the message, intended for utilization within tags.
func (MsgRedeemTokens) ValidateBasic ¶
func (msg MsgRedeemTokens) ValidateBasic() error
ValidateBasic does a simple validation check that doesn't require access to state.
type MsgSetPauseStatus ¶
type MsgSetPauseStatus struct { Sender sdk.AccAddress `json:"sender" yaml:"sender"` Denom string `json:"denom" yaml:"denom"` Status bool `json:"status" yaml:"status"` }
MsgSetPauseStatus message type used by the issuer to issue new tokens
func NewMsgSetPauseStatus ¶
func NewMsgSetPauseStatus(sender sdk.AccAddress, denom string, status bool) MsgSetPauseStatus
NewMsgSetPauseStatus returns a new MsgSetPauseStatus
func (MsgSetPauseStatus) GetSignBytes ¶
func (msg MsgSetPauseStatus) GetSignBytes() []byte
GetSignBytes gets the canonical byte representation of the Msg
func (MsgSetPauseStatus) GetSigners ¶
func (msg MsgSetPauseStatus) GetSigners() []sdk.AccAddress
GetSigners returns the addresses of signers that must sign
func (MsgSetPauseStatus) Route ¶
func (msg MsgSetPauseStatus) Route() string
Route return the message type used for routing the message.
func (MsgSetPauseStatus) String ¶
func (msg MsgSetPauseStatus) String() string
String implements fmt.Stringer
func (MsgSetPauseStatus) Type ¶
func (msg MsgSetPauseStatus) Type() string
Type returns a human-readable string for the message, intended for utilization within tags.
func (MsgSetPauseStatus) ValidateBasic ¶
func (msg MsgSetPauseStatus) ValidateBasic() error
ValidateBasic does a simple validation check that doesn't require access to state.
type MsgUnblockAddress ¶
type MsgUnblockAddress struct { Sender sdk.AccAddress `json:"sender" yaml:"sender"` Denom string `json:"denom" yaml:"denom"` Address sdk.AccAddress `json:"address" yaml:"address"` }
MsgUnblockAddress message type used by the issuer to unblock an address from holding or transferring tokens
func NewMsgUnblockAddress ¶
func NewMsgUnblockAddress(sender sdk.AccAddress, denom string, addr sdk.AccAddress) MsgUnblockAddress
NewMsgUnblockAddress returns a new MsgUnblockAddress
func (MsgUnblockAddress) GetSignBytes ¶
func (msg MsgUnblockAddress) GetSignBytes() []byte
GetSignBytes gets the canonical byte representation of the Msg
func (MsgUnblockAddress) GetSigners ¶
func (msg MsgUnblockAddress) GetSigners() []sdk.AccAddress
GetSigners returns the addresses of signers that must sign
func (MsgUnblockAddress) Route ¶
func (msg MsgUnblockAddress) Route() string
Route return the message type used for routing the message.
func (MsgUnblockAddress) String ¶
func (msg MsgUnblockAddress) String() string
String implements fmt.Stringer
func (MsgUnblockAddress) Type ¶
func (msg MsgUnblockAddress) Type() string
Type returns a human-readable string for the message, intended for utilization within tags.
func (MsgUnblockAddress) ValidateBasic ¶
func (msg MsgUnblockAddress) ValidateBasic() error
ValidateBasic does a simple validation check that doesn't require access to state.
type Params ¶
type Params struct {
Assets Assets `json:"assets" yaml:"assets"`
}
Params governance parameters for the issuance module
func DefaultParams ¶
func DefaultParams() Params
DefaultParams returns default params for issuance module
func (*Params) ParamSetPairs ¶
func (p *Params) ParamSetPairs() params.ParamSetPairs
ParamSetPairs implements the ParamSet interface and returns all the key/value pairs
type QueryAssetParams ¶
type QueryAssetParams struct {
Denom string `json:"denom" yaml:"denom"`
}
QueryAssetParams params for querying an asset by denom
type RateLimit ¶
type RateLimit struct { Active bool `json:"active" yaml:"active"` Limit sdk.Int `json:"limit" yaml:"limit"` TimePeriod time.Duration `json:"time_period" yaml:"time_period"` }
RateLimit parameters for rate-limiting the supply of an issued asset
func NewRateLimit ¶
NewRateLimit initializes a new RateLimit
type SupplyKeeper ¶
type SupplyKeeper interface { GetModuleAccount(ctx sdk.Context, name string) supplyexported.ModuleAccountI SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error BurnCoins(ctx sdk.Context, name string, amt sdk.Coins) error MintCoins(ctx sdk.Context, name string, amt sdk.Coins) error }
SupplyKeeper defines the expected supply keeper for module accounts (noalias)