keeper

package
v0.47.11-ics-lsm Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2024 License: Apache-2.0 Imports: 24 Imported by: 3,089

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllInvariants

func AllInvariants(k Keeper) sdk.Invariant

AllInvariants runs all invariants of the X/bank module.

func NewMsgServerImpl added in v0.40.0

func NewMsgServerImpl(keeper Keeper) types.MsgServer

NewMsgServerImpl returns an implementation of the bank MsgServer interface for the provided Keeper.

func NonnegativeBalanceInvariant

func NonnegativeBalanceInvariant(k ViewKeeper) sdk.Invariant

NonnegativeBalanceInvariant checks that all accounts in the application have non-negative balances

func RegisterInvariants

func RegisterInvariants(ir sdk.InvariantRegistry, k Keeper)

RegisterInvariants registers the bank module invariants

func TotalSupply

func TotalSupply(k Keeper) sdk.Invariant

TotalSupply checks that the total supply reflects all the coins held in accounts

func UnmarshalBalanceCompat added in v0.46.2

func UnmarshalBalanceCompat(cdc codec.BinaryCodec, bz []byte, denom string) (sdk.Coin, error)

UnmarshalBalanceCompat unmarshal balance amount from storage, it's backward-compatible with the legacy format.

Types

type BaseKeeper

type BaseKeeper struct {
	BaseSendKeeper
	// contains filtered or unexported fields
}

BaseKeeper manages transfers between accounts. It implements the Keeper interface.

func NewBaseKeeper

func NewBaseKeeper(
	cdc codec.BinaryCodec,
	storeKey storetypes.StoreKey,
	ak types.AccountKeeper,
	blockedAddrs map[string]bool,
	authority string,
) BaseKeeper

NewBaseKeeper returns a new BaseKeeper object with a given codec, dedicated store key, an AccountKeeper implementation, and a parameter Subspace used to store and fetch module parameters. The BaseKeeper also accepts a blocklist map. This blocklist describes the set of addresses that are not allowed to receive funds through direct and explicit actions, for example, by using a MsgSend or by using a SendCoinsFromModuleToAccount execution.

func (BaseKeeper) AllBalances added in v0.40.0

AllBalances implements the Query/AllBalances gRPC method

func (BaseKeeper) Balance added in v0.40.0

Balance implements the Query/Balance gRPC method

func (BaseKeeper) BurnCoins

func (k BaseKeeper) BurnCoins(ctx sdk.Context, moduleName string, amounts sdk.Coins) error

BurnCoins burns coins deletes coins from the balance of the module account. It will panic if the module account does not exist or is unauthorized.

func (BaseKeeper) DelegateCoins

func (k BaseKeeper) DelegateCoins(ctx sdk.Context, delegatorAddr, moduleAccAddr sdk.AccAddress, amt sdk.Coins) error

DelegateCoins performs delegation by deducting amt coins from an account with address addr. For vesting accounts, delegations amounts are tracked for both vesting and vested coins. The coins are then transferred from the delegator address to a ModuleAccount address. If any of the delegation amounts are negative, an error is returned.

func (BaseKeeper) DelegateCoinsFromAccountToModule

func (k BaseKeeper) DelegateCoinsFromAccountToModule(
	ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins,
) error

DelegateCoinsFromAccountToModule delegates coins and transfers them from a delegator account to a module account. It will panic if the module account does not exist or is unauthorized.

func (BaseKeeper) DenomMetadata added in v0.40.1

DenomMetadata implements Query/DenomMetadata gRPC method.

func (BaseKeeper) DenomOwners added in v0.46.0

func (BaseKeeper) DenomsMetadata added in v0.40.1

DenomsMetadata implements Query/DenomsMetadata gRPC method.

func (BaseKeeper) ExportGenesis added in v0.40.0

func (k BaseKeeper) ExportGenesis(ctx sdk.Context) *types.GenesisState

ExportGenesis returns the bank module's genesis state.

func (BaseKeeper) GetAllDenomMetaData added in v0.40.0

func (k BaseKeeper) GetAllDenomMetaData(ctx sdk.Context) []types.Metadata

GetAllDenomMetaData retrieves all denominations metadata

func (BaseKeeper) GetDenomMetaData added in v0.40.0

func (k BaseKeeper) GetDenomMetaData(ctx sdk.Context, denom string) (types.Metadata, bool)

GetDenomMetaData retrieves the denomination metadata. returns the metadata and true if the denom exists, false otherwise.

func (BaseKeeper) GetPaginatedTotalSupply added in v0.43.0

