Messages
The issuer can issue new tokens using a MsgIssueTokens
// MsgIssueTokens message type used to issue tokens
type MsgIssueTokens struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
Tokens sdk.Coin `json:"tokens" yaml:"tokens"`
Receiver sdk.AccAddress `json:"receiver" yaml:"receiver"`
}
State Modifications
- New tokens are minted from the issuance module account
- New tokens are transferred from the module account to the receiver
The issuer can redeem (burn) tokens using MsgRedeemTokens
.
// MsgRedeemTokens message type used to redeem (burn) tokens
type MsgRedeemTokens struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
Tokens sdk.Coin `json:"tokens" yaml:"tokens"`
}
State Modifications
- Tokens are transferred from the owner address to the issuer module account
- Tokens are burned
Addresses can be added to the blocked list using MsgBlockAddress
// MsgBlockAddress message type used by the issuer to block an address from holding or transferring tokens
type MsgBlockAddress struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
Denom string `json:"denom" yaml:"denom"`
BlockedAddress sdk.AccAddress `json:"blocked_address" yaml:"blocked_address"`
}
State Modifications
- The address is added to the block list, which prevents the account from holding coins of that denom
- Tokens are sent back to the issuer
The issuer can pause or un-pause the contract using MsgChangePauseStatus
// MsgChangePauseStatus message type used by the issuer to issue new tokens
type MsgChangePauseStatus struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
Denom string `json:"denom" yaml:"denom"`
Status bool `json:"status" yaml:"status"`
}
State Modifications
- The
Paused
value of the correspond asset is updated toStatus
. - Issuance and redemption are paused if
Paused
is false