Documentation ¶
Index ¶
- Constants
- 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) 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) Init() 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) 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) 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" DefaultDelayPeriod uint64 = 0 DefaultPrefix = "ibc" TransferPort = "transfer" RelayerKeyIndex uint32 = 0 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
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) 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) ChanOpenAck ¶
func (c *Coordinator) ChanOpenAck( ctx context.Context, source, counterparty *Chain, sourceChannel, counterpartyChannel TestChannel, ) error
ConnOpenAck relays acceptance of a connection 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
ConnOpenConfirm confirms opening of a connection on chain A to chain B, after which the connection 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
ConnOpenTry relays notice of a connection attempt on chain A to chain B (this code is executed on chain B).
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.