func (k BaseKeeper) GetPaginatedTotalSupply(ctx sdk.Context, pagination *query.PageRequest) (sdk.Coins, *query.PageResponse, error)

GetPaginatedTotalSupply queries for the supply, ignoring 0 coins, with a given pagination

func (BaseKeeper) GetSupply

func (k BaseKeeper) GetSupply(ctx sdk.Context, denom string) sdk.Coin

GetSupply retrieves the Supply from store

func (BaseKeeper) HasDenomMetaData added in v0.46.0

func (k BaseKeeper) HasDenomMetaData(ctx sdk.Context, denom string) bool

HasDenomMetaData checks if the denomination metadata exists in store.

func (BaseKeeper) HasSupply added in v0.45.0

func (k BaseKeeper) HasSupply(ctx sdk.Context, denom string) bool

HasSupply checks if the supply coin exists in store.

func (BaseKeeper) InitGenesis added in v0.40.0

func (k BaseKeeper) InitGenesis(ctx sdk.Context, genState *types.GenesisState)

InitGenesis initializes the bank module's state from a given genesis state.

func (BaseKeeper) IterateAllDenomMetaData added in v0.40.0

func (k BaseKeeper) IterateAllDenomMetaData(ctx sdk.Context, cb func(types.Metadata) bool)

IterateAllDenomMetaData iterates over all the denominations metadata and provides the metadata to a callback. If true is returned from the callback, iteration is halted.

func (BaseKeeper) MintCoins

func (k BaseKeeper) MintCoins(ctx sdk.Context, moduleName string, amounts sdk.Coins) error

MintCoins creates new coins from thin air and adds it to the module account. It will panic if the module account does not exist or is unauthorized.

func (BaseKeeper) Params added in v0.40.0

Params implements the gRPC service handler for querying x/bank parameters.

func (BaseKeeper) SendCoinsFromAccountToModule

func (k BaseKeeper) SendCoinsFromAccountToModule(
	ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins,
) error

SendCoinsFromAccountToModule transfers coins from an AccAddress to a ModuleAccount. It will panic if the module account does not exist.

func (BaseKeeper) SendCoinsFromModuleToAccount

func (k BaseKeeper) SendCoinsFromModuleToAccount(
	ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins,
) error

SendCoinsFromModuleToAccount transfers coins from a ModuleAccount to an AccAddress. It will panic if the module account does not exist. An error is returned if the recipient address is black-listed or if sending the tokens fails.

func (BaseKeeper) SendCoinsFromModuleToModule

func (k BaseKeeper) SendCoinsFromModuleToModule(
	ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins,
) error

SendCoinsFromModuleToModule transfers coins from a ModuleAccount to another. It will panic if either module account does not exist.

func (BaseKeeper) SendEnabled added in v0.47.0

func (BaseKeeper) SetDenomMetaData added in v0.40.0

func (k BaseKeeper) SetDenomMetaData(ctx sdk.Context, denomMetaData types.Metadata)

SetDenomMetaData sets the denominations metadata

func (BaseKeeper) SpendableBalanceByDenom added in v0.47.0

SpendableBalanceByDenom implements a gRPC query handler for retrieving an account's spendable balance for a specific denom.

func (BaseKeeper) SpendableBalances added in v0.45.2

SpendableBalances implements a gRPC query handler for retrieving an account's spendable balances.

func (BaseKeeper) SupplyOf added in v0.40.0

SupplyOf implements the Query/SupplyOf gRPC method

func (BaseKeeper) TotalSupply added in v0.40.0

TotalSupply implements the Query/TotalSupply gRPC method

func (BaseKeeper) UndelegateCoins

func (k BaseKeeper) UndelegateCoins(ctx sdk.Context, moduleAccAddr, delegatorAddr sdk.AccAddress, amt sdk.Coins) error

UndelegateCoins performs undelegation by crediting amt coins to an account with address addr. For vesting accounts, undelegation amounts are tracked for both vesting and vested coins. The coins are then transferred from a ModuleAccount address to the delegator address. If any of the undelegation amounts are negative, an error is returned.

func (BaseKeeper) UndelegateCoinsFromModuleToAccount

func (k BaseKeeper) UndelegateCoinsFromModuleToAccount(
	ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins,
) error

UndelegateCoinsFromModuleToAccount undelegates the unbonding coins and transfers them from a module account to the delegator account. It will panic if the module account does not exist or is unauthorized.

func (BaseKeeper) WithMintCoinsRestriction added in v0.44.7

func (k BaseKeeper) WithMintCoinsRestriction(check MintingRestrictionFn) BaseKeeper

