Documentation ¶
Overview ¶
This package is only intended to be used for testing core IBC. In order to maintain secure testing, we need to do message passing and execution which requires connecting an IBC application module that fulfills all the callbacks. We cannot connect to ibc-transfer which does not support all channel types so instead we create a mock application module which does nothing. It simply return nil in all cases so no error ever occurs. It is intended to be as minimal and lightweight as possible and should never import simapp.
Index ¶
- Constants
- Variables
- func GetMockAckCanaryCapabilityName(packet channeltypes.Packet) string
- func GetMockRecvCanaryCapabilityName(packet channeltypes.Packet) string
- func GetMockTimeoutCanaryCapabilityName(packet channeltypes.Packet) string
- type AppModule
- func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock)
- func (AppModule) ConsensusVersion() uint64
- func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate
- func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage
- func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate
- func (AppModule) RegisterInvariants(ir sdk.InvariantRegistry)
- func (am AppModule) RegisterServices(module.Configurator)
- type AppModuleBasic
- func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage
- func (AppModuleBasic) GetQueryCmd() *cobra.Command
- func (AppModuleBasic) GetTxCmd() *cobra.Command
- func (AppModuleBasic) Name() string
- func (a AppModuleBasic) RegisterGRPCGatewayRoutes(_ client.Context, _ *runtime.ServeMux)
- func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry)
- func (AppModuleBasic) RegisterLegacyAminoCodec(*codec.LegacyAmino)
- func (AppModuleBasic) ValidateGenesis(codec.JSONCodec, client.TxEncodingConfig, json.RawMessage) error
- type EmptyAcknowledgement
- type IBCApp
- type IBCModule
- func (im IBCModule) OnAcknowledgementPacket(ctx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, ...) error
- func (im IBCModule) OnChanCloseConfirm(ctx sdk.Context, portID, channelID string) error
- func (im IBCModule) OnChanCloseInit(ctx sdk.Context, portID, channelID string) error
- func (im IBCModule) OnChanOpenAck(ctx sdk.Context, portID string, channelID string, counterpartyChannelID string, ...) error
- func (im IBCModule) OnChanOpenConfirm(ctx sdk.Context, portID, channelID string) error
- func (im IBCModule) OnChanOpenInit(ctx sdk.Context, order channeltypes.Order, connectionHops []string, ...) (string, error)
- func (im IBCModule) OnChanOpenTry(ctx sdk.Context, order channeltypes.Order, connectionHops []string, ...) (version string, err error)
- func (im IBCModule) OnRecvPacket(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) exported.Acknowledgement
- func (im IBCModule) OnTimeoutPacket(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) error
- func (im IBCModule) UnmarshalPacketData(bz []byte) (interface{}, error)
- type KeyPath
- type PV
- type PortKeeper
Constants ¶
const ( ModuleName = "mock" MemStoreKey = "memory:mock" PortID = ModuleName Version = "mock-version" )
Variables ¶
var ( MockAcknowledgement = channeltypes.NewResultAcknowledgement([]byte("mock acknowledgement")) MockFailAcknowledgement = channeltypes.NewErrorAcknowledgement(fmt.Errorf("mock failed acknowledgement")) MockPacketData = []byte("mock packet data") MockFailPacketData = []byte("mock failed packet data") MockAsyncPacketData = []byte("mock async packet data") MockRecvCanaryCapabilityName = "mock receive canary capability name" MockAckCanaryCapabilityName = "mock acknowledgement canary capability name" MockTimeoutCanaryCapabilityName = "mock timeout canary capability name" // MockApplicationCallbackError should be returned when an application callback should fail. It is possible to // test that this error was returned using ErrorIs. MockApplicationCallbackError error = &applicationCallbackError{} )
Functions ¶
func GetMockAckCanaryCapabilityName ¶
func GetMockAckCanaryCapabilityName(packet channeltypes.Packet) string
GetMockAckCanaryCapabilityName generates a capability name for OnAcknowledgementPacket functionality.
func GetMockRecvCanaryCapabilityName ¶
func GetMockRecvCanaryCapabilityName(packet channeltypes.Packet) string
GetMockRecvCanaryCapabilityName generates a capability name for testing OnRecvPacket functionality.
func GetMockTimeoutCanaryCapabilityName ¶
func GetMockTimeoutCanaryCapabilityName(packet channeltypes.Packet) string
GetMockTimeoutCanaryCapabilityName generates a capability name for OnTimeoutacket functionality.
Types ¶
type AppModule ¶
type AppModule struct { AppModuleBasic // contains filtered or unexported fields }
AppModule represents the AppModule for the mock module.
func NewAppModule ¶
func NewAppModule(pk PortKeeper) AppModule
NewAppModule returns a mock AppModule instance.
func (AppModule) BeginBlock ¶
func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock)
BeginBlock implements the AppModule interface
func (AppModule) ConsensusVersion ¶
ConsensusVersion implements AppModule/ConsensusVersion.
func (AppModule) EndBlock ¶
func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate
EndBlock implements the AppModule interface
func (AppModule) ExportGenesis ¶
ExportGenesis implements the AppModule interface.
func (AppModule) InitGenesis ¶
func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate
InitGenesis implements the AppModule interface.
func (AppModule) RegisterInvariants ¶
func (AppModule) RegisterInvariants(ir sdk.InvariantRegistry)
RegisterInvariants implements the AppModule interface.
func (AppModule) RegisterServices ¶
func (am AppModule) RegisterServices(module.Configurator)
RegisterServices implements the AppModule interface.
type AppModuleBasic ¶
type AppModuleBasic struct{}
AppModuleBasic is the mock AppModuleBasic.
func (AppModuleBasic) DefaultGenesis ¶
func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage
DefaultGenesis implements AppModuleBasic interface.
func (AppModuleBasic) GetQueryCmd ¶
func (AppModuleBasic) GetQueryCmd() *cobra.Command
GetQueryCmd implements AppModuleBasic interface.
func (AppModuleBasic) GetTxCmd ¶
func (AppModuleBasic) GetTxCmd() *cobra.Command
GetTxCmd implements AppModuleBasic interface.
func (AppModuleBasic) Name ¶
func (AppModuleBasic) Name() string
Name implements AppModuleBasic interface.
func (AppModuleBasic) RegisterGRPCGatewayRoutes ¶
func (a AppModuleBasic) RegisterGRPCGatewayRoutes(_ client.Context, _ *runtime.ServeMux)
RegisterGRPCGatewayRoutes implements AppModuleBasic interface.
func (AppModuleBasic) RegisterInterfaces ¶
func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry)
RegisterInterfaces implements AppModuleBasic interface.
func (AppModuleBasic) RegisterLegacyAminoCodec ¶
func (AppModuleBasic) RegisterLegacyAminoCodec(*codec.LegacyAmino)
RegisterLegacyAminoCodec implements AppModuleBasic interface.
func (AppModuleBasic) ValidateGenesis ¶
func (AppModuleBasic) ValidateGenesis(codec.JSONCodec, client.TxEncodingConfig, json.RawMessage) error
ValidateGenesis implements the AppModuleBasic interface.
type EmptyAcknowledgement ¶
type EmptyAcknowledgement struct {
Response []byte
}
EmptyAcknowledgement implements the exported.Acknowledgement interface and always returns an empty byte string as Response
func NewEmptyAcknowledgement ¶
func NewEmptyAcknowledgement() EmptyAcknowledgement
NewEmptyAcknowledgement returns a new instance of EmptyAcknowledgement
func (EmptyAcknowledgement) Acknowledgement ¶
func (ack EmptyAcknowledgement) Acknowledgement() []byte
Acknowledgement implements the Acknowledgement interface
func (EmptyAcknowledgement) Success ¶
func (ack EmptyAcknowledgement) Success() bool
Success implements the Acknowledgement interface
type IBCApp ¶
type IBCApp struct { PortID string ScopedKeeper capabilitykeeper.ScopedKeeper OnChanOpenInit func( ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, version string, ) (string, error) OnChanOpenTry func( ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, counterpartyVersion string, ) (version string, err error) OnChanOpenAck func( ctx sdk.Context, portID, channelID string, counterpartyChannelID string, counterpartyVersion string, ) error OnChanOpenConfirm func( ctx sdk.Context, portID, channelID string, ) error OnChanCloseInit func( ctx sdk.Context, portID, channelID string, ) error OnChanCloseConfirm func( ctx sdk.Context, portID, channelID string, ) error // OnRecvPacket must return an acknowledgement that implements the Acknowledgement interface. // In the case of an asynchronous acknowledgement, nil should be returned. // If the acknowledgement returned is successful, the state changes on callback are written, // otherwise the application state changes are discarded. In either case the packet is received // and the acknowledgement is written (in synchronous cases). OnRecvPacket func( ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, ) exported.Acknowledgement OnAcknowledgementPacket func( ctx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress, ) error OnTimeoutPacket func( ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, ) error }
IBCApp contains IBC application module callbacks as defined in 05-port.
func NewIBCApp ¶
func NewIBCApp(portID string, scopedKeeper capabilitykeeper.ScopedKeeper) *IBCApp
NewIBCApp returns a IBCApp. An empty PortID indicates the mock app doesn't bind/claim ports.
type IBCModule ¶
type IBCModule struct { IBCApp *IBCApp // base application of an IBC middleware stack // contains filtered or unexported fields }
IBCModule implements the ICS26 callbacks for testing/mock.
func NewIBCModule ¶
NewIBCModule creates a new IBCModule given the underlying mock IBC application and scopedKeeper.
func (IBCModule) OnAcknowledgementPacket ¶
func (im IBCModule) OnAcknowledgementPacket(ctx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress) error
OnAcknowledgementPacket implements the IBCModule interface.
func (IBCModule) OnChanCloseConfirm ¶
OnChanCloseConfirm implements the IBCModule interface.
func (IBCModule) OnChanCloseInit ¶
OnChanCloseInit implements the IBCModule interface.
func (IBCModule) OnChanOpenAck ¶
func (im IBCModule) OnChanOpenAck(ctx sdk.Context, portID string, channelID string, counterpartyChannelID string, counterpartyVersion string) error
OnChanOpenAck implements the IBCModule interface.
func (IBCModule) OnChanOpenConfirm ¶
OnChanOpenConfirm implements the IBCModule interface.
func (IBCModule) OnChanOpenInit ¶
func (im IBCModule) OnChanOpenInit( ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, chanCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, version string, ) (string, error)
OnChanOpenInit implements the IBCModule interface.
func (IBCModule) OnChanOpenTry ¶
func (im IBCModule) OnChanOpenTry( ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, chanCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, counterpartyVersion string, ) (version string, err error)
OnChanOpenTry implements the IBCModule interface.
func (IBCModule) OnRecvPacket ¶
func (im IBCModule) OnRecvPacket(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) exported.Acknowledgement
OnRecvPacket implements the IBCModule interface.
func (IBCModule) OnTimeoutPacket ¶
func (im IBCModule) OnTimeoutPacket(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) error
OnTimeoutPacket implements the IBCModule interface.
func (IBCModule) UnmarshalPacketData ¶ added in v7.3.0
UnmarshalPacketData returns the MockPacketData. This function implements the optional PacketDataUnmarshaler interface required for ADR 008 support.
type KeyPath ¶
type KeyPath struct{}
KeyPath defines a placeholder struct which implements the exported.Path interface
type PV ¶
type PV struct {
PrivKey cryptotypes.PrivKey
}
MockPV implements PrivValidator without any safety or persistence. Only use it for testing.
func (PV) SignProposal ¶
SignProposal implements PrivValidator interface
type PortKeeper ¶
type PortKeeper interface { BindPort(ctx sdk.Context, portID string) *capabilitytypes.Capability IsBound(ctx sdk.Context, portID string) bool }
Expected Interface PortKeeper defines the expected IBC port keeper