Documentation ¶
Index ¶
- Constants
- func RegisterCodec(cdc *codec.Codec)
- func RegisterCodecVesting(cdc *codec.Codec)
- type Account
- type BaseAccount
- type BaseVestingAccount
- type ContinuousVestingAccount
- type DelayedVestingAccount
- type GenesisAccount
- type GenesisAccounts
- type GenesisState
- type Params
- type Period
- type PeriodicVestingAccount
- type Periods
- type VestingAccount
Constants ¶
const ModuleName = "auth"
Variables ¶
This section is empty.
Functions ¶
func RegisterCodec ¶
RegisterCodec registers concrete types on the codec
func RegisterCodecVesting ¶
RegisterCodec registers concrete types on the codec
Types ¶
type Account ¶
type Account interface { }
Account is an interface used to store coins at a given address within state. It presumes a notion of sequence numbers for replay protection, a notion of account numbers for replay protection for previously pruned accounts, and a pubkey for authentication purposes.
Many complex conditions can be used in the concrete struct which implements Account.
type BaseAccount ¶
type BaseAccount struct { Address sdk.AccAddress `json:"address" yaml:"address"` Coins sdk.Coins `json:"coins" yaml:"coins"` PubKey crypto.PubKey `json:"public_key" yaml:"public_key"` AccountNumber uint64 `json:"account_number" yaml:"account_number"` Sequence uint64 `json:"sequence" yaml:"sequence"` }
type BaseVestingAccount ¶
type BaseVestingAccount struct { *BaseAccount OriginalVesting sdk.Coins `json:"original_vesting" yaml:"original_vesting"` // coins in account upon initialization DelegatedFree sdk.Coins `json:"delegated_free" yaml:"delegated_free"` // coins that are vested and delegated DelegatedVesting sdk.Coins `json:"delegated_vesting" yaml:"delegated_vesting"` // coins that vesting and delegated EndTime int64 `json:"end_time" yaml:"end_time"` // when the coins become unlocked }
BaseVestingAccount implements the VestingAccount interface. It contains all the necessary fields needed for any vesting account implementation.
type ContinuousVestingAccount ¶
type ContinuousVestingAccount struct { *BaseVestingAccount StartTime int64 `json:"start_time" yaml:"start_time"` // when the coins start to vest }
ContinuousVestingAccount implements the VestingAccount interface. It continuously vests by unlocking coins linearly with respect to time.
type DelayedVestingAccount ¶
type DelayedVestingAccount struct {
*BaseVestingAccount
}
DelayedVestingAccount implements the VestingAccount interface. It vests all coins after a specific time, but non prior. In other words, it keeps them locked until a specified time.
type GenesisAccount ¶
type GenesisAccount interface { Account }
GenesisAccount defines a genesis account that embeds an Account with validation capabilities.
type GenesisAccounts ¶
type GenesisAccounts []GenesisAccount
GenesisAccounts defines a slice of GenesisAccount objects
type GenesisState ¶
type GenesisState struct { Params Params `json:"params" yaml:"params"` Accounts GenesisAccounts `json:"accounts" yaml:"accounts"` }
GenesisState - all auth state that must be provided at genesis
type Params ¶
type Params struct { MaxMemoCharacters uint64 `json:"max_memo_characters" yaml:"max_memo_characters"` TxSigLimit uint64 `json:"tx_sig_limit" yaml:"tx_sig_limit"` TxSizeCostPerByte uint64 `json:"tx_size_cost_per_byte" yaml:"tx_size_cost_per_byte"` SigVerifyCostED25519 uint64 `json:"sig_verify_cost_ed25519" yaml:"sig_verify_cost_ed25519"` SigVerifyCostSecp256k1 uint64 `json:"sig_verify_cost_secp256k1" yaml:"sig_verify_cost_secp256k1"` }
Params defines the parameters for the auth module.
type Period ¶
type Period struct { Length int64 `json:"length" yaml:"length"` // length of the period, in seconds Amount sdk.Coins `json:"amount" yaml:"amount"` // amount of coins vesting during this period }
Period defines a length of time and amount of coins that will vest
type PeriodicVestingAccount ¶
type PeriodicVestingAccount struct { *BaseVestingAccount StartTime int64 `json:"start_time" yaml:"start_time"` // when the coins start to vest VestingPeriods Periods `json:"vesting_periods" yaml:"vesting_periods"` // the vesting schedule }
PeriodicVestingAccount implements the VestingAccount interface. It periodically vests by unlocking coins during each specified period
func (PeriodicVestingAccount) MarshalJSON ¶ added in v0.11.0
func (pva PeriodicVestingAccount) MarshalJSON() ([]byte, error)
type Periods ¶
type Periods []Period
Periods stores all vesting periods passed as part of a PeriodicVestingAccount
type VestingAccount ¶
type VestingAccount interface { Account }
VestingAccount defines an account type that vests coins via a vesting schedule.