WithMintCoinsRestriction restricts the bank Keeper used within a specific module to have restricted permissions on minting via function passed in parameter. Previous restriction functions can be nested as such:

bankKeeper.WithMintCoinsRestriction(restriction1).WithMintCoinsRestriction(restriction2)

type BaseSendKeeper

type BaseSendKeeper struct {
	BaseViewKeeper
	// contains filtered or unexported fields
}

BaseSendKeeper only allows transfers between accounts without the possibility of creating coins. It implements the SendKeeper interface.

func NewBaseSendKeeper

func NewBaseSendKeeper(
	cdc codec.BinaryCodec,
	storeKey storetypes.StoreKey,
	ak types.AccountKeeper,
	blockedAddrs map[string]bool,
	authority string,
) BaseSendKeeper

func (BaseSendKeeper) BlockedAddr added in v0.40.0

func (k BaseSendKeeper) BlockedAddr(addr sdk.AccAddress) bool

BlockedAddr checks if a given address is restricted from receiving funds.

func (BaseSendKeeper) DeleteSendEnabled added in v0.47.0

func (k BaseSendKeeper) DeleteSendEnabled(ctx sdk.Context, denoms ...string)

DeleteSendEnabled deletes the SendEnabled flags for one or more denoms. If a denom is provided that doesn't have a SendEnabled entry, it is ignored.

func (BaseSendKeeper) GetAllSendEnabledEntries added in v0.47.0

func (k BaseSendKeeper) GetAllSendEnabledEntries(ctx sdk.Context) []types.SendEnabled

GetAllSendEnabledEntries gets all the SendEnabled entries that are stored. Any denominations not returned use the default value (set in Params).

func (BaseSendKeeper) GetAuthority added in v0.47.0

func (k BaseSendKeeper) GetAuthority() string

GetAuthority returns the x/bank module's authority.

func (BaseSendKeeper) GetBlockedAddresses added in v0.47.0

func (k BaseSendKeeper) GetBlockedAddresses() map[string]bool

GetBlockedAddresses returns the full list of addresses restricted from receiving funds.

func (BaseSendKeeper) GetParams added in v0.40.0

func (k BaseSendKeeper) GetParams(ctx sdk.Context) (params types.Params)

GetParams returns the total set of bank parameters.

func (BaseSendKeeper) GetSendEnabledEntry added in v0.47.0

func (k BaseSendKeeper) GetSendEnabledEntry(ctx sdk.Context, denom string) (types.SendEnabled, bool)

GetSendEnabledEntry gets a SendEnabled entry for the given denom. The second return argument is true iff a specific entry exists for the given denom.

func (BaseSendKeeper) InputOutputCoins

func (k BaseSendKeeper) InputOutputCoins(ctx sdk.Context, inputs []types.Input, outputs []types.Output) error

InputOutputCoins performs multi-send functionality. It accepts a series of inputs that correspond to a series of outputs. It returns an error if the inputs and outputs don't line up or if any single transfer of tokens fails.

func (BaseSendKeeper) IsSendEnabledCoin added in v0.43.0

func (k BaseSendKeeper) IsSendEnabledCoin(ctx sdk.Context, coin sdk.Coin) bool

IsSendEnabledCoin returns the current SendEnabled status of the provided coin's denom

func (BaseSendKeeper) IsSendEnabledCoins added in v0.43.0

func (k BaseSendKeeper) IsSendEnabledCoins(ctx sdk.Context, coins ...sdk.Coin) error

IsSendEnabledCoins checks the coins provided and returns an ErrSendDisabled if any of the coins are not configured for sending. Returns nil if sending is enabled for all provided coins.

func (BaseSendKeeper) IsSendEnabledDenom added in v0.47.0

func (k BaseSendKeeper) IsSendEnabledDenom(ctx sdk.Context, denom string) bool

IsSendEnabledDenom returns the current SendEnabled status of the provided denom.

func (BaseSendKeeper) IterateSendEnabledEntries added in v0.47.0

func (k BaseSendKeeper) IterateSendEnabledEntries(ctx sdk.Context, cb func(denom string, sendEnabled bool) bool)

IterateSendEnabledEntries iterates over all the SendEnabled entries.

func (BaseSendKeeper) SendCoins

func (k BaseSendKeeper) SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error

SendCoins transfers amt coins from a sending account to a receiving account. An error is returned upon failure.

func (BaseSendKeeper) SetAllSendEnabled added in v0.47.0

