Documentation ¶
Index ¶
- Constants
- Variables
- func CreateSortedSignerArray(altPrivVal, suitePrivVal tmtypes.PrivValidator, ...) []tmtypes.PrivValidator
- func GetChainID(index int) string
- func MakeBlockID(hash []byte, partSetSize uint32, partSetHash []byte) tmtypes.BlockID
- type Coordinator
- func (coord *Coordinator) AcknowledgePacket(source, counterparty *TestChain, counterpartyClient string, ...) error
- func (coord *Coordinator) ChanCloseConfirm(source, counterparty *TestChain, ...) error
- func (coord *Coordinator) ChanCloseInit(source, counterparty *TestChain, channel ibctesting.TestChannel) error
- func (coord *Coordinator) ChanOpenAck(source, counterparty *TestChain, ...) error
- func (coord *Coordinator) ChanOpenConfirm(source, counterparty *TestChain, ...) error
- func (coord *Coordinator) ChanOpenInit(source, counterparty *TestChain, ...) (ibctesting.TestChannel, ibctesting.TestChannel, error)
- func (coord *Coordinator) ChanOpenInitOnBothChains(source, counterparty *TestChain, ...) (ibctesting.TestChannel, ibctesting.TestChannel, error)
- func (coord *Coordinator) ChanOpenTry(source, counterparty *TestChain, ...) error
- func (coord *Coordinator) CloseChannel(source, counterparty *TestChain, ...)
- func (coord *Coordinator) CommitBlock(chains ...*TestChain)
- func (coord *Coordinator) CommitNBlocks(chain *TestChain, n uint64)
- func (coord *Coordinator) ConnOpenAck(source, counterparty *TestChain, ...) error
- func (coord *Coordinator) ConnOpenConfirm(source, counterparty *TestChain, ...) error
- func (coord *Coordinator) ConnOpenInit(source, counterparty *TestChain, clientID, counterpartyClientID string) (*ibctesting.TestConnection, *ibctesting.TestConnection, error)
- func (coord *Coordinator) ConnOpenInitOnBothChains(source, counterparty *TestChain, clientID, counterpartyClientID string) (*ibctesting.TestConnection, *ibctesting.TestConnection, error)
- func (coord *Coordinator) ConnOpenTry(source, counterparty *TestChain, ...) error
- func (coord *Coordinator) CreateChannel(chainA, chainB *TestChain, connA, connB *ibctesting.TestConnection, ...) (ibctesting.TestChannel, ibctesting.TestChannel)
- func (coord *Coordinator) CreateClient(source, counterparty *TestChain, clientType string) (clientID string, err error)
- func (coord *Coordinator) CreateConnection(chainA, chainB *TestChain, clientA, clientB string) (*ibctesting.TestConnection, *ibctesting.TestConnection)
- func (coord *Coordinator) CreateMockChannels(chainA, chainB *TestChain, connA, connB *ibctesting.TestConnection, ...) (ibctesting.TestChannel, ibctesting.TestChannel)
- func (coord *Coordinator) CreateTransferChannels(chainA, chainB *TestChain, connA, connB *ibctesting.TestConnection, ...) (ibctesting.TestChannel, ibctesting.TestChannel)
- func (coord *Coordinator) GetChain(chainID string) *TestChain
- func (coord *Coordinator) IncrementTime()
- func (coord *Coordinator) IncrementTimeBy(increment time.Duration)
- func (coord *Coordinator) RecvPacket(source, counterparty *TestChain, sourceClient string, ...) error
- func (coord *Coordinator) RelayAndAckPendingPackets(src, dest *TestChain, srcClientID, dstClientID string) error
- func (coord *Coordinator) RelayPacket(source, counterparty *TestChain, sourceClient, counterpartyClient string, ...) error
- func (coord *Coordinator) SendMsg(source, counterparty *TestChain, counterpartyClientID string, msg sdk.Msg) error
- func (coord *Coordinator) SendMsgs(source, counterparty *TestChain, counterpartyClientID string, msgs []sdk.Msg) error
- func (coord *Coordinator) SendPacket(source, counterparty *TestChain, packet exported.PacketI, ...) error
- func (coord *Coordinator) SetChannelClosed(source, counterparty *TestChain, testChannel ibctesting.TestChannel) error
- func (coord *Coordinator) Setup(chainA, chainB *TestChain, order channeltypes.Order) (string, string, *ibctesting.TestConnection, *ibctesting.TestConnection, ...)
- func (coord *Coordinator) SetupClientConnections(chainA, chainB *TestChain, clientType string) (string, string, *ibctesting.TestConnection, *ibctesting.TestConnection)
- func (coord *Coordinator) SetupClients(chainA, chainB *TestChain, clientType string) (string, string)
- func (coord *Coordinator) TimeoutPacket(source, counterparty *TestChain, counterpartyClient string, ...) error
- func (coord *Coordinator) UpdateClient(source, counterparty *TestChain, clientID string, clientType string) (err error)
- func (coord *Coordinator) WriteAcknowledgement(source, counterparty *TestChain, packet exported.PacketI, ...) error
- type PacketAck
- type TestChain
- func (chain *TestChain) AddTestChannel(conn *ibctesting.TestConnection, portID string) ibctesting.TestChannel
- func (chain *TestChain) AddTestConnection(clientID, counterpartyClientID string) *ibctesting.TestConnection
- func (chain *TestChain) ChanCloseInit(counterparty *TestChain, channel ibctesting.TestChannel) error
- func (chain *TestChain) ChanOpenAck(counterparty *TestChain, ch, counterpartyCh ibctesting.TestChannel) error
- func (chain *TestChain) ChanOpenConfirm(counterparty *TestChain, ch, counterpartyCh ibctesting.TestChannel) error
- func (chain *TestChain) ChanOpenInit(ch, counterparty ibctesting.TestChannel, order channeltypes.Order, ...) error
- func (chain *TestChain) ChanOpenTry(counterparty *TestChain, ch, counterpartyCh ibctesting.TestChannel, ...) error
- func (chain *TestChain) ConnectionOpenAck(counterparty *TestChain, ...) error
- func (chain *TestChain) ConnectionOpenConfirm(counterparty *TestChain, ...) error
- func (chain *TestChain) ConnectionOpenInit(counterparty *TestChain, ...) error
- func (chain *TestChain) ConnectionOpenTry(counterparty *TestChain, ...) error
- func (chain *TestChain) ConstructMsgCreateClient(counterparty *TestChain, clientID string, clientType string) *clienttypes.MsgCreateClient
- func (chain *TestChain) ConstructNextTestConnection(clientID, counterpartyClientID string) *ibctesting.TestConnection
- func (chain *TestChain) ConstructUpdateTMClientHeader(counterparty *TestChain, clientID string) (*ibctmtypes.Header, error)
- func (chain *TestChain) ContractInfo(contractAddr sdk.AccAddress) *types.ContractInfo
- func (chain *TestChain) CreateChannelCapability(portID, channelID string)
- func (chain *TestChain) CreatePortCapability(portID string)
- func (chain *TestChain) CreateTMClient(counterparty *TestChain, clientID string) error
- func (chain *TestChain) CreateTMClientHeader(chainID string, blockHeight int64, trustedHeight clienttypes.Height, ...) *ibctmtypes.Header
- func (chain *TestChain) CurrentTMClientHeader() *ibctmtypes.Header
- func (chain *TestChain) ExpireClient(amount time.Duration)
- func (chain *TestChain) GetAcknowledgement(packet exported.PacketI) []byte
- func (chain *TestChain) GetChannel(testChannel ibctesting.TestChannel) channeltypes.Channel
- func (chain *TestChain) GetChannelCapability(portID, channelID string) *capabilitytypes.Capability
- func (chain *TestChain) GetClientState(clientID string) exported.ClientState
- func (chain *TestChain) GetConnection(testConnection *ibctesting.TestConnection) connectiontypes.ConnectionEnd
- func (chain *TestChain) GetConsensusState(clientID string, height exported.Height) (exported.ConsensusState, bool)
- func (chain *TestChain) GetContext() sdk.Context
- func (chain *TestChain) GetFirstTestConnection(clientID, counterpartyClientID string) *ibctesting.TestConnection
- func (chain *TestChain) GetPacketData(counterparty *TestChain) []byte
- func (chain *TestChain) GetPortCapability(portID string) *capabilitytypes.Capability
- func (chain *TestChain) GetPrefix() commitmenttypes.MerklePrefix
- func (chain *TestChain) GetValsAtHeight(height int64) (*tmtypes.ValidatorSet, bool)
- func (chain *TestChain) InstantiateContract(codeID uint64, initMsg []byte) sdk.AccAddress
- func (chain *TestChain) NewClientID(clientType string) string
- func (chain *TestChain) NextBlock()
- func (chain *TestChain) NextChannel(conn *ibctesting.TestConnection, portID string) ibctesting.TestChannel
- func (chain *TestChain) QueryClientStateProof(clientID string) (exported.ClientState, []byte)
- func (chain *TestChain) QueryConsensusStateProof(clientID string) ([]byte, clienttypes.Height)
- func (chain *TestChain) QueryProof(key []byte) ([]byte, clienttypes.Height)
- func (chain *TestChain) QueryUpgradeProof(key []byte, height uint64) ([]byte, clienttypes.Height)
- func (chain *TestChain) SeedNewContractInstance() sdk.AccAddress
- func (chain *TestChain) SendMsgs(msgs ...sdk.Msg) (*sdk.Result, error)
- func (chain *TestChain) SendPacket(packet exported.PacketI) error
- func (chain *TestChain) SmartQuery(contractAddr string, queryMsg interface{}, response interface{}) error
- func (chain *TestChain) StoreCode(byteCode []byte) types.MsgStoreCodeResponse
- func (chain *TestChain) StoreCodeFile(filename string) types.MsgStoreCodeResponse
- func (chain *TestChain) TestSupport() *wasmd.TestSupport
- func (chain *TestChain) UpdateTMClient(counterparty *TestChain, clientID string) error
- func (chain *TestChain) WriteAcknowledgement(packet exported.PacketI) error
Constants ¶
const ( // Default params constants used to create a TM client TrustingPeriod time.Duration = time.Hour * 24 * 7 * 2 UnbondingPeriod time.Duration = time.Hour * 24 * 7 * 3 MaxClockDrift time.Duration = time.Second * 10 DefaultDelayPeriod uint64 = 0 DefaultChannelVersion = ibctransfertypes.Version InvalidID = "IDisInvalid" ConnectionIDPrefix = "conn" ChannelIDPrefix = "chan" TransferPort = ibctransfertypes.ModuleName MockPort = mock.ModuleName // used for testing UpdateClientProposal Title = "title" Description = "description" )
Variables ¶
var ( DefaultOpenInitVersion *connectiontypes.Version // Default params variables used to create a TM client DefaultTrustLevel ibctmtypes.Fraction = ibctmtypes.DefaultTrustLevel TestHash = tmhash.Sum([]byte("TESTING HASH")) TestCoin = sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(100)) UpgradePath = []string{"upgrade", "upgradedIBCState"} ConnectionVersion = connectiontypes.ExportedVersionsToProto(connectiontypes.GetCompatibleVersions())[0] MockAcknowledgement = mock.MockAcknowledgement MockCommitment = mock.MockCommitment )
var ( ChainIDPrefix = "testchain" TimeIncrement = time.Second * 5 )
Functions ¶
func CreateSortedSignerArray ¶
func CreateSortedSignerArray(altPrivVal, suitePrivVal tmtypes.PrivValidator, altVal, suiteVal *tmtypes.Validator) []tmtypes.PrivValidator
CreateSortedSignerArray takes two PrivValidators, and the corresponding Validator structs (including voting power). It returns a signer array of PrivValidators that matches the sorting of ValidatorSet. The sorting is first by .VotingPower (descending), with secondary index of .Address (ascending).
func GetChainID ¶
GetChainID returns the chainID used for the provided index.
Types ¶
type Coordinator ¶
Coordinator is a testing struct which contains N TestChain's. It handles keeping all chains in sync with regards to time.
func NewCoordinator ¶
NewCoordinator initializes Coordinator with N TestChain's
func (*Coordinator) AcknowledgePacket ¶
func (coord *Coordinator) AcknowledgePacket( source, counterparty *TestChain, counterpartyClient string, packet channeltypes.Packet, ack []byte, ) error
AcknowledgePacket acknowledges on the source chain the packet received on the counterparty chain and updates the client on the counterparty representing the source chain. TODO: add a query for the acknowledgement by events - https://github.com/cosmos/cosmos-sdk/issues/6509
func (*Coordinator) ChanCloseConfirm ¶
func (coord *Coordinator) ChanCloseConfirm( source, counterparty *TestChain, channel, counterpartyChannel ibctesting.TestChannel, ) error
ChanCloseConfirm closes a channel on the counterparty chain resulting in the channels state being set to CLOSED.
NOTE: does not work with ibc-transfer module
func (*Coordinator) ChanCloseInit ¶
func (coord *Coordinator) ChanCloseInit( source, counterparty *TestChain, channel ibctesting.TestChannel, ) error
ChanCloseInit closes a channel on the source chain resulting in the channels state being set to CLOSED.
NOTE: does not work with ibc-transfer module
func (*Coordinator) ChanOpenAck ¶
func (coord *Coordinator) ChanOpenAck( source, counterparty *TestChain, sourceChannel, counterpartyChannel ibctesting.TestChannel, ) error
ChanOpenAck initializes a channel on the source chain with the state OPEN using the OpenAck handshake call.
func (*Coordinator) ChanOpenConfirm ¶
func (coord *Coordinator) ChanOpenConfirm( source, counterparty *TestChain, sourceChannel, counterpartyChannel ibctesting.TestChannel, ) error
ChanOpenConfirm initializes a channel on the source chain with the state OPEN using the OpenConfirm handshake call.
func (*Coordinator) ChanOpenInit ¶
func (coord *Coordinator) ChanOpenInit( source, counterparty *TestChain, connection, counterpartyConnection *ibctesting.TestConnection, sourcePortID, counterpartyPortID string, order channeltypes.Order, ) (ibctesting.TestChannel, ibctesting.TestChannel, error)
ChanOpenInit initializes a channel on the source chain with the state INIT using the OpenInit handshake call.
NOTE: The counterparty testing channel will be created even if it is not created in the application state.
func (*Coordinator) ChanOpenInitOnBothChains ¶
func (coord *Coordinator) ChanOpenInitOnBothChains( source, counterparty *TestChain, connection, counterpartyConnection *ibctesting.TestConnection, sourcePortID, counterpartyPortID string, order channeltypes.Order, ) (ibctesting.TestChannel, ibctesting.TestChannel, error)
ChanOpenInitOnBothChains initializes a channel on the source chain and counterparty chain with the state INIT using the OpenInit handshake call.
func (*Coordinator) ChanOpenTry ¶
func (coord *Coordinator) ChanOpenTry( source, counterparty *TestChain, sourceChannel, counterpartyChannel ibctesting.TestChannel, connection *ibctesting.TestConnection, order channeltypes.Order, ) error
ChanOpenTry initializes a channel on the source chain with the state TRYOPEN using the OpenTry handshake call.
func (*Coordinator) CloseChannel ¶
func (coord *Coordinator) CloseChannel( source, counterparty *TestChain, channel, counterpartyChannel ibctesting.TestChannel, )
func (*Coordinator) CommitBlock ¶
func (coord *Coordinator) CommitBlock(chains ...*TestChain)
CommitBlock commits a block on the provided indexes and then increments the global time.
CONTRACT: the passed in list of indexes must not contain duplicates
func (*Coordinator) CommitNBlocks ¶
func (coord *Coordinator) CommitNBlocks(chain *TestChain, n uint64)
CommitNBlocks commits n blocks to state and updates the block height by 1 for each commit.
func (*Coordinator) ConnOpenAck ¶
func (coord *Coordinator) ConnOpenAck( source, counterparty *TestChain, sourceConnection, counterpartyConnection *ibctesting.TestConnection, ) error
ConnOpenAck initializes a connection on the source chain with the state OPEN using the OpenAck handshake call.
func (*Coordinator) ConnOpenConfirm ¶
func (coord *Coordinator) ConnOpenConfirm( source, counterparty *TestChain, sourceConnection, counterpartyConnection *ibctesting.TestConnection, ) error
ConnOpenConfirm initializes a connection on the source chain with the state OPEN using the OpenConfirm handshake call.
func (*Coordinator) ConnOpenInit ¶
func (coord *Coordinator) ConnOpenInit( source, counterparty *TestChain, clientID, counterpartyClientID string, ) (*ibctesting.TestConnection, *ibctesting.TestConnection, error)
ConnOpenInit initializes a connection on the source chain with the state INIT using the OpenInit handshake call.
NOTE: The counterparty testing connection will be created even if it is not created in the application state.
func (*Coordinator) ConnOpenInitOnBothChains ¶
func (coord *Coordinator) ConnOpenInitOnBothChains( source, counterparty *TestChain, clientID, counterpartyClientID string, ) (*ibctesting.TestConnection, *ibctesting.TestConnection, error)
ConnOpenInitOnBothChains initializes a connection on the source chain with the state INIT using the OpenInit handshake call.
func (*Coordinator) ConnOpenTry ¶
func (coord *Coordinator) ConnOpenTry( source, counterparty *TestChain, sourceConnection, counterpartyConnection *ibctesting.TestConnection, ) error
ConnOpenTry initializes a connection on the source chain with the state TRYOPEN using the OpenTry handshake call.
func (*Coordinator) CreateChannel ¶
func (coord *Coordinator) CreateChannel( chainA, chainB *TestChain, connA, connB *ibctesting.TestConnection, sourcePortID, counterpartyPortID string, order channeltypes.Order, ) (ibctesting.TestChannel, ibctesting.TestChannel)
CreateChannel constructs and executes channel handshake messages in order to create OPEN channels on chainA and chainB. The function expects the channels to be successfully opened otherwise testing will fail.
func (*Coordinator) CreateClient ¶
func (coord *Coordinator) CreateClient( source, counterparty *TestChain, clientType string, ) (clientID string, err error)
CreateClient creates a counterparty client on the source chain and returns the clientID.
func (*Coordinator) CreateConnection ¶
func (coord *Coordinator) CreateConnection( chainA, chainB *TestChain, clientA, clientB string, ) (*ibctesting.TestConnection, *ibctesting.TestConnection)
CreateConnection constructs and executes connection handshake messages in order to create OPEN channels on chainA and chainB. The connection information of for chainA and chainB are returned within a TestConnection struct. The function expects the connections to be successfully opened otherwise testing will fail.
func (*Coordinator) CreateMockChannels ¶
func (coord *Coordinator) CreateMockChannels( chainA, chainB *TestChain, connA, connB *ibctesting.TestConnection, order channeltypes.Order, ) (ibctesting.TestChannel, ibctesting.TestChannel)
CreateMockChannels constructs and executes channel handshake messages to create OPEN channels that use a mock application module that returns nil on all callbacks. This function is expects the channels to be successfully opened otherwise testing will fail.
func (*Coordinator) CreateTransferChannels ¶
func (coord *Coordinator) CreateTransferChannels( chainA, chainB *TestChain, connA, connB *ibctesting.TestConnection, order channeltypes.Order, ) (ibctesting.TestChannel, ibctesting.TestChannel)
CreateTransferChannels constructs and executes channel handshake messages to create OPEN ibc-transfer channels on chainA and chainB. The function expects the channels to be successfully opened otherwise testing will fail.
func (*Coordinator) GetChain ¶
func (coord *Coordinator) GetChain(chainID string) *TestChain
GetChain returns the TestChain using the given chainID and returns an error if it does not exist.
func (*Coordinator) IncrementTime ¶
func (coord *Coordinator) IncrementTime()
IncrementTime iterates through all the TestChain's and increments their current header time by 5 seconds.
CONTRACT: this function must be called after every commit on any TestChain.
func (*Coordinator) IncrementTimeBy ¶
func (coord *Coordinator) IncrementTimeBy(increment time.Duration)
IncrementTimeBy iterates through all the TestChain's and increments their current header time by specified time.
func (*Coordinator) RecvPacket ¶
func (coord *Coordinator) RecvPacket( source, counterparty *TestChain, sourceClient string, packet channeltypes.Packet, ) error
RecvPacket receives a channel packet on the counterparty chain and updates the client on the source chain representing the counterparty.
func (*Coordinator) RelayAndAckPendingPackets ¶
func (coord *Coordinator) RelayAndAckPendingPackets(src, dest *TestChain, srcClientID, dstClientID string) error
func (*Coordinator) RelayPacket ¶
func (coord *Coordinator) RelayPacket( source, counterparty *TestChain, sourceClient, counterpartyClient string, packet channeltypes.Packet, ack []byte, ) error
RelayPacket receives a channel packet on counterparty, queries the ack and acknowledges the packet on source. The clients are updated as needed.
func (*Coordinator) SendMsg ¶
func (coord *Coordinator) SendMsg(source, counterparty *TestChain, counterpartyClientID string, msg sdk.Msg) error
SendMsg delivers a single provided message to the chain. The counterparty client is update with the new source consensus state.
func (*Coordinator) SendMsgs ¶
func (coord *Coordinator) SendMsgs(source, counterparty *TestChain, counterpartyClientID string, msgs []sdk.Msg) error
SendMsgs delivers the provided messages to the chain. The counterparty client is updated with the new source consensus state.
func (*Coordinator) SendPacket ¶
func (coord *Coordinator) SendPacket( source, counterparty *TestChain, packet exported.PacketI, counterpartyClientID string, ) error
SendPacket sends a packet through the channel keeper on the source chain and updates the counterparty client for the source chain.
func (*Coordinator) SetChannelClosed ¶
func (coord *Coordinator) SetChannelClosed( source, counterparty *TestChain, testChannel ibctesting.TestChannel, ) error
SetChannelClosed sets a channel state to CLOSED.
func (*Coordinator) Setup ¶
func (coord *Coordinator) Setup( chainA, chainB *TestChain, order channeltypes.Order, ) (string, string, *ibctesting.TestConnection, *ibctesting.TestConnection, ibctesting.TestChannel, ibctesting.TestChannel)
Setup constructs a TM client, connection, and channel on both chains provided. It will fail if any error occurs. The clientID's, TestConnections, and TestChannels are returned for both chains. The channels created are connected to the ibc-transfer application.
func (*Coordinator) SetupClientConnections ¶
func (coord *Coordinator) SetupClientConnections( chainA, chainB *TestChain, clientType string, ) (string, string, *ibctesting.TestConnection, *ibctesting.TestConnection)
SetupClientConnections is a helper function to create clients and the appropriate connections on both the source and counterparty chain. It assumes the caller does not anticipate any errors.
func (*Coordinator) SetupClients ¶
func (coord *Coordinator) SetupClients( chainA, chainB *TestChain, clientType string, ) (string, string)
SetupClients is a helper function to create clients on both chains. It assumes the caller does not anticipate any errors.
func (*Coordinator) TimeoutPacket ¶
func (coord *Coordinator) TimeoutPacket( source, counterparty *TestChain, counterpartyClient string, packet channeltypes.Packet, ) error
TimeoutPacket returns the package to source chain to let the IBC app revert any operation.
func (*Coordinator) UpdateClient ¶
func (coord *Coordinator) UpdateClient( source, counterparty *TestChain, clientID string, clientType string, ) (err error)
UpdateClient updates a counterparty client on the source chain.
func (*Coordinator) WriteAcknowledgement ¶
func (coord *Coordinator) WriteAcknowledgement( source, counterparty *TestChain, packet exported.PacketI, counterpartyClientID string, ) error
WriteAcknowledgement writes an acknowledgement to the channel keeper on the source chain and updates the counterparty client for the source chain.
type PacketAck ¶
type PacketAck struct { Packet channeltypes.Packet Ack []byte }
type TestChain ¶
type TestChain struct { App *wasmd.WasmApp ChainID string LastHeader *ibctmtypes.Header // header for last block height committed CurrentHeader tmproto.Header // header for current block height QueryServer types.QueryServer TxConfig client.TxConfig Codec codec.BinaryMarshaler Vals *tmtypes.ValidatorSet Signers []tmtypes.PrivValidator SenderAccount authtypes.AccountI // IBC specific helpers ClientIDs []string // ClientID's used on this chain Connections []*ibctesting.TestConnection // track connectionID's created for this chain PendingSendPackets []channeltypes.Packet PendingAckPackets []PacketAck // contains filtered or unexported fields }
TestChain is a testing struct that wraps a simapp with the last TM Header, the current ABCI header and the validators of the TestChain. It also contains a field called ChainID. This is the clientID that *other* chains use to refer to this TestChain. The SenderAccount is used for delivering transactions through the application state. NOTE: the actual application uses an empty chain-id for ease of testing.
func NewTestChain ¶
NewTestChain initializes a new TestChain instance with a single validator set using a generated private key. It also creates a sender account to be used for delivering transactions.
The first block height is committed to state in order to allow for client creations on counterparty chains. The TestChain will return with a block height starting at 2.
Time management is handled by the Coordinator in order to ensure synchrony between chains. Each update of any chain increments the block header time for all chains by 5 seconds.
func (*TestChain) AddTestChannel ¶
func (chain *TestChain) AddTestChannel(conn *ibctesting.TestConnection, portID string) ibctesting.TestChannel
AddTestChannel Add ibctesting.TestChannel appends a new ibctesting.TestChannel which contains references to the port and channel ID used for channel creation and interaction. See 'Next ibctesting.TestChannel' for channel ID naming format.
func (*TestChain) AddTestConnection ¶
func (chain *TestChain) AddTestConnection(clientID, counterpartyClientID string) *ibctesting.TestConnection
AddTestConnection appends a new TestConnection which contains references to the connection id, client id and counterparty client id.
func (*TestChain) ChanCloseInit ¶
func (chain *TestChain) ChanCloseInit( counterparty *TestChain, channel ibctesting.TestChannel, ) error
ChanCloseInit will construct and execute a MsgChannelCloseInit.
NOTE: does not work with ibc-transfer module
func (*TestChain) ChanOpenAck ¶
func (chain *TestChain) ChanOpenAck( counterparty *TestChain, ch, counterpartyCh ibctesting.TestChannel, ) error
ChanOpenAck will construct and execute a MsgChannelOpenAck.
func (*TestChain) ChanOpenConfirm ¶
func (chain *TestChain) ChanOpenConfirm( counterparty *TestChain, ch, counterpartyCh ibctesting.TestChannel, ) error
ChanOpenConfirm will construct and execute a MsgChannelOpenConfirm.
func (*TestChain) ChanOpenInit ¶
func (chain *TestChain) ChanOpenInit( ch, counterparty ibctesting.TestChannel, order channeltypes.Order, connectionID string, ) error
ChanOpenInit will construct and execute a MsgChannelOpenInit.
func (*TestChain) ChanOpenTry ¶
func (chain *TestChain) ChanOpenTry( counterparty *TestChain, ch, counterpartyCh ibctesting.TestChannel, order channeltypes.Order, connectionID string, ) error
ChanOpenTry will construct and execute a MsgChannelOpenTry.
func (*TestChain) ConnectionOpenAck ¶
func (chain *TestChain) ConnectionOpenAck( counterparty *TestChain, connection, counterpartyConnection *ibctesting.TestConnection, ) error
ConnectionOpenAck will construct and execute a MsgConnectionOpenAck.
func (*TestChain) ConnectionOpenConfirm ¶
func (chain *TestChain) ConnectionOpenConfirm( counterparty *TestChain, connection, counterpartyConnection *ibctesting.TestConnection, ) error
ConnectionOpenConfirm will construct and execute a MsgConnectionOpenConfirm.
func (*TestChain) ConnectionOpenInit ¶
func (chain *TestChain) ConnectionOpenInit( counterparty *TestChain, connection, counterpartyConnection *ibctesting.TestConnection, ) error
ConnectionOpenInit will construct and execute a MsgConnectionOpenInit.
func (*TestChain) ConnectionOpenTry ¶
func (chain *TestChain) ConnectionOpenTry( counterparty *TestChain, connection, counterpartyConnection *ibctesting.TestConnection, ) error
ConnectionOpenTry will construct and execute a MsgConnectionOpenTry.
func (*TestChain) ConstructMsgCreateClient ¶
func (chain *TestChain) ConstructMsgCreateClient(counterparty *TestChain, clientID string, clientType string) *clienttypes.MsgCreateClient
ConstructMsgCreateClient constructs a message to create a new client state (tendermint or solomachine). NOTE: a solo machine client will be created with an empty diversifier.
func (*TestChain) ConstructNextTestConnection ¶
func (chain *TestChain) ConstructNextTestConnection(clientID, counterpartyClientID string) *ibctesting.TestConnection
ConstructNextTestConnection constructs the next test connection to be created given a clientID and counterparty clientID. The connection id format: <chainID>-conn<index>
func (*TestChain) ConstructUpdateTMClientHeader ¶
func (chain *TestChain) ConstructUpdateTMClientHeader(counterparty *TestChain, clientID string) (*ibctmtypes.Header, error)
ConstructUpdateTMClientHeader will construct a valid 07-tendermint Header to update the light client on the source chain.
func (*TestChain) ContractInfo ¶
func (chain *TestChain) ContractInfo(contractAddr sdk.AccAddress) *types.ContractInfo
ContractInfo is a helper function to returns the ContractInfo for the given contract address
func (*TestChain) CreateChannelCapability ¶
CreateChannelCapability binds and claims a capability for the given portID and channelID if it does not already exist. This function will fail testing on any resulting error.
func (*TestChain) CreatePortCapability ¶
CreatePortCapability binds and claims a capability for the given portID if it does not already exist. This function will fail testing on any resulting error. NOTE: only creation of a capbility for a transfer or mock port is supported Other applications must bind to the port in InitGenesis or modify this code.
func (*TestChain) CreateTMClient ¶
CreateTMClient will construct and execute a 07-tendermint MsgCreateClient. A counterparty client will be created on the (target) chain.
func (*TestChain) CreateTMClientHeader ¶
func (chain *TestChain) CreateTMClientHeader(chainID string, blockHeight int64, trustedHeight clienttypes.Height, timestamp time.Time, tmValSet, tmTrustedVals *tmtypes.ValidatorSet, signers []tmtypes.PrivValidator) *ibctmtypes.Header
CreateTMClientHeader creates a TM header to update the TM client. Args are passed in to allow caller flexibility to use params that differ from the chain.
func (*TestChain) CurrentTMClientHeader ¶
func (chain *TestChain) CurrentTMClientHeader() *ibctmtypes.Header
CurrentTMClientHeader creates a TM header using the current header parameters on the chain. The trusted fields in the header are set to nil.
func (*TestChain) ExpireClient ¶
ExpireClient fast forwards the chain's block time by the provided amount of time which will expire any clients with a trusting period less than or equal to this amount of time.
func (*TestChain) GetAcknowledgement ¶
GetAcknowledgement retrieves an acknowledgement for the provided packet. If the acknowledgement does not exist then testing will fail.
func (*TestChain) GetChannel ¶
func (chain *TestChain) GetChannel(testChannel ibctesting.TestChannel) channeltypes.Channel
GetChannel retrieves an IBC Channel for the provided ibctesting.TestChannel. The channel is expected to exist otherwise testing will fail.
func (*TestChain) GetChannelCapability ¶
func (chain *TestChain) GetChannelCapability(portID, channelID string) *capabilitytypes.Capability
GetChannelCapability returns the channel capability for the given portID and channelID. The capability must exist, otherwise testing will fail.
func (*TestChain) GetClientState ¶
func (chain *TestChain) GetClientState(clientID string) exported.ClientState
GetClientState retrieves the client state for the provided clientID. The client is expected to exist otherwise testing will fail.
func (*TestChain) GetConnection ¶
func (chain *TestChain) GetConnection(testConnection *ibctesting.TestConnection) connectiontypes.ConnectionEnd
GetConnection retrieves an IBC Connection for the provided TestConnection. The connection is expected to exist otherwise testing will fail.
func (*TestChain) GetConsensusState ¶
func (chain *TestChain) GetConsensusState(clientID string, height exported.Height) (exported.ConsensusState, bool)
GetConsensusState retrieves the consensus state for the provided clientID and height. It will return a success boolean depending on if consensus state exists or not.
func (*TestChain) GetContext ¶
GetContext returns the current context for the application.
func (*TestChain) GetFirstTestConnection ¶
func (chain *TestChain) GetFirstTestConnection(clientID, counterpartyClientID string) *ibctesting.TestConnection
GetFirstTestConnection returns the first test connection for a given clientID. The connection may or may not exist in the chain state.
func (*TestChain) GetPacketData ¶
GetPacketData returns a ibc-transfer marshalled packet to be used for callback testing.
func (*TestChain) GetPortCapability ¶
func (chain *TestChain) GetPortCapability(portID string) *capabilitytypes.Capability
GetPortCapability returns the port capability for the given portID. The capability must exist, otherwise testing will fail.
func (*TestChain) GetPrefix ¶
func (chain *TestChain) GetPrefix() commitmenttypes.MerklePrefix
GetPrefix returns the prefix for used by a chain in connection creation
func (*TestChain) GetValsAtHeight ¶
func (chain *TestChain) GetValsAtHeight(height int64) (*tmtypes.ValidatorSet, bool)
GetValsAtHeight will return the validator set of the chain at a given height. It will return a success boolean depending on if the validator set exists or not at that height.
func (*TestChain) InstantiateContract ¶
func (chain *TestChain) InstantiateContract(codeID uint64, initMsg []byte) sdk.AccAddress
func (*TestChain) NewClientID ¶
NewClientID appends a new clientID string in the format: ClientFor<counterparty-chain-id><index>
func (*TestChain) NextBlock ¶
func (chain *TestChain) NextBlock()
NextBlock sets the last header to the current header and increments the current header to be at the next block height. It does not update the time as that is handled by the Coordinator.
CONTRACT: this function must only be called after app.Commit() occurs
func (*TestChain) NextChannel ¶
func (chain *TestChain) NextChannel(conn *ibctesting.TestConnection, portID string) ibctesting.TestChannel
NextChannel Next ibctesting.TestChannel returns the next test channel to be created on this connection, but does not add it to the list of created channels. This function is expected to be used when the caller has not created the associated channel in app state, but would still like to refer to the non-existent channel usually to test for its non-existence.
channel ID format: <connectionid>-chan<channel-index>
The port is passed in by the caller.
func (*TestChain) QueryClientStateProof ¶
func (chain *TestChain) QueryClientStateProof(clientID string) (exported.ClientState, []byte)
QueryClientStateProof performs and abci query for a client state stored with a given clientID and returns the ClientState along with the proof
func (*TestChain) QueryConsensusStateProof ¶
func (chain *TestChain) QueryConsensusStateProof(clientID string) ([]byte, clienttypes.Height)
QueryConsensusStateProof performs an abci query for a consensus state stored on the given clientID. The proof and consensusHeight are returned.
func (*TestChain) QueryProof ¶
func (chain *TestChain) QueryProof(key []byte) ([]byte, clienttypes.Height)
QueryProof performs an abci query with the given key and returns the proto encoded merkle proof for the query and the height at which the proof will succeed on a tendermint verifier.
func (*TestChain) QueryUpgradeProof ¶
QueryUpgradeProof performs an abci query with the given key and returns the proto encoded merkle proof for the query and the height at which the proof will succeed on a tendermint verifier.
func (*TestChain) SeedNewContractInstance ¶
func (chain *TestChain) SeedNewContractInstance() sdk.AccAddress
SeedNewContractInstance stores some wasm code and instantiates a new contract on this chain. This method can be called to prepare the store with some valid CodeInfo and ContractInfo. The returned Address is the contract address for this instance. Test should make use of this data and/or use NewIBCContractMockWasmer for using a contract mock in Go.
func (*TestChain) SendMsgs ¶
SendMsgs delivers a transaction through the application. It updates the senders sequence number and updates the TestChain's headers. It returns the result and error if one occurred.
func (*TestChain) SendPacket ¶
SendPacket simulates sending a packet through the channel keeper. No message needs to be passed since this call is made from a module.
func (*TestChain) SmartQuery ¶
func (chain *TestChain) SmartQuery(contractAddr string, queryMsg interface{}, response interface{}) error
SmartQuery This will serialize the query message and submit it to the contract. The response is parsed into the provided interface. Usage: SmartQuery(addr, QueryMsg{Foo: 1}, &response)
func (*TestChain) StoreCode ¶
func (chain *TestChain) StoreCode(byteCode []byte) types.MsgStoreCodeResponse
func (*TestChain) StoreCodeFile ¶
func (chain *TestChain) StoreCodeFile(filename string) types.MsgStoreCodeResponse
func (*TestChain) TestSupport ¶
func (chain *TestChain) TestSupport() *wasmd.TestSupport
TestSupport provides access to package private keepers.
func (*TestChain) UpdateTMClient ¶
UpdateTMClient will construct and execute a 07-tendermint MsgUpdateClient. The counterparty client will be updated on the (target) chain. UpdateTMClient mocks the relayer flow necessary for updating a Tendermint client.