Documentation ¶
Index ¶
- Constants
- func MarshalWithAny(msg proto.Message) ([]byte, error)
- func PackAny(msg proto.Message) (*types.Any, error)
- func UnmarshalWithAny(bz []byte, msg proto.Message) error
- func UnpackAny(bz []byte) (*types.Any, error)
- type Chain
- func (chain *Chain) AddTestChannel(conn *TestConnection, portID string) TestChannel
- func (chain *Chain) AddTestConnection(clientID, counterpartyClientID string) *TestConnection
- func (chain *Chain) CallOpts(ctx context.Context, index uint32) *bind.CallOpts
- func (chain *Chain) ChainID() int64
- func (chain *Chain) ChainIDString() string
- func (chain *Chain) ChannelCloseConfirm(ctx context.Context, counterparty *Chain, ch, counterpartyCh TestChannel) error
- func (chain *Chain) ChannelCloseInit(ctx context.Context, ch TestChannel) error
- func (chain *Chain) ChannelOpenAck(ctx context.Context, counterparty *Chain, ch, counterpartyCh TestChannel) error
- func (chain *Chain) ChannelOpenConfirm(ctx context.Context, counterparty *Chain, ch, counterpartyCh TestChannel) error
- func (chain *Chain) ChannelOpenInit(ctx context.Context, ch, counterparty TestChannel, ...) (string, error)
- func (chain *Chain) ChannelOpenTry(ctx context.Context, counterparty *Chain, ch, counterpartyCh TestChannel, ...) (string, error)
- func (chain *Chain) ChannelStateCommitmentSlot(portID, channelID string) string
- func (chain *Chain) Client() client.Client
- func (chain *Chain) ClientStateCommitmentSlot(clientID string) string
- func (chain *Chain) ClientType() string
- func (chain *Chain) ConnectionOpenAck(ctx context.Context, counterparty *Chain, ...) error
- func (chain *Chain) ConnectionOpenConfirm(ctx context.Context, counterparty *Chain, ...) error
- func (chain *Chain) ConnectionOpenInit(ctx context.Context, counterparty *Chain, ...) (string, error)
- func (chain *Chain) ConnectionOpenTry(ctx context.Context, counterparty *Chain, ...) (string, error)
- func (chain *Chain) ConnectionStateCommitmentSlot(connectionID string) string
- func (chain *Chain) ConstructIBFT2MsgCreateClient(counterparty *Chain) ibchandler.IBCMsgsMsgCreateClient
- func (chain *Chain) ConstructIBFT2MsgUpdateClient(counterparty *Chain, clientID string) ibchandler.IBCMsgsMsgUpdateClient
- func (chain *Chain) ConstructMockMsgCreateClient(counterparty *Chain) ibchandler.IBCMsgsMsgCreateClient
- func (chain *Chain) ConstructMockMsgUpdateClient(counterparty *Chain, clientID string) ibchandler.IBCMsgsMsgUpdateClient
- func (chain *Chain) ConstructNextTestConnection(clientID, counterpartyClientID string) *TestConnection
- func (chain *Chain) CreateIBFT2Client(ctx context.Context, counterparty *Chain) (string, error)
- func (chain *Chain) CreateMockClient(ctx context.Context, counterparty *Chain) (string, error)
- func (chain *Chain) FindPacket(ctx context.Context, sourcePortID string, sourceChannel string, ...) (*channeltypes.Packet, error)
- func (chain *Chain) GetCommitmentPrefix() []byte
- func (chain *Chain) GetContractState(counterparty *Chain, counterpartyClientID string, storageKeys [][]byte, ...) (client.ContractState, error)
- func (chain *Chain) GetIBFT2ClientState(clientID string) *ibft2clienttypes.ClientState
- func (chain *Chain) GetLastGeneratedChannelID(ctx context.Context) (string, error)
- func (chain *Chain) GetLastGeneratedClientID(ctx context.Context) (string, error)
- func (chain *Chain) GetLastGeneratedConnectionID(ctx context.Context) (string, error)
- func (chain *Chain) GetLastSentPacket(ctx context.Context, sourcePortID string, sourceChannel string) (*channeltypes.Packet, error)
- func (chain *Chain) GetMockClientState(clientID string) *mockclienttypes.ClientState
- func (chain *Chain) HandlePacketAcknowledgement(ctx context.Context, counterparty *Chain, ch, counterpartyCh TestChannel, ...) error
- func (chain *Chain) HandlePacketRecv(ctx context.Context, counterparty *Chain, ch, counterpartyCh TestChannel, ...) error
- func (chain *Chain) LastHeader() *gethtypes.Header
- func (chain *Chain) NextTestChannel(conn *TestConnection, portID string) TestChannel
- func (chain *Chain) PacketAcknowledgementCommitmentSlot(portID, channelID string, sequence uint64) string
- func (chain *Chain) PacketCommitmentSlot(portID, channelID string, sequence uint64) string
- func (counterparty *Chain) QueryChannelProof(chain *Chain, counterpartyClientID string, channel TestChannel, ...) (*Proof, error)
- func (counterparty *Chain) QueryClientProof(chain *Chain, counterpartyClientID string, height *big.Int) ([]byte, *Proof, error)
- func (counterparty *Chain) QueryConnectionProof(chain *Chain, counterpartyClientID string, counterpartyConnectionID string, ...) (*Proof, error)
- func (chain *Chain) QueryProof(counterparty *Chain, counterpartyClientID string, storageKey string, ...) (*Proof, error)
- func (chain *Chain) SendPacket(ctx context.Context, packet channeltypes.Packet) error
- func (chain *Chain) TxOpts(ctx context.Context, index uint32) *bind.TransactOpts
- func (chain *Chain) UpdateHeader()
- func (chain *Chain) UpdateIBFT2Client(ctx context.Context, counterparty *Chain, clientID string) error
- func (chain *Chain) UpdateMockClient(ctx context.Context, counterparty *Chain, clientID string) error
- func (chain *Chain) WaitForReceiptAndGet(ctx context.Context, tx *gethtypes.Transaction) error
- func (chain *Chain) WaitIfNoError(ctx context.Context) func(tx *gethtypes.Transaction, err error) error
- type ContractConfig
- type Coordinator
- func (c *Coordinator) ChanCloseConfirm(ctx context.Context, source, counterparty *Chain, ...) error
- func (c *Coordinator) ChanCloseInit(ctx context.Context, source, counterparty *Chain, sourceChannel TestChannel) error
- func (c *Coordinator) ChanOpenAck(ctx context.Context, source, counterparty *Chain, ...) error
- func (c *Coordinator) ChanOpenConfirm(ctx context.Context, source, counterparty *Chain, ...) error
- func (c *Coordinator) ChanOpenInit(ctx context.Context, source, counterparty *Chain, ...) (TestChannel, TestChannel, error)
- func (c *Coordinator) ChanOpenTry(ctx context.Context, source, counterparty *Chain, ...) error
- func (c *Coordinator) CloseChannel(ctx context.Context, chainA, chainB *Chain, chanA, chanB TestChannel)
- func (c *Coordinator) ConnOpenAck(ctx context.Context, source, counterparty *Chain, ...) error
- func (c *Coordinator) ConnOpenConfirm(ctx context.Context, source, counterparty *Chain, ...) error
- func (c Coordinator) ConnOpenInit(ctx context.Context, source, counterparty *Chain, ...) (*TestConnection, *TestConnection, error)
- func (c *Coordinator) ConnOpenTry(ctx context.Context, source, counterparty *Chain, ...) error
- func (c *Coordinator) CreateChannel(ctx context.Context, chainA, chainB *Chain, connA, connB *TestConnection, ...) (TestChannel, TestChannel)
- func (c Coordinator) CreateClient(ctx context.Context, source, counterparty *Chain, clientType string) (clientID string, err error)
- func (c *Coordinator) CreateConnection(ctx context.Context, chainA, chainB *Chain, clientA, clientB string) (*TestConnection, *TestConnection)
- func (c Coordinator) GetChain(idx int) *Chain
- func (c *Coordinator) HandlePacketAcknowledgement(ctx context.Context, source, counterparty *Chain, ...) error
- func (c *Coordinator) HandlePacketRecv(ctx context.Context, source, counterparty *Chain, ...) error
- func (c *Coordinator) SendPacket(ctx context.Context, source, counterparty *Chain, packet channeltypes.Packet, ...) error
- func (coord *Coordinator) SetupClientConnections(ctx context.Context, chainA, chainB *Chain, clientType string) (string, string, *TestConnection, *TestConnection)
- func (coord *Coordinator) SetupClients(ctx context.Context, chainA, chainB *Chain, clientType string) (string, string)
- func (c Coordinator) UpdateClient(ctx context.Context, source, counterparty *Chain, clientID string) error
- func (coord *Coordinator) UpdateHeaders()
- type Proof
- type TestChannel
- type TestConnection
Constants ¶
const ( DefaultChannelVersion = "ics20-1" BlockTime uint64 = 1000 * 1000 * 1000 // 1[sec] DefaultDelayPeriod uint64 = 3 * BlockTime DefaultPrefix = "ibc" TransferPort = "transfer" RelayerKeyIndex uint32 = 0 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Chain ¶
type Chain struct { IBCHandler ibchandler.Ibchandler IBCHost ibchost.Ibchost IBCIdentifier ibcidentifier.Ibcidentifier // App Modules SimpleToken simpletoken.Simpletoken ICS20Transfer ics20transferbank.Ics20transferbank ICS20Bank ics20bank.Ics20bank ContractConfig ContractConfig // State LastContractState client.ContractState // IBC specific helpers ClientIDs []string // ClientID's used on this chain Connections []*TestConnection // track connectionID's created for this chain IBCID uint64 // contains filtered or unexported fields }
func (*Chain) AddTestChannel ¶
func (chain *Chain) AddTestChannel(conn *TestConnection, portID string) TestChannel
AddTestChannel appends a new TestChannel which contains references to the port and channel ID used for channel creation and interaction. See 'NextTestChannel' for channel ID naming format.
func (*Chain) AddTestConnection ¶
func (chain *Chain) AddTestConnection(clientID, counterpartyClientID string) *TestConnection
AddTestConnection appends a new TestConnection which contains references to the connection id, client id and counterparty client id.
func (*Chain) ChainIDString ¶
func (*Chain) ChannelCloseConfirm ¶
func (*Chain) ChannelCloseInit ¶
func (chain *Chain) ChannelCloseInit( ctx context.Context, ch TestChannel, ) error
func (*Chain) ChannelOpenAck ¶
func (*Chain) ChannelOpenConfirm ¶
func (*Chain) ChannelOpenInit ¶
func (chain *Chain) ChannelOpenInit( ctx context.Context, ch, counterparty TestChannel, order channeltypes.Channel_Order, connectionID string, ) (string, error)
func (*Chain) ChannelOpenTry ¶
func (chain *Chain) ChannelOpenTry( ctx context.Context, counterparty *Chain, ch, counterpartyCh TestChannel, order channeltypes.Channel_Order, connectionID string, ) (string, error)
func (*Chain) ChannelStateCommitmentSlot ¶
func (*Chain) ClientStateCommitmentSlot ¶
func (*Chain) ClientType ¶
func (*Chain) ConnectionOpenAck ¶
func (chain *Chain) ConnectionOpenAck( ctx context.Context, counterparty *Chain, connection, counterpartyConnection *TestConnection, ) error
ConnectionOpenAck will construct and execute a MsgConnectionOpenAck.
func (*Chain) ConnectionOpenConfirm ¶
func (*Chain) ConnectionOpenInit ¶
func (*Chain) ConnectionOpenTry ¶
func (*Chain) ConnectionStateCommitmentSlot ¶
func (*Chain) ConstructIBFT2MsgCreateClient ¶
func (chain *Chain) ConstructIBFT2MsgCreateClient(counterparty *Chain) ibchandler.IBCMsgsMsgCreateClient
func (*Chain) ConstructIBFT2MsgUpdateClient ¶
func (chain *Chain) ConstructIBFT2MsgUpdateClient(counterparty *Chain, clientID string) ibchandler.IBCMsgsMsgUpdateClient
func (*Chain) ConstructMockMsgCreateClient ¶
func (chain *Chain) ConstructMockMsgCreateClient(counterparty *Chain) ibchandler.IBCMsgsMsgCreateClient
func (*Chain) ConstructMockMsgUpdateClient ¶
func (chain *Chain) ConstructMockMsgUpdateClient(counterparty *Chain, clientID string) ibchandler.IBCMsgsMsgUpdateClient
func (*Chain) ConstructNextTestConnection ¶
func (chain *Chain) ConstructNextTestConnection(clientID, counterpartyClientID string) *TestConnection
ConstructNextTestConnection constructs the next test connection to be created given a clientID and counterparty clientID.
func (*Chain) CreateIBFT2Client ¶
func (*Chain) CreateMockClient ¶
func (*Chain) FindPacket ¶
func (*Chain) GetCommitmentPrefix ¶
func (*Chain) GetContractState ¶
func (*Chain) GetIBFT2ClientState ¶
func (chain *Chain) GetIBFT2ClientState(clientID string) *ibft2clienttypes.ClientState
func (*Chain) GetLastGeneratedChannelID ¶
func (*Chain) GetLastGeneratedClientID ¶
func (*Chain) GetLastGeneratedConnectionID ¶
func (*Chain) GetLastSentPacket ¶
func (*Chain) GetMockClientState ¶
func (chain *Chain) GetMockClientState(clientID string) *mockclienttypes.ClientState
func (*Chain) HandlePacketAcknowledgement ¶
func (chain *Chain) HandlePacketAcknowledgement( ctx context.Context, counterparty *Chain, ch, counterpartyCh TestChannel, packet channeltypes.Packet, acknowledgement []byte, ) error
func (*Chain) HandlePacketRecv ¶
func (chain *Chain) HandlePacketRecv( ctx context.Context, counterparty *Chain, ch, counterpartyCh TestChannel, packet channeltypes.Packet, ) error
func (*Chain) LastHeader ¶
func (*Chain) NextTestChannel ¶
func (chain *Chain) NextTestChannel(conn *TestConnection, portID string) TestChannel
NextTestChannel 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.
The port is passed in by the caller.
func (*Chain) PacketAcknowledgementCommitmentSlot ¶
func (*Chain) PacketCommitmentSlot ¶
func (*Chain) QueryChannelProof ¶
func (*Chain) QueryClientProof ¶
func (*Chain) QueryConnectionProof ¶
func (*Chain) QueryProof ¶
func (*Chain) SendPacket ¶
func (*Chain) UpdateHeader ¶
func (chain *Chain) UpdateHeader()
func (*Chain) UpdateIBFT2Client ¶
func (*Chain) UpdateMockClient ¶
func (*Chain) WaitForReceiptAndGet ¶
func (*Chain) WaitIfNoError ¶
type ContractConfig ¶
type ContractConfig interface { GetIBCHostAddress() common.Address GetIBCHandlerAddress() common.Address GetIBCIdentifierAddress() common.Address GetIBFT2ClientAddress() common.Address GetMockClientAddress() common.Address GetSimpleTokenAddress() common.Address GetICS20TransferBankAddress() common.Address GetICS20BankAddress() common.Address }
type Coordinator ¶
type Coordinator struct {
// contains filtered or unexported fields
}
func NewCoordinator ¶
func NewCoordinator(t *testing.T, chains ...*Chain) Coordinator
func (*Coordinator) ChanCloseConfirm ¶
func (c *Coordinator) ChanCloseConfirm( ctx context.Context, source, counterparty *Chain, sourceChannel, counterpartyChannel TestChannel, ) error
ChanCloseConfirm confirms closing of a channel on chain A to chain B, after which the channel is closed on both chains (this code is executed on chain B).
func (*Coordinator) ChanCloseInit ¶
func (c *Coordinator) ChanCloseInit( ctx context.Context, source, counterparty *Chain, sourceChannel TestChannel, ) error
ChanCloseInit closes a channel on chain A to chain B (this code is executed on chain A).
func (*Coordinator) ChanOpenAck ¶
func (c *Coordinator) ChanOpenAck( ctx context.Context, source, counterparty *Chain, sourceChannel, counterpartyChannel TestChannel, ) error
ChanOpenAck relays acceptance of a channel open attempt from chain B back to chain A (this code is executed on chain A).
func (*Coordinator) ChanOpenConfirm ¶
func (c *Coordinator) ChanOpenConfirm( ctx context.Context, source, counterparty *Chain, sourceChannel, counterpartyChannel TestChannel, ) error
ChanOpenConfirm confirms opening of a channel on chain A to chain B, after which the channel is open on both chains (this code is executed on chain B).
func (*Coordinator) ChanOpenInit ¶
func (c *Coordinator) ChanOpenInit( ctx context.Context, source, counterparty *Chain, connection, counterpartyConnection *TestConnection, sourcePortID, counterpartyPortID string, order channeltypes.Channel_Order, ) (TestChannel, 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) ChanOpenTry ¶
func (c *Coordinator) ChanOpenTry( ctx context.Context, source, counterparty *Chain, sourceChannel, counterpartyChannel *TestChannel, connection *TestConnection, order channeltypes.Channel_Order, ) error
ChanOpenTry relays notice of a channel open attempt on chain A to chain B (this code is executed on chain B).
func (*Coordinator) CloseChannel ¶
func (c *Coordinator) CloseChannel( ctx context.Context, chainA, chainB *Chain, chanA, chanB TestChannel, )
CloseChannel constructs and executes channel closing messages in order to transition the channel to the CLOSED state on chainA and chainB. The function expects the channels to be successfully closed otherwise testing will fail.
func (*Coordinator) ConnOpenAck ¶
func (c *Coordinator) ConnOpenAck( ctx context.Context, source, counterparty *Chain, sourceConnection, counterpartyConnection *TestConnection, ) error
ConnOpenAck initializes a connection on the source chain with the state OPEN using the OpenAck handshake call.
func (*Coordinator) ConnOpenConfirm ¶
func (c *Coordinator) ConnOpenConfirm( ctx context.Context, source, counterparty *Chain, sourceConnection, counterpartyConnection *TestConnection, ) error
ConnOpenConfirm initializes a connection on the source chain with the state OPEN using the OpenConfirm handshake call.
func (Coordinator) ConnOpenInit ¶
func (c Coordinator) ConnOpenInit( ctx context.Context, source, counterparty *Chain, clientID, counterpartyClientID string, ) (*TestConnection, *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) ConnOpenTry ¶
func (c *Coordinator) ConnOpenTry( ctx context.Context, source, counterparty *Chain, sourceConnection, counterpartyConnection *TestConnection, ) error
ConnOpenTry initializes a connection on the source chain with the state TRYOPEN using the OpenTry handshake call.
func (*Coordinator) CreateChannel ¶
func (c *Coordinator) CreateChannel( ctx context.Context, chainA, chainB *Chain, connA, connB *TestConnection, sourcePortID, counterpartyPortID string, order channeltypes.Channel_Order, ) (TestChannel, 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 (*Coordinator) CreateConnection ¶
func (c *Coordinator) CreateConnection( ctx context.Context, chainA, chainB *Chain, clientA, clientB string, ) (*TestConnection, *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) GetChain ¶
func (c Coordinator) GetChain(idx int) *Chain
func (*Coordinator) HandlePacketAcknowledgement ¶
func (c *Coordinator) HandlePacketAcknowledgement( ctx context.Context, source, counterparty *Chain, sourceChannel, counterpartyChannel TestChannel, packet channeltypes.Packet, acknowledgement []byte, ) error
func (*Coordinator) HandlePacketRecv ¶
func (c *Coordinator) HandlePacketRecv( ctx context.Context, source, counterparty *Chain, sourceChannel, counterpartyChannel TestChannel, packet channeltypes.Packet, ) error
func (*Coordinator) SendPacket ¶
func (c *Coordinator) SendPacket( ctx context.Context, source, counterparty *Chain, packet channeltypes.Packet, 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) SetupClientConnections ¶
func (coord *Coordinator) SetupClientConnections( ctx context.Context, chainA, chainB *Chain, clientType string, ) (string, string, *TestConnection, *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( ctx context.Context, chainA, chainB *Chain, 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) UpdateClient ¶
func (*Coordinator) UpdateHeaders ¶
func (coord *Coordinator) UpdateHeaders()
type TestChannel ¶
type TestChannel struct { PortID string ID string ClientID string CounterpartyClientID string Version string }
TestChannel is a testing helper struct to keep track of the portID and channelID used in creating and interacting with a channel. The clientID and counterparty client ID are also tracked to cut down on querying and argument passing.
type TestConnection ¶
type TestConnection struct { ID string ClientID string CounterpartyClientID string NextChannelVersion string Channels []TestChannel }
TestConnection is a testing helper struct to keep track of the connectionID, source clientID, counterparty clientID, and the next channel version used in creating and interacting with a connection.