func (k BaseSendKeeper) SetAllSendEnabled(ctx sdk.Context, entries []*types.SendEnabled)

SetAllSendEnabled sets all the provided SendEnabled entries in the bank store.

func (BaseSendKeeper) SetParams added in v0.40.0

func (k BaseSendKeeper) SetParams(ctx sdk.Context, params types.Params) error

SetParams sets the total set of bank parameters.

Note: params.SendEnabled is deprecated but it should be here regardless.

func (BaseSendKeeper) SetSendEnabled

func (k BaseSendKeeper) SetSendEnabled(ctx sdk.Context, denom string, value bool)

SetSendEnabled sets the SendEnabled flag for a denom to the provided value.

type BaseViewKeeper

type BaseViewKeeper struct {
	// contains filtered or unexported fields
}

BaseViewKeeper implements a read only keeper implementation of ViewKeeper.

func NewBaseViewKeeper

func NewBaseViewKeeper(cdc codec.BinaryCodec, storeKey storetypes.StoreKey, ak types.AccountKeeper) BaseViewKeeper

NewBaseViewKeeper returns a new BaseViewKeeper.

func (BaseViewKeeper) GetAccountsBalances added in v0.40.0

func (k BaseViewKeeper) GetAccountsBalances(ctx sdk.Context) []types.Balance

GetAccountsBalances returns all the accounts balances from the store.

func (BaseViewKeeper) GetAllBalances

func (k BaseViewKeeper) GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins

GetAllBalances returns all the account balances for the given account address.

func (BaseViewKeeper) GetBalance

func (k BaseViewKeeper) GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin

GetBalance returns the balance of a specific denomination for a given account by address.

func (BaseViewKeeper) HasBalance

func (k BaseViewKeeper) HasBalance(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coin) bool

HasBalance returns whether or not an account has at least amt balance.

func (BaseViewKeeper) IterateAccountBalances

func (k BaseViewKeeper) IterateAccountBalances(ctx sdk.Context, addr sdk.AccAddress, cb func(sdk.Coin) bool)

IterateAccountBalances iterates over the balances of a single account and provides the token balance to a callback. If true is returned from the callback, iteration is halted.

func (BaseViewKeeper) IterateAllBalances

func (k BaseViewKeeper) IterateAllBalances(ctx sdk.Context, cb func(sdk.AccAddress, sdk.Coin) bool)

IterateAllBalances iterates over all the balances of all accounts and denominations that are provided to a callback. If true is returned from the callback, iteration is halted.

func (BaseViewKeeper) IterateTotalSupply added in v0.43.0

func (k BaseViewKeeper) IterateTotalSupply(ctx sdk.Context, cb func(sdk.Coin) bool)

IterateTotalSupply iterates over the total supply calling the given cb (callback) function with the balance of each coin. The iteration stops if the callback returns true.

func (BaseViewKeeper) LockedCoins

func (k BaseViewKeeper) LockedCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins

LockedCoins returns all the coins that are not spendable (i.e. locked) for an account by address. For standard accounts, the result will always be no coins. For vesting accounts, LockedCoins is delegated to the concrete vesting account type.

func (BaseViewKeeper) Logger

func (k BaseViewKeeper) Logger(ctx sdk.Context) log.Logger

Logger returns a module-specific logger.

func (BaseViewKeeper) SpendableCoin added in v0.47.0

