keeper

package
v0.46.14 Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2023 License: Apache-2.0 Imports: 22 Imported by: 3,048

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 NewQuerier

func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier

NewQuerier returns a new sdk.Keeper instance.

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,
	paramSpace paramtypes.Subspace,
	blockedAddrs map[string]bool,
) 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) SetDenomMetaData added in v0.40.0

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

SetDenomMetaData sets the denominations metadata

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, paramSpace paramtypes.Subspace, blockedAddrs map[string]bool,
) 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) 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) 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 lineup 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 provide and returns an ErrSendDisabled if any of the coins are not configured for sending. Returns nil if sending is enabled for all provided coin

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) SetParams added in v0.40.0

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

SetParams sets the total set of bank parameters.

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) 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)
	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) 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) Migrate3_V046_4_To_V046_5 added in v0.46.6

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

Migrate3_V046_4_To_V046_5 fixes migrations from version 2 to for chains based on SDK 0.46.0 - v0.46.4 ONLY. See v046.Migrate_V046_4_To_V046_5 for more details.

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)

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

	BlockedAddr(addr sdk.AccAddress) bool
}

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

	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