Documentation ¶
Index ¶
- Constants
- Variables
- func BlockedAddresses(ac coreaddress.Codec) (map[string]bool, error)
- func GetMaccPerms() map[string][]string
- func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error)
- type ContractKeeper
- func (k ContractKeeper) GetStateEntryCounter(ctx sdk.Context) uint8
- func (k ContractKeeper) IBCOnAcknowledgementPacketCallback(ctx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, ...) error
- func (k ContractKeeper) IBCOnTimeoutPacketCallback(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, ...) error
- func (k ContractKeeper) IBCReceivePacketCallback(ctx sdk.Context, packet ibcexported.PacketI, ack ibcexported.Acknowledgement, ...) error
- func (k ContractKeeper) IBCSendPacketCallback(ctx sdk.Context, sourcePort string, sourceChannel string, ...) error
- func (k ContractKeeper) IncrementStateEntryCounter(ctx sdk.Context)
- func (k ContractKeeper) ProcessMockCallback(ctx sdk.Context, callbackType callbacktypes.CallbackType, ...) (err error)
- func (k ContractKeeper) SetStateEntryCounter(ctx sdk.Context, count uint8)
- type EncodingConfig
- type GenesisState
- type HandlerOptions
- type SimApp
- func (app *SimApp) AppCodec() codec.Codec
- func (app *SimApp) BeginBlocker(ctx sdk.Context) (sdk.BeginBlock, error)
- func (app *SimApp) Configurator() module.Configurator
- func (app *SimApp) DefaultGenesis() map[string]json.RawMessage
- func (app *SimApp) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error)
- func (app *SimApp) ExportAppStateAndValidators(forZeroHeight bool, jailAllowedAddrs, modulesToExport []string) (servertypes.ExportedApp, error)
- func (app *SimApp) GetBaseApp() *baseapp.BaseApp
- func (app *SimApp) GetIBCKeeper() *ibckeeper.Keeper
- func (app *SimApp) GetKey(storeKey string) *storetypes.KVStoreKey
- func (app *SimApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey
- func (app *SimApp) GetStoreKeys() []storetypes.StoreKey
- func (app *SimApp) GetSubspace(moduleName string) paramstypes.Subspace
- func (app *SimApp) GetTxConfig() client.TxConfig
- func (app *SimApp) InitChainer(ctx sdk.Context, req *abci.InitChainRequest) (*abci.InitChainResponse, error)
- func (app *SimApp) InterfaceRegistry() types.InterfaceRegistry
- func (app *SimApp) LegacyAmino() *codec.LegacyAmino
- func (app *SimApp) LoadHeight(height int64) error
- func (app *SimApp) Name() string
- func (app *SimApp) PreBlocker(ctx sdk.Context, _ *abci.FinalizeBlockRequest) error
- func (app *SimApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig)
- func (app *SimApp) RegisterNodeService(clientCtx client.Context, cfg config.Config)
- func (app *SimApp) RegisterTendermintService(clientCtx client.Context)
- func (app *SimApp) RegisterTxService(clientCtx client.Context)
- func (app *SimApp) SimulationManager() *module.SimulationManager
- func (app *SimApp) TxConfig() client.TxConfig
- func (*SimApp) ValidatorKeyProvider() runtime.KeyGenF
- type SimGenesisAccount
Constants ¶
const ( // OogPanicContract is a contract address that will panic out of gas OogPanicContract = "panics out of gas" // OogErrorContract is a contract address that will error out of gas OogErrorContract = "errors out of gas" // PanicContract is a contract address that will panic PanicContract = "panics" // ErrorContract is a contract address that will return an error ErrorContract = "errors" // SuccessContract is a contract address that will return nil SuccessContract = "success" )
const (
MockFeePort string = ibcmock.ModuleName + ibcfeetypes.ModuleName
)
IBC application testing ports
Variables ¶
var ( // DefaultNodeHome default home directories for the application daemon DefaultNodeHome string )
var StatefulCounterKey = "stateful-callback-counter"
Functions ¶
func BlockedAddresses ¶
func BlockedAddresses(ac coreaddress.Codec) (map[string]bool, error)
BlockedAddresses returns all the app's blocked account addresses.
func GetMaccPerms ¶
GetMaccPerms returns a copy of the module account permissions
NOTE: This is solely to be used for testing purposes.
func NewAnteHandler ¶
func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error)
NewAnteHandler returns an AnteHandler that checks and increments sequence numbers, checks signatures & account numbers, and deducts fees from the first signer.
Types ¶
type ContractKeeper ¶
type ContractKeeper struct { Counters map[callbacktypes.CallbackType]int IBCSendPacketCallbackFn func( cachedCtx sdk.Context, sourcePort string, sourceChannel string, timeoutHeight clienttypes.Height, timeoutTimestamp uint64, packetData []byte, contractAddress, packetSenderAddress string, version string, ) error IBCOnAcknowledgementPacketCallbackFn func( cachedCtx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress, contractAddress, packetSenderAddress string, version string, ) error IBCOnTimeoutPacketCallbackFn func( cachedCtx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, contractAddress, packetSenderAddress string, version string, ) error IBCReceivePacketCallbackFn func( cachedCtx sdk.Context, packet ibcexported.PacketI, ack ibcexported.Acknowledgement, contractAddress string, version string, ) error // contains filtered or unexported fields }
This is a mock contract keeper used for testing. It is not wired up to any modules. It implements the interface functions expected by the ibccallbacks middleware so that it can be tested with simapp. The keeper is responsible for tracking two metrics:
- number of callbacks called per callback type
- stateful entry attempts
The counter for callbacks allows us to ensure the correct callbacks were routed to and the stateful entries allows us to track state reversals or reverted state upon contract execution failure or out of gas errors.
func NewContractKeeper ¶
func NewContractKeeper(key storetypes.StoreKey) *ContractKeeper
NewContractKeeper creates a new mock ContractKeeper.
func (ContractKeeper) GetStateEntryCounter ¶
func (k ContractKeeper) GetStateEntryCounter(ctx sdk.Context) uint8
GetStateEntryCounter returns the state entry counter stored in state.
func (ContractKeeper) IBCOnAcknowledgementPacketCallback ¶
func (k ContractKeeper) IBCOnAcknowledgementPacketCallback( ctx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress, contractAddress, packetSenderAddress, version string, ) error
IBCOnAcknowledgementPacketCallback increments the stateful entry counter and the acknowledgement_packet callback counter. This function:
- returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
- Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
- returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
- Panics and consumes half the remaining gas if the contract address is PanicContract
- returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (ContractKeeper) IBCOnTimeoutPacketCallback ¶
func (k ContractKeeper) IBCOnTimeoutPacketCallback( ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, contractAddress, packetSenderAddress, version string, ) error
IBCOnTimeoutPacketCallback increments the stateful entry counter and the timeout_packet callback counter. This function:
- returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
- Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
- returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
- Panics and consumes half the remaining gas if the contract address is PanicContract
- returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (ContractKeeper) IBCReceivePacketCallback ¶
func (k ContractKeeper) IBCReceivePacketCallback( ctx sdk.Context, packet ibcexported.PacketI, ack ibcexported.Acknowledgement, contractAddress, version string, ) error
IBCReceivePacketCallback increments the stateful entry counter and the receive_packet callback counter. This function:
- returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
- Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
- returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
- Panics and consumes half the remaining gas if the contract address is PanicContract
- returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (ContractKeeper) IBCSendPacketCallback ¶
func (k ContractKeeper) IBCSendPacketCallback( ctx sdk.Context, sourcePort string, sourceChannel string, timeoutHeight clienttypes.Height, timeoutTimestamp uint64, packetData []byte, contractAddress, packetSenderAddress, version string, ) error
IBCSendPacketCallback increments the stateful entry counter and the send_packet callback counter. This function:
- returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
- Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
- returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
- Panics and consumes half the remaining gas if the contract address is PanicContract
- returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (ContractKeeper) IncrementStateEntryCounter ¶
func (k ContractKeeper) IncrementStateEntryCounter(ctx sdk.Context)
IncrementStateEntryCounter increments the stateful callback counter in state.
func (ContractKeeper) ProcessMockCallback ¶
func (k ContractKeeper) ProcessMockCallback( ctx sdk.Context, callbackType callbacktypes.CallbackType, contractAddress string, ) (err error)
ProcessMockCallback processes a mock callback. It increments the stateful entry counter and the callback counter. This function:
- returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
- Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
- returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
- Panics and consumes half the remaining gas if the contract address is PanicContract
- returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (ContractKeeper) SetStateEntryCounter ¶
func (k ContractKeeper) SetStateEntryCounter(ctx sdk.Context, count uint8)
SetStateEntryCounter sets state entry counter. The number of stateful entries is tracked as a uint8. This function is used to test state reversals.
type EncodingConfig ¶
type EncodingConfig struct { InterfaceRegistry types.InterfaceRegistry Codec codec.Codec TxConfig client.TxConfig Amino *codec.LegacyAmino }
EncodingConfig specifies the concrete encoding types to use for a given app. This is provided for compatibility between protobuf and amino implementations.
type GenesisState ¶
type GenesisState map[string]json.RawMessage
GenesisState of the blockchain is represented here as a map of raw json messages key'd by an identifier string. The identifier is used to determine which module genesis information belongs to so it may be appropriately routed during init chain. Within this application default genesis information is retrieved from the ModuleBasicManager which populates json from each BasicModule object provided to it during init.
type HandlerOptions ¶
type HandlerOptions struct { ante.HandlerOptions IBCKeeper *keeper.Keeper }
HandlerOptions are the options required for constructing a default SDK AnteHandler.
type SimApp ¶
type SimApp struct { *baseapp.BaseApp // keepers AccountsKeeper accounts.Keeper AuthKeeper authkeeper.AccountKeeper BankKeeper bankkeeper.BaseKeeper FeeGrantKeeper feegrantkeeper.Keeper StakingKeeper *stakingkeeper.Keeper SlashingKeeper slashingkeeper.Keeper MintKeeper *mintkeeper.Keeper DistrKeeper distrkeeper.Keeper PoolKeeper poolkeeper.Keeper GovKeeper govkeeper.Keeper UpgradeKeeper *upgradekeeper.Keeper ParamsKeeper paramskeeper.Keeper IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly IBCFeeKeeper ibcfeekeeper.Keeper ICAControllerKeeper icacontrollerkeeper.Keeper ICAHostKeeper icahostkeeper.Keeper TransferKeeper ibctransferkeeper.Keeper ConsensusParamsKeeper consensusparamkeeper.Keeper // mock contract keeper used for testing MockContractKeeper *ContractKeeper // make IBC modules public for test purposes // these modules are never directly routed to by the IBC Router ICAAuthModule ibcmock.IBCModule FeeMockModule ibcmock.IBCModule // the module manager ModuleManager *module.Manager // contains filtered or unexported fields }
SimApp extends an ABCI application, but with most of its parameters exported. They are exported for convenience in creating helper functions.
func NewSimApp ¶
func NewSimApp( logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, appOpts servertypes.AppOptions, baseAppOptions ...func(*baseapp.BaseApp), ) *SimApp
NewSimApp returns a reference to an initialized SimApp.
func (*SimApp) AppCodec ¶
AppCodec returns SimApp's app codec.
NOTE: This is solely to be used for testing purposes as it may be desirable for modules to register their own custom testing types.
func (*SimApp) BeginBlocker ¶
BeginBlocker application updates every begin block
func (*SimApp) Configurator ¶
func (app *SimApp) Configurator() module.Configurator
Configurator returns the configurator for the app
func (*SimApp) DefaultGenesis ¶
func (app *SimApp) DefaultGenesis() map[string]json.RawMessage
DefaultGenesis returns a default genesis from the registered AppModuleBasic's.
func (*SimApp) EndBlocker ¶
EndBlocker application updates every end block
func (*SimApp) ExportAppStateAndValidators ¶
func (app *SimApp) ExportAppStateAndValidators(forZeroHeight bool, jailAllowedAddrs, modulesToExport []string) (servertypes.ExportedApp, error)
ExportAppStateAndValidators exports the state of the application for a genesis file.
func (*SimApp) GetBaseApp ¶
GetBaseApp implements the TestingApp interface.
func (*SimApp) GetIBCKeeper ¶
GetIBCKeeper implements the TestingApp interface.
func (*SimApp) GetKey ¶
func (app *SimApp) GetKey(storeKey string) *storetypes.KVStoreKey
GetKey returns the KVStoreKey for the provided store key.
NOTE: This is solely to be used for testing purposes.
func (*SimApp) GetMemKey ¶
func (app *SimApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey
GetMemKey returns the MemStoreKey for the provided mem key.
NOTE: This is solely used for testing purposes.
func (*SimApp) GetStoreKeys ¶
func (app *SimApp) GetStoreKeys() []storetypes.StoreKey
GetStoreKeys returns all the stored store keys.
func (*SimApp) GetSubspace ¶
func (app *SimApp) GetSubspace(moduleName string) paramstypes.Subspace
GetSubspace returns a param subspace for a given module name.
NOTE: This is solely to be used for testing purposes.
func (*SimApp) GetTxConfig ¶
GetTxConfig implements the TestingApp interface.
func (*SimApp) InitChainer ¶
func (app *SimApp) InitChainer(ctx sdk.Context, req *abci.InitChainRequest) (*abci.InitChainResponse, error)
InitChainer application update at chain initialization
func (*SimApp) InterfaceRegistry ¶
func (app *SimApp) InterfaceRegistry() types.InterfaceRegistry
InterfaceRegistry returns SimApp's InterfaceRegistry
func (*SimApp) LegacyAmino ¶
func (app *SimApp) LegacyAmino() *codec.LegacyAmino
LegacyAmino returns SimApp's amino codec.
NOTE: This is solely to be used for testing purposes as it may be desirable for modules to register their own custom testing types.
func (*SimApp) LoadHeight ¶
LoadHeight loads a particular height
func (*SimApp) PreBlocker ¶
PreBlocker application updates every pre block
func (*SimApp) RegisterAPIRoutes ¶
RegisterAPIRoutes registers all application module routes with the provided API server.
func (*SimApp) RegisterNodeService ¶
func (*SimApp) RegisterTendermintService ¶
RegisterTendermintService implements the Application.RegisterTendermintService method.
func (*SimApp) RegisterTxService ¶
RegisterTxService implements the Application.RegisterTxService method.
func (*SimApp) SimulationManager ¶
func (app *SimApp) SimulationManager() *module.SimulationManager
SimulationManager implements the SimulationApp interface
func (*SimApp) ValidatorKeyProvider ¶
ValidatorKeyProvider returns a function that generates a validator key Supported key types are those supported by Comet: ed25519, secp256k1, bls12-381
type SimGenesisAccount ¶
type SimGenesisAccount struct { *authtypes.BaseAccount // vesting account fields OriginalVesting sdk.Coins `json:"original_vesting" yaml:"original_vesting"` // total vesting coins upon initialization DelegatedFree sdk.Coins `json:"delegated_free" yaml:"delegated_free"` // delegated vested coins at time of delegation DelegatedVesting sdk.Coins `json:"delegated_vesting" yaml:"delegated_vesting"` // delegated vesting coins at time of delegation StartTime int64 `json:"start_time" yaml:"start_time"` // vesting start time (UNIX Epoch time) EndTime int64 `json:"end_time" yaml:"end_time"` // vesting end time (UNIX Epoch time) // module account fields ModuleName string `json:"module_name" yaml:"module_name"` // name of the module account ModulePermissions []string `json:"module_permissions" yaml:"module_permissions"` // permissions of module account }
SimGenesisAccount defines a type that implements the GenesisAccount interface to be used for simulation accounts in the genesis state.
func (SimGenesisAccount) Validate ¶
func (sga SimGenesisAccount) Validate() error
Validate checks for errors on the vesting and module account parameters