func (k BaseViewKeeper) SpendableCoin(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin

SpendableCoin returns the balance of specific denomination of spendable coins for an account by address. If the account has no spendable coin, a zero Coin is returned.

func (BaseViewKeeper) SpendableCoins

func (k BaseViewKeeper) SpendableCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins

SpendableCoins returns the total balances of spendable coins for an account by address. If the account has no spendable coins, an empty Coins slice is returned.

func (BaseViewKeeper) ValidateBalance

func (k BaseViewKeeper) ValidateBalance(ctx sdk.Context, addr sdk.AccAddress) error

ValidateBalance validates all balances for a given account address returning an error if any balance is invalid. It will check for vesting account types and validate the balances against the original vesting balances.

CONTRACT: ValidateBalance should only be called upon genesis state. In the case of vesting accounts, balances may change in a valid manner that would otherwise yield an error from this call.

type Keeper

type Keeper interface {
	SendKeeper
	WithMintCoinsRestriction(MintingRestrictionFn) BaseKeeper

	InitGenesis(sdk.Context, *types.GenesisState)
	ExportGenesis(sdk.Context) *types.GenesisState

	GetSupply(ctx sdk.Context, denom string) sdk.Coin
	HasSupply(ctx sdk.Context, denom string) bool
	GetPaginatedTotalSupply(ctx sdk.Context, pagination *query.PageRequest) (sdk.Coins, *query.PageResponse, error)
	IterateTotalSupply(ctx sdk.Context, cb func(sdk.Coin) bool)
	GetDenomMetaData(ctx sdk.Context, denom string) (types.Metadata, bool)
	HasDenomMetaData(ctx sdk.Context, denom string) bool
	SetDenomMetaData(ctx sdk.Context, denomMetaData types.Metadata)
	GetAllDenomMetaData(ctx sdk.Context) []types.Metadata
	IterateAllDenomMetaData(ctx sdk.Context, cb func(types.Metadata) bool)

	SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
	SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error
	SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
	DelegateCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
	UndelegateCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
	MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error
	BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error

	DelegateCoins(ctx sdk.Context, delegatorAddr, moduleAccAddr sdk.AccAddress, amt sdk.Coins) error
	UndelegateCoins(ctx sdk.Context, moduleAccAddr, delegatorAddr sdk.AccAddress, amt sdk.Coins) error

	types.QueryServer
}

Keeper defines a module interface that facilitates the transfer of coins between accounts.

type Migrator added in v0.43.0

type Migrator struct {
	// contains filtered or unexported fields
}

Migrator is a struct for handling in-place store migrations.

func NewMigrator added in v0.43.0

func NewMigrator(keeper BaseKeeper, legacySubspace exported.Subspace) Migrator

NewMigrator returns a new Migrator.

func (Migrator) Migrate1to2 added in v0.43.0

func (m Migrator) Migrate1to2(ctx sdk.Context) error

Migrate1to2 migrates from version 1 to 2.

func (Migrator) Migrate2to3 added in v0.46.0

func (m Migrator) Migrate2to3(ctx sdk.Context) error

Migrate2to3 migrates x/bank storage from version 2 to 3.

func (Migrator) Migrate3to4 added in v0.47.0

func (m Migrator) Migrate3to4(ctx sdk.Context) error

Migrate3to4 migrates x/bank storage from version 3 to 4.

func (Migrator) MigrateSendEnabledParams added in v0.47.6

func (m Migrator) MigrateSendEnabledParams(ctx sdk.Context)

MigrateSendEnabledParams get params from x/params and update the bank params. This function is only needed for chains having migrated from <= v0.47 to v0.47.0-5

type MintingRestrictionFn added in v0.44.7

type MintingRestrictionFn func(ctx sdk.Context, coins sdk.Coins) error

type SendKeeper

type SendKeeper interface {
	ViewKeeper

	InputOutputCoins(ctx sdk.Context, inputs []types.Input, outputs []types.Output) error
	SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error

	GetParams(ctx sdk.Context) types.Params
	SetParams(ctx sdk.Context, params types.Params) error

	IsSendEnabledDenom(ctx sdk.Context, denom string) bool
	GetSendEnabledEntry(ctx sdk.Context, denom string) (types.SendEnabled, bool)
	SetSendEnabled(ctx sdk.Context, denom string, value bool)
	SetAllSendEnabled(ctx sdk.Context, sendEnableds []*types.SendEnabled)
	DeleteSendEnabled(ctx sdk.Context, denoms ...string)
	IterateSendEnabledEntries(ctx sdk.Context, cb func(denom string, sendEnabled bool) (stop bool))
	GetAllSendEnabledEntries(ctx sdk.Context) []types.SendEnabled

	IsSendEnabledCoin(ctx sdk.Context, coin sdk.Coin) bool
	IsSendEnabledCoins(ctx sdk.Context, coins ...sdk.Coin) error

	BlockedAddr(addr sdk.AccAddress) bool
	GetBlockedAddresses() map[string]bool

	GetAuthority() string
}

SendKeeper defines a module interface that facilitates the transfer of coins between accounts without the possibility of creating coins.

type ViewKeeper

type ViewKeeper interface {
	ValidateBalance(ctx sdk.Context, addr sdk.AccAddress) error
	HasBalance(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coin) bool

	GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
	GetAccountsBalances(ctx sdk.Context) []types.Balance
	GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin
	LockedCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
	SpendableCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
	SpendableCoin(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin

	IterateAccountBalances(ctx sdk.Context, addr sdk.AccAddress, cb func(coin sdk.Coin) (stop bool))
	IterateAllBalances(ctx sdk.Context, cb func(address sdk.AccAddress, coin sdk.Coin) (stop bool))
}

ViewKeeper defines a module interface that facilitates read only access to account balances.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL