x/ibc: remove ID from ConnectionEnd (#6814)

* remove connection id

* various test and code fixes

* fix tests

* Update proto/ibc/connection/connection.proto

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>

* rename utils.go to parse.go in host

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
This commit is contained in:
colin axner 2020-07-22 15:59:15 +02:00 committed by GitHub
parent e9627abc54
commit ef0a7344af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 563 additions and 177 deletions

View File

@ -34,9 +34,8 @@ message MsgConnectionOpenTry {
(gogoproto.moretags) = "yaml:\"connection_id\"" (gogoproto.moretags) = "yaml:\"connection_id\""
]; ];
Counterparty counterparty = 3 [(gogoproto.nullable) = false]; Counterparty counterparty = 3 [(gogoproto.nullable) = false];
repeated string counterparty_versions = 4 [ repeated string counterparty_versions = 4
(gogoproto.moretags) = "yaml:\"counterparty_versions\"" [(gogoproto.moretags) = "yaml:\"counterparty_versions\""];
];
// proof of the initialization the connection on Chain A: `UNITIALIZED -> // proof of the initialization the connection on Chain A: `UNITIALIZED ->
// INIT` // INIT`
bytes proof_init = 5 [(gogoproto.moretags) = "yaml:\"proof_init\""]; bytes proof_init = 5 [(gogoproto.moretags) = "yaml:\"proof_init\""];
@ -90,6 +89,24 @@ message MsgConnectionOpenConfirm {
// separate one. NOTE: there must only be 2 defined ConnectionEnds to establish // separate one. NOTE: there must only be 2 defined ConnectionEnds to establish
// a connection between two chains. // a connection between two chains.
message ConnectionEnd { message ConnectionEnd {
option (gogoproto.goproto_getters) = false;
// client associated with this connection.
string client_id = 1 [
(gogoproto.customname) = "ClientID",
(gogoproto.moretags) = "yaml:\"client_id\""
];
// IBC version which can be utilised to determine encodings or protocols for
// channels or packets utilising this connection
repeated string versions = 2;
// current state of the connection end.
State state = 3;
// counterparty chain associated with this connection.
Counterparty counterparty = 4 [(gogoproto.nullable) = false];
}
// IdentifiedConnection defines a connection with additional connection
// identifier field.
message IdentifiedConnection {
option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_getters) = false;
// connection identifier. // connection identifier.
string id = 1 string id = 1

View File

@ -47,7 +47,7 @@ message QueryConnectionsRequest {
// QueryConnectionsResponse is the response type for the Query/Connections RPC method. // QueryConnectionsResponse is the response type for the Query/Connections RPC method.
message QueryConnectionsResponse { message QueryConnectionsResponse {
// list of stored connections of the chain. // list of stored connections of the chain.
repeated ibc.connection.ConnectionEnd connections = 1; repeated ibc.connection.IdentifiedConnection connections = 1;
// pagination response // pagination response
cosmos.query.PageResponse pagination = 2; cosmos.query.PageResponse pagination = 2;
// query block height // query block height
@ -72,4 +72,4 @@ message QueryClientConnectionsResponse {
string proof_path = 3; string proof_path = 3;
// height at which the proof was generated // height at which the proof was generated
uint64 proof_height = 4; uint64 proof_height = 4;
} }

View File

@ -56,7 +56,7 @@ func queryConnectionABCI(clientCtx client.Context, connectionID string) (*types.
return nil, err return nil, err
} }
return types.NewQueryConnectionResponse(connection, proofBz, res.Height), nil return types.NewQueryConnectionResponse(connectionID, connection, proofBz, res.Height), nil
} }
// QueryClientConnections queries the connection paths registered for a particular client. // QueryClientConnections queries the connection paths registered for a particular client.

View File

@ -6,7 +6,6 @@ import (
// ConnectionI describes the required methods for a connection. // ConnectionI describes the required methods for a connection.
type ConnectionI interface { type ConnectionI interface {
GetID() string
GetClientID() string GetClientID() string
GetState() int32 GetState() int32
GetCounterparty() CounterpartyI GetCounterparty() CounterpartyI

View File

@ -10,7 +10,8 @@ import (
// state. // state.
func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs types.GenesisState) { func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs types.GenesisState) {
for _, connection := range gs.Connections { for _, connection := range gs.Connections {
k.SetConnection(ctx, connection.ID, connection) conn := types.NewConnectionEnd(connection.State, connection.ClientID, connection.Counterparty, connection.Versions)
k.SetConnection(ctx, connection.ID, conn)
} }
for _, connPaths := range gs.ClientConnectionPaths { for _, connPaths := range gs.ClientConnectionPaths {
k.SetClientConnectionPaths(ctx, connPaths.ClientID, connPaths.Paths) k.SetClientConnectionPaths(ctx, connPaths.ClientID, connPaths.Paths)

View File

@ -49,16 +49,22 @@ func (q Keeper) Connections(c context.Context, req *types.QueryConnectionsReques
ctx := sdk.UnwrapSDKContext(c) ctx := sdk.UnwrapSDKContext(c)
connections := []*types.ConnectionEnd{} connections := []*types.IdentifiedConnection{}
store := prefix.NewStore(ctx.KVStore(q.storeKey), host.KeyConnectionPrefix) store := prefix.NewStore(ctx.KVStore(q.storeKey), host.KeyConnectionPrefix)
pageRes, err := query.Paginate(store, req.Pagination, func(_, value []byte) error { pageRes, err := query.Paginate(store, req.Pagination, func(key, value []byte) error {
var result types.ConnectionEnd var result types.ConnectionEnd
if err := q.cdc.UnmarshalBinaryBare(value, &result); err != nil { if err := q.cdc.UnmarshalBinaryBare(value, &result); err != nil {
return err return err
} }
connections = append(connections, &result) connectionID, err := host.ParseConnectionPath(string(key))
if err != nil {
return err
}
identifiedConnection := types.NewIdentifiedConnection(connectionID, result)
connections = append(connections, &identifiedConnection)
return nil return nil
}) })

View File

@ -50,7 +50,7 @@ func (suite *KeeperTestSuite) TestQueryConnection() {
connB := suite.chainB.GetFirstTestConnection(clientB, clientA) connB := suite.chainB.GetFirstTestConnection(clientB, clientA)
counterparty := types.NewCounterparty(clientB, connB.ID, suite.chainB.GetPrefix()) counterparty := types.NewCounterparty(clientB, connB.ID, suite.chainB.GetPrefix())
expConnection = types.NewConnectionEnd(types.INIT, connA.ID, clientA, counterparty, types.GetCompatibleEncodedVersions()) expConnection = types.NewConnectionEnd(types.INIT, clientA, counterparty, types.GetCompatibleEncodedVersions())
suite.chainA.App.IBCKeeper.ConnectionKeeper.SetConnection(suite.chainA.GetContext(), connA.ID, expConnection) suite.chainA.App.IBCKeeper.ConnectionKeeper.SetConnection(suite.chainA.GetContext(), connA.ID, expConnection)
req = &types.QueryConnectionRequest{ req = &types.QueryConnectionRequest{
@ -84,7 +84,7 @@ func (suite *KeeperTestSuite) TestQueryConnection() {
func (suite *KeeperTestSuite) TestQueryConnections() { func (suite *KeeperTestSuite) TestQueryConnections() {
var ( var (
req *types.QueryConnectionsRequest req *types.QueryConnectionsRequest
expConnections = []*types.ConnectionEnd{} expConnections = []*types.IdentifiedConnection{}
) )
testCases := []struct { testCases := []struct {
@ -119,11 +119,15 @@ func (suite *KeeperTestSuite) TestQueryConnections() {
counterparty2 := types.NewCounterparty(clientB, connB1.ID, suite.chainB.GetPrefix()) counterparty2 := types.NewCounterparty(clientB, connB1.ID, suite.chainB.GetPrefix())
counterparty3 := types.NewCounterparty(clientB1, connB2.ID, suite.chainB.GetPrefix()) counterparty3 := types.NewCounterparty(clientB1, connB2.ID, suite.chainB.GetPrefix())
conn1 := types.NewConnectionEnd(types.OPEN, connA0.ID, clientA, counterparty1, types.GetCompatibleEncodedVersions()) conn1 := types.NewConnectionEnd(types.OPEN, clientA, counterparty1, types.GetCompatibleEncodedVersions())
conn2 := types.NewConnectionEnd(types.INIT, connA1.ID, clientA, counterparty2, types.GetCompatibleEncodedVersions()) conn2 := types.NewConnectionEnd(types.INIT, clientA, counterparty2, types.GetCompatibleEncodedVersions())
conn3 := types.NewConnectionEnd(types.OPEN, connA2.ID, clientA1, counterparty3, types.GetCompatibleEncodedVersions()) conn3 := types.NewConnectionEnd(types.OPEN, clientA1, counterparty3, types.GetCompatibleEncodedVersions())
expConnections = []*types.ConnectionEnd{&conn1, &conn2, &conn3} iconn1 := types.NewIdentifiedConnection(connA0.ID, conn1)
iconn2 := types.NewIdentifiedConnection(connA1.ID, conn2)
iconn3 := types.NewIdentifiedConnection(connA2.ID, conn3)
expConnections = []*types.IdentifiedConnection{&iconn1, &iconn2, &iconn3}
req = &types.QueryConnectionsRequest{ req = &types.QueryConnectionsRequest{
Pagination: &query.PageRequest{ Pagination: &query.PageRequest{

View File

@ -26,7 +26,7 @@ func (k Keeper) ConnOpenInit(
} }
// connection defines chain A's ConnectionEnd // connection defines chain A's ConnectionEnd
connection := types.NewConnectionEnd(types.INIT, connectionID, clientID, counterparty, types.GetCompatibleEncodedVersions()) connection := types.NewConnectionEnd(types.INIT, clientID, counterparty, types.GetCompatibleEncodedVersions())
k.SetConnection(ctx, connectionID, connection) k.SetConnection(ctx, connectionID, connection)
if err := k.addConnectionToClient(ctx, clientID, connectionID); err != nil { if err := k.addConnectionToClient(ctx, clientID, connectionID); err != nil {
@ -70,7 +70,7 @@ func (k Keeper) ConnOpenTry(
// NOTE: chain A's counterparty is chain B (i.e where this code is executed) // NOTE: chain A's counterparty is chain B (i.e where this code is executed)
prefix := k.GetCommitmentPrefix() prefix := k.GetCommitmentPrefix()
expectedCounterparty := types.NewCounterparty(clientID, connectionID, commitmenttypes.NewMerklePrefix(prefix.Bytes())) expectedCounterparty := types.NewCounterparty(clientID, connectionID, commitmenttypes.NewMerklePrefix(prefix.Bytes()))
expectedConnection := types.NewConnectionEnd(types.INIT, counterparty.ConnectionID, counterparty.ClientID, expectedCounterparty, counterpartyVersions) expectedConnection := types.NewConnectionEnd(types.INIT, counterparty.ClientID, expectedCounterparty, counterpartyVersions)
// chain B picks a version from Chain A's available versions that is compatible // chain B picks a version from Chain A's available versions that is compatible
// with the supported IBC versions // with the supported IBC versions
@ -80,7 +80,7 @@ func (k Keeper) ConnOpenTry(
} }
// connection defines chain B's ConnectionEnd // connection defines chain B's ConnectionEnd
connection := types.NewConnectionEnd(types.UNINITIALIZED, connectionID, clientID, counterparty, []string{version}) connection := types.NewConnectionEnd(types.UNINITIALIZED, clientID, counterparty, []string{version})
// Check that ChainA committed expectedConnectionEnd to its state // Check that ChainA committed expectedConnectionEnd to its state
if err := k.VerifyConnectionState( if err := k.VerifyConnectionState(
@ -183,7 +183,7 @@ func (k Keeper) ConnOpenAck(
prefix := k.GetCommitmentPrefix() prefix := k.GetCommitmentPrefix()
expectedCounterparty := types.NewCounterparty(connection.ClientID, connectionID, commitmenttypes.NewMerklePrefix(prefix.Bytes())) expectedCounterparty := types.NewCounterparty(connection.ClientID, connectionID, commitmenttypes.NewMerklePrefix(prefix.Bytes()))
expectedConnection := types.NewConnectionEnd(types.TRYOPEN, connection.Counterparty.ConnectionID, connection.Counterparty.ClientID, expectedCounterparty, []string{encodedVersion}) expectedConnection := types.NewConnectionEnd(types.TRYOPEN, connection.Counterparty.ClientID, expectedCounterparty, []string{encodedVersion})
// Ensure that ChainB stored expected connectionEnd in its state during ConnOpenTry // Ensure that ChainB stored expected connectionEnd in its state during ConnOpenTry
if err := k.VerifyConnectionState( if err := k.VerifyConnectionState(
@ -235,7 +235,7 @@ func (k Keeper) ConnOpenConfirm(
prefix := k.GetCommitmentPrefix() prefix := k.GetCommitmentPrefix()
expectedCounterparty := types.NewCounterparty(connection.ClientID, connectionID, commitmenttypes.NewMerklePrefix(prefix.Bytes())) expectedCounterparty := types.NewCounterparty(connection.ClientID, connectionID, commitmenttypes.NewMerklePrefix(prefix.Bytes()))
expectedConnection := types.NewConnectionEnd(types.OPEN, connection.Counterparty.ConnectionID, connection.Counterparty.ClientID, expectedCounterparty, connection.Versions) expectedConnection := types.NewConnectionEnd(types.OPEN, connection.Counterparty.ClientID, expectedCounterparty, connection.Versions)
// Check that connection on ChainA is open // Check that connection on ChainA is open
if err := k.VerifyConnectionState( if err := k.VerifyConnectionState(

View File

@ -130,7 +130,7 @@ func (k Keeper) GetAllClientConnectionPaths(ctx sdk.Context) []types.ConnectionP
// IterateConnections provides an iterator over all ConnectionEnd objects. // IterateConnections provides an iterator over all ConnectionEnd objects.
// For each ConnectionEnd, cb will be called. If the cb returns true, the // For each ConnectionEnd, cb will be called. If the cb returns true, the
// iterator will close and stop. // iterator will close and stop.
func (k Keeper) IterateConnections(ctx sdk.Context, cb func(types.ConnectionEnd) bool) { func (k Keeper) IterateConnections(ctx sdk.Context, cb func(types.IdentifiedConnection) bool) {
store := ctx.KVStore(k.storeKey) store := ctx.KVStore(k.storeKey)
iterator := sdk.KVStorePrefixIterator(store, host.KeyConnectionPrefix) iterator := sdk.KVStorePrefixIterator(store, host.KeyConnectionPrefix)
@ -139,15 +139,17 @@ func (k Keeper) IterateConnections(ctx sdk.Context, cb func(types.ConnectionEnd)
var connection types.ConnectionEnd var connection types.ConnectionEnd
k.cdc.MustUnmarshalBinaryBare(iterator.Value(), &connection) k.cdc.MustUnmarshalBinaryBare(iterator.Value(), &connection)
if cb(connection) { connectionID := host.MustParseConnectionPath(string(iterator.Key()))
identifiedConnection := types.NewIdentifiedConnection(connectionID, connection)
if cb(identifiedConnection) {
break break
} }
} }
} }
// GetAllConnections returns all stored ConnectionEnd objects. // GetAllConnections returns all stored ConnectionEnd objects.
func (k Keeper) GetAllConnections(ctx sdk.Context) (connections []types.ConnectionEnd) { func (k Keeper) GetAllConnections(ctx sdk.Context) (connections []types.IdentifiedConnection) {
k.IterateConnections(ctx, func(connection types.ConnectionEnd) bool { k.IterateConnections(ctx, func(connection types.IdentifiedConnection) bool {
connections = append(connections, connection) connections = append(connections, connection)
return false return false
}) })

View File

@ -61,9 +61,13 @@ func (suite KeeperTestSuite) TestGetAllConnections() {
counterpartyB0 := types.NewCounterparty(clientB, connB0.ID, suite.chainB.GetPrefix()) // connection B0 counterpartyB0 := types.NewCounterparty(clientB, connB0.ID, suite.chainB.GetPrefix()) // connection B0
counterpartyB1 := types.NewCounterparty(clientB, connB1.ID, suite.chainB.GetPrefix()) // connection B1 counterpartyB1 := types.NewCounterparty(clientB, connB1.ID, suite.chainB.GetPrefix()) // connection B1
conn1 := types.NewConnectionEnd(types.OPEN, connA0.ID, clientA, counterpartyB0, types.GetCompatibleEncodedVersions()) // A0 - B0 conn1 := types.NewConnectionEnd(types.OPEN, clientA, counterpartyB0, types.GetCompatibleEncodedVersions()) // A0 - B0
conn2 := types.NewConnectionEnd(types.OPEN, connA1.ID, clientA, counterpartyB1, types.GetCompatibleEncodedVersions()) // A1 - B1 conn2 := types.NewConnectionEnd(types.OPEN, clientA, counterpartyB1, types.GetCompatibleEncodedVersions()) // A1 - B1
expConnections := []types.ConnectionEnd{conn1, conn2}
iconn1 := types.NewIdentifiedConnection(connA0.ID, conn1)
iconn2 := types.NewIdentifiedConnection(connA1.ID, conn2)
expConnections := []types.IdentifiedConnection{iconn1, iconn2}
connections := suite.chainA.App.IBCKeeper.ConnectionKeeper.GetAllConnections(suite.chainA.GetContext()) connections := suite.chainA.App.IBCKeeper.ConnectionKeeper.GetAllConnections(suite.chainA.GetContext())
suite.Require().Len(connections, len(expConnections)) suite.Require().Len(connections, len(expConnections))

View File

@ -17,14 +17,15 @@ func TestDecodeStore(t *testing.T) {
app := simapp.Setup(false) app := simapp.Setup(false)
cdc := app.AppCodec() cdc := app.AppCodec()
connectionID := "connectionidone"
connection := types.ConnectionEnd{ connection := types.ConnectionEnd{
ID: "connectionidone",
ClientID: "clientidone", ClientID: "clientidone",
Versions: []string{"1.0"}, Versions: []string{"1.0"},
} }
paths := types.ClientPaths{ paths := types.ClientPaths{
Paths: []string{connection.ID}, Paths: []string{connectionID},
} }
kvPairs := tmkv.Pairs{ kvPairs := tmkv.Pairs{
@ -33,7 +34,7 @@ func TestDecodeStore(t *testing.T) {
Value: cdc.MustMarshalBinaryBare(&paths), Value: cdc.MustMarshalBinaryBare(&paths),
}, },
tmkv.Pair{ tmkv.Pair{
Key: host.KeyConnection(connection.ID), Key: host.KeyConnection(connectionID),
Value: cdc.MustMarshalBinaryBare(&connection), Value: cdc.MustMarshalBinaryBare(&connection),
}, },
tmkv.Pair{ tmkv.Pair{

View File

@ -11,9 +11,8 @@ import (
var _ exported.ConnectionI = (*ConnectionEnd)(nil) var _ exported.ConnectionI = (*ConnectionEnd)(nil)
// NewConnectionEnd creates a new ConnectionEnd instance. // NewConnectionEnd creates a new ConnectionEnd instance.
func NewConnectionEnd(state State, connectionID, clientID string, counterparty Counterparty, versions []string) ConnectionEnd { func NewConnectionEnd(state State, clientID string, counterparty Counterparty, versions []string) ConnectionEnd {
return ConnectionEnd{ return ConnectionEnd{
ID: connectionID,
ClientID: clientID, ClientID: clientID,
Versions: versions, Versions: versions,
State: state, State: state,
@ -26,11 +25,6 @@ func (c ConnectionEnd) GetState() int32 {
return int32(c.State) return int32(c.State)
} }
// GetID implements the Connection interface
func (c ConnectionEnd) GetID() string {
return c.ID
}
// GetClientID implements the Connection interface // GetClientID implements the Connection interface
func (c ConnectionEnd) GetClientID() string { func (c ConnectionEnd) GetClientID() string {
return c.ClientID return c.ClientID
@ -50,9 +44,6 @@ func (c ConnectionEnd) GetVersions() []string {
// NOTE: the protocol supports that the connection and client IDs match the // NOTE: the protocol supports that the connection and client IDs match the
// counterparty's. // counterparty's.
func (c ConnectionEnd) ValidateBasic() error { func (c ConnectionEnd) ValidateBasic() error {
if err := host.ConnectionIdentifierValidator(c.ID); err != nil {
return sdkerrors.Wrap(err, "invalid connection ID")
}
if err := host.ClientIdentifierValidator(c.ClientID); err != nil { if err := host.ClientIdentifierValidator(c.ClientID); err != nil {
return sdkerrors.Wrap(err, "invalid client ID") return sdkerrors.Wrap(err, "invalid client ID")
} }
@ -106,3 +97,23 @@ func (c Counterparty) ValidateBasic() error {
} }
return nil return nil
} }
// NewIdentifiedConnection creates a new IdentifiedConnection instance
func NewIdentifiedConnection(connectionID string, conn ConnectionEnd) IdentifiedConnection {
return IdentifiedConnection{
ID: connectionID,
ClientID: conn.ClientID,
Versions: conn.Versions,
State: conn.State,
Counterparty: conn.Counterparty,
}
}
// ValidateBasic performs a basic validation of the connection identifier and connection fields.
func (ic IdentifiedConnection) ValidateBasic() error {
if err := host.ConnectionIdentifierValidator(ic.ID); err != nil {
return sdkerrors.Wrap(err, "invalid connection ID")
}
connection := NewConnectionEnd(ic.State, ic.ClientID, ic.Counterparty, ic.Versions)
return connection.ValidateBasic()
}

View File

@ -418,8 +418,6 @@ func (m *MsgConnectionOpenConfirm) GetSigner() github_com_cosmos_cosmos_sdk_type
// separate one. NOTE: there must only be 2 defined ConnectionEnds to establish // separate one. NOTE: there must only be 2 defined ConnectionEnds to establish
// a connection between two chains. // a connection between two chains.
type ConnectionEnd struct { type ConnectionEnd struct {
// connection identifier.
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" yaml:"id"`
// client associated with this connection. // client associated with this connection.
ClientID string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty" yaml:"client_id"` ClientID string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty" yaml:"client_id"`
// IBC version which can be utilised to determine encodings or protocols for // IBC version which can be utilised to determine encodings or protocols for
@ -464,6 +462,55 @@ func (m *ConnectionEnd) XXX_DiscardUnknown() {
var xxx_messageInfo_ConnectionEnd proto.InternalMessageInfo var xxx_messageInfo_ConnectionEnd proto.InternalMessageInfo
// IdentifiedConnection defines a connection with additional connection
// identifier field.
type IdentifiedConnection struct {
// connection identifier.
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" yaml:"id"`
// client associated with this connection.
ClientID string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty" yaml:"client_id"`
// IBC version which can be utilised to determine encodings or protocols for
// channels or packets utilising this connection
Versions []string `protobuf:"bytes,3,rep,name=versions,proto3" json:"versions,omitempty"`
// current state of the connection end.
State State `protobuf:"varint,4,opt,name=state,proto3,enum=ibc.connection.State" json:"state,omitempty"`
// counterparty chain associated with this connection.
Counterparty Counterparty `protobuf:"bytes,5,opt,name=counterparty,proto3" json:"counterparty"`
}
func (m *IdentifiedConnection) Reset() { *m = IdentifiedConnection{} }
func (m *IdentifiedConnection) String() string { return proto.CompactTextString(m) }
func (*IdentifiedConnection) ProtoMessage() {}
func (*IdentifiedConnection) Descriptor() ([]byte, []int) {
return fileDescriptor_3bf62bacf5a27ee9, []int{5}
}
func (m *IdentifiedConnection) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *IdentifiedConnection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_IdentifiedConnection.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *IdentifiedConnection) XXX_Merge(src proto.Message) {
xxx_messageInfo_IdentifiedConnection.Merge(m, src)
}
func (m *IdentifiedConnection) XXX_Size() int {
return m.Size()
}
func (m *IdentifiedConnection) XXX_DiscardUnknown() {
xxx_messageInfo_IdentifiedConnection.DiscardUnknown(m)
}
var xxx_messageInfo_IdentifiedConnection proto.InternalMessageInfo
// Counterparty defines the counterparty chain associated with a connection end. // Counterparty defines the counterparty chain associated with a connection end.
type Counterparty struct { type Counterparty struct {
// identifies the client on the counterparty chain associated with a given // identifies the client on the counterparty chain associated with a given
@ -480,7 +527,7 @@ func (m *Counterparty) Reset() { *m = Counterparty{} }
func (m *Counterparty) String() string { return proto.CompactTextString(m) } func (m *Counterparty) String() string { return proto.CompactTextString(m) }
func (*Counterparty) ProtoMessage() {} func (*Counterparty) ProtoMessage() {}
func (*Counterparty) Descriptor() ([]byte, []int) { func (*Counterparty) Descriptor() ([]byte, []int) {
return fileDescriptor_3bf62bacf5a27ee9, []int{5} return fileDescriptor_3bf62bacf5a27ee9, []int{6}
} }
func (m *Counterparty) XXX_Unmarshal(b []byte) error { func (m *Counterparty) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -519,7 +566,7 @@ func (m *ClientPaths) Reset() { *m = ClientPaths{} }
func (m *ClientPaths) String() string { return proto.CompactTextString(m) } func (m *ClientPaths) String() string { return proto.CompactTextString(m) }
func (*ClientPaths) ProtoMessage() {} func (*ClientPaths) ProtoMessage() {}
func (*ClientPaths) Descriptor() ([]byte, []int) { func (*ClientPaths) Descriptor() ([]byte, []int) {
return fileDescriptor_3bf62bacf5a27ee9, []int{6} return fileDescriptor_3bf62bacf5a27ee9, []int{7}
} }
func (m *ClientPaths) XXX_Unmarshal(b []byte) error { func (m *ClientPaths) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -567,7 +614,7 @@ func (m *ConnectionPaths) Reset() { *m = ConnectionPaths{} }
func (m *ConnectionPaths) String() string { return proto.CompactTextString(m) } func (m *ConnectionPaths) String() string { return proto.CompactTextString(m) }
func (*ConnectionPaths) ProtoMessage() {} func (*ConnectionPaths) ProtoMessage() {}
func (*ConnectionPaths) Descriptor() ([]byte, []int) { func (*ConnectionPaths) Descriptor() ([]byte, []int) {
return fileDescriptor_3bf62bacf5a27ee9, []int{7} return fileDescriptor_3bf62bacf5a27ee9, []int{8}
} }
func (m *ConnectionPaths) XXX_Unmarshal(b []byte) error { func (m *ConnectionPaths) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -623,7 +670,7 @@ func (m *Version) Reset() { *m = Version{} }
func (m *Version) String() string { return proto.CompactTextString(m) } func (m *Version) String() string { return proto.CompactTextString(m) }
func (*Version) ProtoMessage() {} func (*Version) ProtoMessage() {}
func (*Version) Descriptor() ([]byte, []int) { func (*Version) Descriptor() ([]byte, []int) {
return fileDescriptor_3bf62bacf5a27ee9, []int{8} return fileDescriptor_3bf62bacf5a27ee9, []int{9}
} }
func (m *Version) XXX_Unmarshal(b []byte) error { func (m *Version) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -659,6 +706,7 @@ func init() {
proto.RegisterType((*MsgConnectionOpenAck)(nil), "ibc.connection.MsgConnectionOpenAck") proto.RegisterType((*MsgConnectionOpenAck)(nil), "ibc.connection.MsgConnectionOpenAck")
proto.RegisterType((*MsgConnectionOpenConfirm)(nil), "ibc.connection.MsgConnectionOpenConfirm") proto.RegisterType((*MsgConnectionOpenConfirm)(nil), "ibc.connection.MsgConnectionOpenConfirm")
proto.RegisterType((*ConnectionEnd)(nil), "ibc.connection.ConnectionEnd") proto.RegisterType((*ConnectionEnd)(nil), "ibc.connection.ConnectionEnd")
proto.RegisterType((*IdentifiedConnection)(nil), "ibc.connection.IdentifiedConnection")
proto.RegisterType((*Counterparty)(nil), "ibc.connection.Counterparty") proto.RegisterType((*Counterparty)(nil), "ibc.connection.Counterparty")
proto.RegisterType((*ClientPaths)(nil), "ibc.connection.ClientPaths") proto.RegisterType((*ClientPaths)(nil), "ibc.connection.ClientPaths")
proto.RegisterType((*ConnectionPaths)(nil), "ibc.connection.ConnectionPaths") proto.RegisterType((*ConnectionPaths)(nil), "ibc.connection.ConnectionPaths")
@ -668,65 +716,65 @@ func init() {
func init() { proto.RegisterFile("ibc/connection/connection.proto", fileDescriptor_3bf62bacf5a27ee9) } func init() { proto.RegisterFile("ibc/connection/connection.proto", fileDescriptor_3bf62bacf5a27ee9) }
var fileDescriptor_3bf62bacf5a27ee9 = []byte{ var fileDescriptor_3bf62bacf5a27ee9 = []byte{
// 914 bytes of a gzipped FileDescriptorProto // 926 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x56, 0xcd, 0x6e, 0xdb, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x56, 0xcd, 0x6e, 0xdb, 0x46,
0x10, 0x16, 0x29, 0xea, 0x6f, 0x2c, 0xdb, 0x0a, 0x23, 0x37, 0x04, 0x1b, 0x90, 0x2c, 0x73, 0x11, 0x10, 0x16, 0x29, 0xea, 0x6f, 0x2c, 0xdb, 0x0a, 0x23, 0x37, 0x84, 0x1a, 0x90, 0x2c, 0x73, 0x11,
0x5a, 0x58, 0x6a, 0x92, 0x22, 0x07, 0x03, 0x3d, 0x48, 0xb2, 0x8c, 0x12, 0xad, 0x1d, 0x81, 0x96, 0x5a, 0x58, 0x6a, 0x92, 0x22, 0x07, 0x03, 0x3d, 0x48, 0xb2, 0x8c, 0x12, 0xad, 0x1d, 0x81, 0x96,
0x0b, 0x34, 0x17, 0x41, 0x26, 0x57, 0xf2, 0x42, 0x16, 0x29, 0x90, 0xeb, 0x22, 0x7e, 0x83, 0xc0, 0x0b, 0x34, 0x17, 0x41, 0x26, 0x57, 0xf2, 0x42, 0x16, 0x29, 0x90, 0xeb, 0x22, 0x7e, 0x83, 0xc0,
0xa7, 0x5e, 0x7b, 0x30, 0x50, 0x20, 0x2f, 0xd1, 0x27, 0x28, 0x72, 0xcc, 0xb1, 0x27, 0xa2, 0x90, 0xa7, 0xf6, 0xd8, 0x83, 0x81, 0x02, 0x79, 0x89, 0x3e, 0x41, 0x91, 0x63, 0x8e, 0x3d, 0x11, 0x85,
0xdf, 0x40, 0xe8, 0xa9, 0xa7, 0x82, 0xbb, 0x14, 0x49, 0x59, 0x46, 0x8b, 0x54, 0x3e, 0x14, 0x39, 0x8c, 0xbe, 0x80, 0xd0, 0x53, 0x4f, 0x05, 0x77, 0xf9, 0x27, 0xdb, 0x68, 0x91, 0xca, 0x87, 0xc2,
0x71, 0x7e, 0xbe, 0x9d, 0xdd, 0x99, 0x6f, 0x38, 0xbb, 0xa0, 0xe2, 0x53, 0xab, 0x61, 0xb9, 0x8e, 0x27, 0xcd, 0xcf, 0xb7, 0xb3, 0x33, 0xf3, 0x8d, 0x86, 0x0b, 0x0a, 0x3e, 0x36, 0x9b, 0xa6, 0x63,
0x83, 0x2c, 0x82, 0x5d, 0x27, 0x25, 0xd6, 0xa7, 0x9e, 0x4b, 0x5c, 0x71, 0x0b, 0x9f, 0x5a, 0xf5, 0xdb, 0xc8, 0x24, 0xd8, 0xb1, 0x53, 0x62, 0x63, 0xe6, 0x3a, 0xc4, 0x11, 0x37, 0xf0, 0xb1, 0xd9,
0xc4, 0x2a, 0x57, 0x47, 0xee, 0xc8, 0xa5, 0xae, 0x46, 0x28, 0x31, 0x94, 0x1c, 0x85, 0x99, 0x4c, 0x48, 0xac, 0xb5, 0xea, 0xd8, 0x19, 0x3b, 0xd4, 0xd5, 0x0c, 0x24, 0x86, 0xaa, 0x85, 0x61, 0xa6,
0x30, 0x99, 0x20, 0x87, 0xa4, 0x44, 0x06, 0xd0, 0x7f, 0xe5, 0x61, 0xe7, 0xd0, 0x1f, 0xb5, 0xe3, 0x53, 0x4c, 0xa6, 0xc8, 0x26, 0x29, 0x91, 0x01, 0xb4, 0x5f, 0x78, 0xd8, 0xda, 0xf7, 0xc6, 0x9d,
0x40, 0x2f, 0xa7, 0xc8, 0x31, 0x1c, 0x4c, 0xc4, 0xaf, 0xa1, 0x64, 0x9d, 0x63, 0xe4, 0x90, 0x3e, 0x38, 0xd0, 0xcb, 0x19, 0xb2, 0x75, 0x1b, 0x13, 0xf1, 0x4b, 0x28, 0x99, 0xa7, 0x18, 0xd9, 0x64,
0xb6, 0x25, 0x4e, 0xe3, 0x6a, 0xa5, 0x96, 0x36, 0x0b, 0xd4, 0x62, 0x9b, 0x1a, 0x8d, 0xfd, 0x79, 0x80, 0x2d, 0x89, 0x53, 0xb9, 0x7a, 0xa9, 0xad, 0xce, 0x7d, 0xa5, 0xd8, 0xa1, 0x46, 0x7d, 0x77,
0xa0, 0x56, 0x2e, 0x07, 0x93, 0xf3, 0x3d, 0x3d, 0x86, 0xe9, 0x66, 0x91, 0xc9, 0x86, 0x2d, 0x1e, 0xe1, 0x2b, 0x95, 0xf3, 0xe1, 0xf4, 0x74, 0x47, 0x8b, 0x61, 0x9a, 0x51, 0x64, 0xb2, 0x6e, 0x89,
0xc2, 0x66, 0x72, 0xba, 0x30, 0x04, 0x4f, 0x43, 0xd4, 0x66, 0x81, 0x5a, 0x4e, 0x76, 0xa3, 0x61, 0xfb, 0xb0, 0x9e, 0x64, 0x17, 0x84, 0xe0, 0x69, 0x88, 0xfa, 0xdc, 0x57, 0xca, 0xc9, 0x6d, 0x34,
0xaa, 0x51, 0x98, 0x34, 0x5c, 0x37, 0xcb, 0x89, 0x6e, 0xd8, 0xe2, 0x01, 0x94, 0x2d, 0xf7, 0xc2, 0x4c, 0x35, 0x0c, 0x93, 0x86, 0x6b, 0x46, 0x39, 0xd1, 0x75, 0x4b, 0xdc, 0x83, 0xb2, 0xe9, 0x9c,
0x21, 0xc8, 0x9b, 0x0e, 0x3c, 0x72, 0x29, 0x65, 0x35, 0xae, 0xb6, 0xf1, 0xec, 0x71, 0x7d, 0xb9, 0xd9, 0x04, 0xb9, 0xb3, 0xa1, 0x4b, 0xce, 0xa5, 0xac, 0xca, 0xd5, 0xd7, 0x9e, 0x3d, 0x6e, 0x2c,
0x0a, 0xf5, 0x76, 0x0a, 0xd3, 0x12, 0xde, 0x05, 0x6a, 0xc6, 0x5c, 0x5a, 0x27, 0x1a, 0x90, 0xf7, 0x77, 0xa1, 0xd1, 0x49, 0x61, 0xda, 0xc2, 0x3b, 0x5f, 0xc9, 0x18, 0x4b, 0xe7, 0x44, 0x1d, 0xf2,
0xf1, 0xc8, 0x41, 0x9e, 0x24, 0x68, 0x5c, 0xad, 0xdc, 0x7a, 0xfa, 0x57, 0xa0, 0xee, 0x8e, 0x30, 0x1e, 0x1e, 0xdb, 0xc8, 0x95, 0x04, 0x95, 0xab, 0x97, 0xdb, 0x4f, 0xff, 0xf2, 0x95, 0xed, 0x31,
0x39, 0xbb, 0x38, 0xad, 0x5b, 0xee, 0xa4, 0x61, 0xb9, 0xfe, 0xc4, 0xf5, 0xa3, 0xcf, 0xae, 0x6f, 0x26, 0x27, 0x67, 0xc7, 0x0d, 0xd3, 0x99, 0x36, 0x4d, 0xc7, 0x9b, 0x3a, 0x5e, 0xf8, 0xb3, 0xed,
0x8f, 0x1b, 0xe4, 0x72, 0x8a, 0xfc, 0x7a, 0xd3, 0xb2, 0x9a, 0xb6, 0xed, 0x21, 0xdf, 0x37, 0xa3, 0x59, 0x93, 0x26, 0x39, 0x9f, 0x21, 0xaf, 0xd1, 0x32, 0xcd, 0x96, 0x65, 0xb9, 0xc8, 0xf3, 0x8c,
0x00, 0xfa, 0x9f, 0x02, 0x54, 0x57, 0x4a, 0xd7, 0xf3, 0x2e, 0x3f, 0xd2, 0xca, 0x9d, 0xc0, 0x4e, 0x30, 0x80, 0xf6, 0xa7, 0x00, 0xd5, 0x1b, 0xad, 0xeb, 0xbb, 0xe7, 0xf7, 0xb4, 0x73, 0x47, 0xb0,
0x5a, 0xef, 0xff, 0x88, 0x3c, 0x1f, 0xbb, 0x8e, 0x2f, 0x09, 0x5a, 0x36, 0xcc, 0x70, 0x1e, 0xa8, 0x95, 0xd6, 0x07, 0xdf, 0x23, 0xd7, 0xc3, 0x8e, 0xed, 0x49, 0x82, 0x9a, 0x0d, 0x2a, 0x5c, 0xf8,
0x8f, 0x17, 0xc7, 0xb9, 0x03, 0xa6, 0x9b, 0xd5, 0xb4, 0xfd, 0xfb, 0xc8, 0x2c, 0x7e, 0x05, 0x30, 0xca, 0xe3, 0x28, 0x9d, 0x5b, 0x60, 0x9a, 0x51, 0x4d, 0xdb, 0xbf, 0x0d, 0xcd, 0xe2, 0x17, 0x00,
0xf5, 0x5c, 0x77, 0xd8, 0xc7, 0x0e, 0x26, 0x52, 0x8e, 0x92, 0xb2, 0x33, 0x0f, 0xd4, 0x07, 0x2c, 0x33, 0xd7, 0x71, 0x46, 0x03, 0x6c, 0x63, 0x22, 0xe5, 0x28, 0x29, 0x5b, 0x0b, 0x5f, 0x79, 0xc0,
0x56, 0xe2, 0xd3, 0xcd, 0x12, 0x55, 0x68, 0x73, 0x7e, 0x06, 0x65, 0xe6, 0x39, 0x43, 0x78, 0x74, 0x62, 0x25, 0x3e, 0xcd, 0x28, 0x51, 0x85, 0x0e, 0xe7, 0x27, 0x50, 0x66, 0x9e, 0x13, 0x84, 0xc7,
0x46, 0xa4, 0xbc, 0xc6, 0xd5, 0x04, 0x73, 0x83, 0xda, 0xbe, 0xa1, 0x26, 0xb1, 0x0d, 0xdb, 0x0c, 0x27, 0x44, 0xca, 0xab, 0x5c, 0x5d, 0x30, 0xd6, 0xa8, 0xed, 0x2b, 0x6a, 0x12, 0x3b, 0xb0, 0xc9,
0x62, 0xb9, 0x8e, 0x8f, 0x1c, 0xff, 0xc2, 0x97, 0x0a, 0x34, 0xba, 0x3c, 0x0f, 0xd4, 0x4f, 0xd2, 0x20, 0xa6, 0x63, 0x7b, 0xc8, 0xf6, 0xce, 0x3c, 0xa9, 0x40, 0xa3, 0xd7, 0x16, 0xbe, 0xf2, 0x51,
0xd1, 0x63, 0x80, 0x6e, 0x6e, 0x51, 0x4b, 0x7b, 0x61, 0x10, 0x0f, 0xa0, 0x12, 0x7b, 0x17, 0x7b, 0x3a, 0x7a, 0x0c, 0xd0, 0x8c, 0x0d, 0x6a, 0xe9, 0x44, 0x06, 0x71, 0x0f, 0x2a, 0xb1, 0x37, 0xba,
0x15, 0xc3, 0xbd, 0x5a, 0x9f, 0xce, 0x03, 0xf5, 0x51, 0x5c, 0xfe, 0x25, 0x84, 0x6e, 0x6e, 0xc7, 0xab, 0x18, 0xdc, 0xd5, 0xfe, 0x78, 0xe1, 0x2b, 0x8f, 0xe2, 0xf6, 0x2f, 0x21, 0x34, 0x63, 0x33,
0xa6, 0xe8, 0x30, 0x49, 0xdb, 0x95, 0xd6, 0x6d, 0xbb, 0xdf, 0xb2, 0x77, 0xb4, 0x5d, 0xd3, 0x1a, 0x36, 0x85, 0xc9, 0x24, 0x63, 0x57, 0x5a, 0x75, 0xec, 0x7e, 0xcd, 0xde, 0x32, 0x76, 0x2d, 0x73,
0xaf, 0xf6, 0x0d, 0xb7, 0x56, 0xdf, 0x48, 0x50, 0x88, 0xb8, 0x63, 0x0d, 0x68, 0x2e, 0x54, 0xf1, 0x72, 0x73, 0x6e, 0xb8, 0x95, 0xe6, 0x46, 0x82, 0x42, 0xc8, 0x1d, 0x1b, 0x40, 0x23, 0x52, 0xc5,
0x29, 0x30, 0x26, 0xfa, 0xc4, 0x63, 0xed, 0x54, 0x6e, 0x55, 0x93, 0x9e, 0x8e, 0x5d, 0xba, 0x59, 0xa7, 0xc0, 0x98, 0x18, 0x10, 0x97, 0x8d, 0x53, 0xb9, 0x5d, 0x4d, 0x66, 0x3a, 0x76, 0x69, 0x46,
0xa4, 0x72, 0xf8, 0x4b, 0xec, 0xdd, 0xe2, 0x4b, 0xa0, 0x35, 0x7c, 0x34, 0x0f, 0xd4, 0x87, 0xe9, 0x91, 0xca, 0xc1, 0x5f, 0x62, 0xe7, 0x1a, 0x5f, 0x02, 0xed, 0xe1, 0xa3, 0x85, 0xaf, 0x3c, 0x4c,
0x55, 0x8b, 0xfa, 0xfd, 0x1b, 0x91, 0xb9, 0x7b, 0x21, 0x32, 0xbf, 0x16, 0x91, 0x85, 0x75, 0x89, 0x9f, 0x8a, 0xfa, 0xf7, 0x6f, 0x44, 0xe6, 0xee, 0x84, 0xc8, 0xfc, 0x4a, 0x44, 0x16, 0x56, 0x25,
0x7c, 0xcb, 0x83, 0xb4, 0x42, 0x64, 0xdb, 0x75, 0x86, 0xd8, 0x9b, 0xdc, 0x37, 0x99, 0x31, 0x65, 0xf2, 0x2d, 0x0f, 0xd2, 0x0d, 0x22, 0x3b, 0x8e, 0x3d, 0xc2, 0xee, 0xf4, 0xae, 0xc9, 0x8c, 0x29,
0x03, 0x6b, 0x4c, 0xe9, 0xbc, 0x83, 0xb2, 0x81, 0x35, 0x5e, 0x50, 0x16, 0xb6, 0xd3, 0x6d, 0xca, 0x1b, 0x9a, 0x13, 0x4a, 0xe7, 0x2d, 0x94, 0x0d, 0xcd, 0x49, 0x44, 0x59, 0x30, 0x4e, 0xd7, 0x29,
0xb2, 0x1f, 0x40, 0xd9, 0x3d, 0x4e, 0xd9, 0x2b, 0x1e, 0x36, 0x93, 0x84, 0x3b, 0x8e, 0x2d, 0x3e, 0xcb, 0x7e, 0x00, 0x65, 0x77, 0xb8, 0x65, 0xff, 0xe0, 0x60, 0x3d, 0x29, 0xb8, 0x6b, 0x5b, 0xcb,
0x01, 0x3e, 0xae, 0xc7, 0xc3, 0x59, 0xa0, 0xf2, 0xb4, 0x0a, 0x25, 0x76, 0xa8, 0x30, 0x75, 0x1e, 0xeb, 0x95, 0xff, 0xe0, 0xf5, 0x5a, 0x83, 0x62, 0xbc, 0xba, 0xb2, 0xc1, 0xea, 0x32, 0x62, 0x5d,
0xdb, 0xcb, 0x33, 0x98, 0xff, 0xe0, 0x19, 0x2c, 0x43, 0x31, 0x9e, 0x6f, 0xd9, 0x70, 0xbe, 0x99, 0xfc, 0x0c, 0x72, 0x1e, 0x19, 0x12, 0x44, 0xd3, 0xde, 0x78, 0xb6, 0x75, 0x7d, 0x49, 0x1e, 0x06,
0xb1, 0x2e, 0x7e, 0x01, 0x39, 0x9f, 0x0c, 0x08, 0xa2, 0xb9, 0x6d, 0x3d, 0xdb, 0xb9, 0x3d, 0x49, 0x4e, 0x83, 0x61, 0x6e, 0x2c, 0xd6, 0xdc, 0x7f, 0x5b, 0xac, 0x3b, 0xc2, 0x9b, 0x9f, 0x95, 0x8c,
0x8f, 0x43, 0xa7, 0xc9, 0x30, 0x2b, 0xd3, 0x37, 0xf7, 0xdf, 0xa6, 0xef, 0x9e, 0xf0, 0xe6, 0x17, 0xf6, 0x23, 0x0f, 0x55, 0xdd, 0x42, 0x36, 0xc1, 0x23, 0x8c, 0xac, 0xa4, 0x62, 0xf1, 0x09, 0xf0,
0x35, 0xa3, 0x07, 0x1c, 0x94, 0xd3, 0xd0, 0xff, 0xd9, 0x55, 0xb3, 0x07, 0xf9, 0xa9, 0x87, 0x86, 0x31, 0xfd, 0x0f, 0xe7, 0xbe, 0xc2, 0xd3, 0x0a, 0x4b, 0xac, 0xc2, 0xa0, 0x34, 0x1e, 0xdf, 0xd7,
0xf8, 0xf5, 0xad, 0x4b, 0x26, 0x7e, 0x73, 0x1c, 0x22, 0x6f, 0x7c, 0x8e, 0xba, 0x14, 0x13, 0xa5, 0x9e, 0xf8, 0x1c, 0x94, 0xd3, 0xd0, 0xff, 0xd9, 0x97, 0x75, 0x07, 0xf2, 0x33, 0x17, 0x8d, 0xf0,
0x19, 0xad, 0x88, 0x12, 0x7c, 0x02, 0x1b, 0xec, 0xe8, 0xdd, 0x01, 0x39, 0xf3, 0xc5, 0x2a, 0xe4, 0xeb, 0x6b, 0xdf, 0xd4, 0xf8, 0x89, 0xb5, 0x8f, 0xdc, 0xc9, 0x29, 0xea, 0x51, 0x4c, 0x58, 0x66,
0xa6, 0xa1, 0x20, 0x71, 0x94, 0x03, 0xa6, 0xe8, 0x43, 0xd8, 0x4e, 0x0e, 0xc7, 0x80, 0x6b, 0xd6, 0x78, 0x22, 0x2c, 0xf0, 0x09, 0xac, 0xb1, 0xd4, 0x7b, 0x43, 0x72, 0xe2, 0x89, 0x55, 0xc8, 0xcd,
0x21, 0xde, 0x87, 0x4f, 0xef, 0xf3, 0x2d, 0x14, 0xa2, 0x6b, 0x4a, 0x54, 0x00, 0xb0, 0x8d, 0x1c, 0x02, 0x41, 0xe2, 0x28, 0x07, 0x4c, 0xd1, 0x46, 0xb0, 0x99, 0x24, 0xc7, 0x80, 0x2b, 0xf6, 0x21,
0x82, 0x87, 0x18, 0x79, 0x6c, 0x03, 0x33, 0x65, 0x09, 0xfb, 0x65, 0x88, 0x06, 0xe4, 0xc2, 0x43, 0xbe, 0x87, 0x4f, 0xdf, 0xf3, 0x35, 0x14, 0xc2, 0xaf, 0xb2, 0x28, 0x03, 0xe0, 0x68, 0x16, 0x5d,
0x8b, 0x18, 0xb1, 0xce, 0x32, 0xfb, 0xfc, 0x67, 0x0e, 0x72, 0xb4, 0x33, 0xc4, 0x17, 0xa0, 0x1e, 0x76, 0x81, 0x91, 0xb2, 0x04, 0xf3, 0x32, 0x42, 0x43, 0x72, 0xe6, 0xa2, 0x28, 0x46, 0xac, 0xb3,
0xf7, 0x9a, 0xbd, 0x4e, 0xff, 0xe4, 0xc8, 0x38, 0x32, 0x7a, 0x46, 0xf3, 0x3b, 0xe3, 0x55, 0x67, 0xca, 0x3e, 0xfd, 0x89, 0x83, 0x1c, 0x9d, 0x0c, 0xf1, 0x05, 0x28, 0x87, 0xfd, 0x56, 0xbf, 0x3b,
0xbf, 0x7f, 0x72, 0x74, 0xdc, 0xed, 0xb4, 0x8d, 0x03, 0xa3, 0xb3, 0x5f, 0xc9, 0xc8, 0x0f, 0xae, 0x38, 0x3a, 0xd0, 0x0f, 0xf4, 0xbe, 0xde, 0xfa, 0x46, 0x7f, 0xd5, 0xdd, 0x1d, 0x1c, 0x1d, 0x1c,
0xae, 0xb5, 0xcd, 0x25, 0x80, 0x28, 0x01, 0xb0, 0x75, 0xa1, 0xb1, 0xc2, 0xc9, 0xc5, 0xab, 0x6b, 0xf6, 0xba, 0x1d, 0x7d, 0x4f, 0xef, 0xee, 0x56, 0x32, 0xb5, 0x07, 0x17, 0x97, 0xea, 0xfa, 0x12,
0x4d, 0x08, 0x65, 0x51, 0x81, 0x4d, 0xe6, 0xe9, 0x99, 0x3f, 0xbc, 0xec, 0x76, 0x8e, 0x2a, 0xbc, 0x40, 0x94, 0x00, 0xd8, 0xb9, 0xc0, 0x58, 0xe1, 0x6a, 0xc5, 0x8b, 0x4b, 0x55, 0x08, 0x64, 0x51,
0xbc, 0x71, 0x75, 0xad, 0x15, 0x22, 0x35, 0x59, 0x49, 0x9d, 0x59, 0xb6, 0x32, 0x94, 0x65, 0xe1, 0x86, 0x75, 0xe6, 0xe9, 0x1b, 0xdf, 0xbd, 0xec, 0x75, 0x0f, 0x2a, 0x7c, 0x6d, 0xed, 0xe2, 0x52,
0xcd, 0x5b, 0x25, 0xd3, 0xea, 0xbe, 0x9b, 0x29, 0xdc, 0xfb, 0x99, 0xc2, 0xfd, 0x31, 0x53, 0xb8, 0x2d, 0x84, 0x6a, 0x72, 0x92, 0x3a, 0xb3, 0xec, 0x64, 0x20, 0xd7, 0x84, 0x37, 0x6f, 0xe5, 0x4c,
0x9f, 0x6e, 0x94, 0xcc, 0xfb, 0x1b, 0x25, 0xf3, 0xfb, 0x8d, 0x92, 0x79, 0xf5, 0xe2, 0x1f, 0x7f, 0xbb, 0xf7, 0x6e, 0x2e, 0x73, 0xef, 0xe7, 0x32, 0xf7, 0xfb, 0x5c, 0xe6, 0x7e, 0xb8, 0x92, 0x33,
0xda, 0xd7, 0x8d, 0xf0, 0x79, 0xf9, 0xe5, 0xf3, 0xdd, 0xd4, 0x43, 0x95, 0xfe, 0xc8, 0xa7, 0x79, 0xef, 0xaf, 0xe4, 0xcc, 0x6f, 0x57, 0x72, 0xe6, 0xd5, 0x8b, 0x7f, 0xdc, 0x51, 0xaf, 0x9b, 0xc1,
0xfa, 0xba, 0x7c, 0xfe, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x4e, 0x8d, 0xdb, 0xc7, 0x0a, 0x6b, 0xfa, 0xf3, 0xe7, 0xdb, 0xa9, 0x77, 0x39, 0xdd, 0x5b, 0xc7, 0x79, 0xfa, 0x98, 0x7e, 0xfe,
0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2c, 0xb0, 0xb2, 0x80, 0xb6, 0x0b, 0x00, 0x00,
} }
func (m *MsgConnectionOpenInit) Marshal() (dAtA []byte, err error) { func (m *MsgConnectionOpenInit) Marshal() (dAtA []byte, err error) {
@ -1003,6 +1051,60 @@ func (m *ConnectionEnd) MarshalTo(dAtA []byte) (int, error) {
} }
func (m *ConnectionEnd) MarshalToSizedBuffer(dAtA []byte) (int, error) { func (m *ConnectionEnd) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
{
size, err := m.Counterparty.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintConnection(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x2a
if m.State != 0 {
i = encodeVarintConnection(dAtA, i, uint64(m.State))
i--
dAtA[i] = 0x20
}
if len(m.Versions) > 0 {
for iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.Versions[iNdEx])
copy(dAtA[i:], m.Versions[iNdEx])
i = encodeVarintConnection(dAtA, i, uint64(len(m.Versions[iNdEx])))
i--
dAtA[i] = 0x1a
}
}
if len(m.ClientID) > 0 {
i -= len(m.ClientID)
copy(dAtA[i:], m.ClientID)
i = encodeVarintConnection(dAtA, i, uint64(len(m.ClientID)))
i--
dAtA[i] = 0x12
}
return len(dAtA) - i, nil
}
func (m *IdentifiedConnection) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *IdentifiedConnection) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *IdentifiedConnection) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA) i := len(dAtA)
_ = i _ = i
var l int var l int
@ -1342,6 +1444,30 @@ func (m *MsgConnectionOpenConfirm) Size() (n int) {
} }
func (m *ConnectionEnd) Size() (n int) { func (m *ConnectionEnd) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.ClientID)
if l > 0 {
n += 1 + l + sovConnection(uint64(l))
}
if len(m.Versions) > 0 {
for _, s := range m.Versions {
l = len(s)
n += 1 + l + sovConnection(uint64(l))
}
}
if m.State != 0 {
n += 1 + sovConnection(uint64(m.State))
}
l = m.Counterparty.Size()
n += 1 + l + sovConnection(uint64(l))
return n
}
func (m *IdentifiedConnection) Size() (n int) {
if m == nil { if m == nil {
return 0 return 0
} }
@ -2411,6 +2537,175 @@ func (m *ConnectionEnd) Unmarshal(dAtA []byte) error {
return fmt.Errorf("proto: ConnectionEnd: illegal tag %d (wire type %d)", fieldNum, wire) return fmt.Errorf("proto: ConnectionEnd: illegal tag %d (wire type %d)", fieldNum, wire)
} }
switch fieldNum { switch fieldNum {
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ClientID", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowConnection
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthConnection
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthConnection
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ClientID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Versions", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowConnection
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthConnection
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthConnection
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Versions = append(m.Versions, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field State", wireType)
}
m.State = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowConnection
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.State |= State(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 5:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Counterparty", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowConnection
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthConnection
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthConnection
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.Counterparty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipConnection(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthConnection
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthConnection
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *IdentifiedConnection) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowConnection
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: IdentifiedConnection: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: IdentifiedConnection: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1: case 1:
if wireType != 2 { if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType) return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType)

View File

@ -25,32 +25,27 @@ func TestConnectionValidateBasic(t *testing.T) {
}{ }{
{ {
"valid connection", "valid connection",
types.ConnectionEnd{connectionID, clientID, []string{ibctesting.ConnectionVersion}, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}}, types.ConnectionEnd{clientID, []string{ibctesting.ConnectionVersion}, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}},
true, true,
}, },
{
"invalid connection id",
types.ConnectionEnd{"(connectionIDONE)", clientID, []string{ibctesting.ConnectionVersion}, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}},
false,
},
{ {
"invalid client id", "invalid client id",
types.ConnectionEnd{connectionID, "(clientID1)", []string{ibctesting.ConnectionVersion}, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}}, types.ConnectionEnd{"(clientID1)", []string{ibctesting.ConnectionVersion}, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}},
false, false,
}, },
{ {
"empty versions", "empty versions",
types.ConnectionEnd{connectionID, clientID, nil, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}}, types.ConnectionEnd{clientID, nil, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}},
false, false,
}, },
{ {
"invalid version", "invalid version",
types.ConnectionEnd{connectionID, clientID, []string{"1.0.0"}, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}}, types.ConnectionEnd{clientID, []string{"1.0.0"}, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}},
false, false,
}, },
{ {
"invalid counterparty", "invalid counterparty",
types.ConnectionEnd{connectionID, clientID, []string{ibctesting.ConnectionVersion}, types.INIT, types.Counterparty{clientID2, connectionID2, emptyPrefix}}, types.ConnectionEnd{clientID, []string{ibctesting.ConnectionVersion}, types.INIT, types.Counterparty{clientID2, connectionID2, emptyPrefix}},
false, false,
}, },
} }
@ -90,3 +85,33 @@ func TestCounterpartyValidateBasic(t *testing.T) {
} }
} }
} }
func TestIdentifiedConnectionValidateBasic(t *testing.T) {
testCases := []struct {
name string
connection types.IdentifiedConnection
expPass bool
}{
{
"valid connection",
types.NewIdentifiedConnection(clientID, types.ConnectionEnd{clientID, []string{ibctesting.ConnectionVersion}, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}}),
true,
},
{
"invalid connection id",
types.NewIdentifiedConnection("(connectionIDONE)", types.ConnectionEnd{clientID, []string{ibctesting.ConnectionVersion}, types.INIT, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}}),
false,
},
}
for i, tc := range testCases {
tc := tc
err := tc.connection.ValidateBasic()
if tc.expPass {
require.NoError(t, err, "valid test case %d failed: %s", i, tc.name)
} else {
require.Error(t, err, "invalid test case %d passed: %s", i, tc.name)
}
}
}

View File

@ -16,13 +16,13 @@ func NewConnectionPaths(id string, paths []string) ConnectionPaths {
// GenesisState defines the ibc connection submodule's genesis state. // GenesisState defines the ibc connection submodule's genesis state.
type GenesisState struct { type GenesisState struct {
Connections []ConnectionEnd `json:"connections" yaml:"connections"` Connections []IdentifiedConnection `json:"connections" yaml:"connections"`
ClientConnectionPaths []ConnectionPaths `json:"client_connection_paths" yaml:"client_connection_paths"` ClientConnectionPaths []ConnectionPaths `json:"client_connection_paths" yaml:"client_connection_paths"`
} }
// NewGenesisState creates a GenesisState instance. // NewGenesisState creates a GenesisState instance.
func NewGenesisState( func NewGenesisState(
connections []ConnectionEnd, connPaths []ConnectionPaths, connections []IdentifiedConnection, connPaths []ConnectionPaths,
) GenesisState { ) GenesisState {
return GenesisState{ return GenesisState{
Connections: connections, Connections: connections,
@ -33,7 +33,7 @@ func NewGenesisState(
// DefaultGenesisState returns the ibc connection submodule's default genesis state. // DefaultGenesisState returns the ibc connection submodule's default genesis state.
func DefaultGenesisState() GenesisState { func DefaultGenesisState() GenesisState {
return GenesisState{ return GenesisState{
Connections: []ConnectionEnd{}, Connections: []IdentifiedConnection{},
ClientConnectionPaths: []ConnectionPaths{}, ClientConnectionPaths: []ConnectionPaths{},
} }
} }

View File

@ -26,8 +26,8 @@ func TestValidateGenesis(t *testing.T) {
{ {
name: "valid genesis", name: "valid genesis",
genState: types.NewGenesisState( genState: types.NewGenesisState(
[]types.ConnectionEnd{ []types.IdentifiedConnection{
types.NewConnectionEnd(types.INIT, connectionID, clientID, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}, []string{ibctesting.ConnectionVersion}), types.NewIdentifiedConnection(connectionID, types.NewConnectionEnd(types.INIT, clientID, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}, []string{ibctesting.ConnectionVersion})),
}, },
[]types.ConnectionPaths{ []types.ConnectionPaths{
{clientID, []string{host.ConnectionPath(connectionID)}}, {clientID, []string{host.ConnectionPath(connectionID)}},
@ -38,8 +38,8 @@ func TestValidateGenesis(t *testing.T) {
{ {
name: "invalid connection", name: "invalid connection",
genState: types.NewGenesisState( genState: types.NewGenesisState(
[]types.ConnectionEnd{ []types.IdentifiedConnection{
types.NewConnectionEnd(types.INIT, connectionID, "(CLIENTIDONE)", types.Counterparty{clientID, connectionID, commitmenttypes.NewMerklePrefix([]byte("prefix"))}, []string{ibctesting.ConnectionVersion}), types.NewIdentifiedConnection(connectionID, types.NewConnectionEnd(types.INIT, "(CLIENTIDONE)", types.Counterparty{clientID, connectionID, commitmenttypes.NewMerklePrefix([]byte("prefix"))}, []string{ibctesting.ConnectionVersion})),
}, },
[]types.ConnectionPaths{ []types.ConnectionPaths{
{clientID, []string{host.ConnectionPath(connectionID)}}, {clientID, []string{host.ConnectionPath(connectionID)}},
@ -50,8 +50,8 @@ func TestValidateGenesis(t *testing.T) {
{ {
name: "invalid client id", name: "invalid client id",
genState: types.NewGenesisState( genState: types.NewGenesisState(
[]types.ConnectionEnd{ []types.IdentifiedConnection{
types.NewConnectionEnd(types.INIT, connectionID, clientID, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}, []string{ibctesting.ConnectionVersion}), types.NewIdentifiedConnection(connectionID, types.NewConnectionEnd(types.INIT, clientID, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}, []string{ibctesting.ConnectionVersion})),
}, },
[]types.ConnectionPaths{ []types.ConnectionPaths{
{"(CLIENTIDONE)", []string{host.ConnectionPath(connectionID)}}, {"(CLIENTIDONE)", []string{host.ConnectionPath(connectionID)}},
@ -62,8 +62,8 @@ func TestValidateGenesis(t *testing.T) {
{ {
name: "invalid path", name: "invalid path",
genState: types.NewGenesisState( genState: types.NewGenesisState(
[]types.ConnectionEnd{ []types.IdentifiedConnection{
types.NewConnectionEnd(types.INIT, connectionID, clientID, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}, []string{ibctesting.ConnectionVersion}), types.NewIdentifiedConnection(connectionID, types.NewConnectionEnd(types.INIT, clientID, types.Counterparty{clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))}, []string{ibctesting.ConnectionVersion})),
}, },
[]types.ConnectionPaths{ []types.ConnectionPaths{
{clientID, []string{connectionID}}, {clientID, []string{connectionID}},

View File

@ -9,9 +9,9 @@ import (
// NewQueryConnectionResponse creates a new QueryConnectionResponse instance // NewQueryConnectionResponse creates a new QueryConnectionResponse instance
func NewQueryConnectionResponse( func NewQueryConnectionResponse(
connection ConnectionEnd, proof []byte, height int64, connectionID string, connection ConnectionEnd, proof []byte, height int64,
) *QueryConnectionResponse { ) *QueryConnectionResponse {
path := commitmenttypes.NewMerklePath(strings.Split(host.ConnectionPath(connection.ID), "/")) path := commitmenttypes.NewMerklePath(strings.Split(host.ConnectionPath(connectionID), "/"))
return &QueryConnectionResponse{ return &QueryConnectionResponse{
Connection: &connection, Connection: &connection,
Proof: proof, Proof: proof,

View File

@ -198,7 +198,7 @@ func (m *QueryConnectionsRequest) GetPagination() *query.PageRequest {
// QueryConnectionsResponse is the response type for the Query/Connections RPC method. // QueryConnectionsResponse is the response type for the Query/Connections RPC method.
type QueryConnectionsResponse struct { type QueryConnectionsResponse struct {
// list of stored connections of the chain. // list of stored connections of the chain.
Connections []*ConnectionEnd `protobuf:"bytes,1,rep,name=connections,proto3" json:"connections,omitempty"` Connections []*IdentifiedConnection `protobuf:"bytes,1,rep,name=connections,proto3" json:"connections,omitempty"`
// pagination response // pagination response
Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
// query block height // query block height
@ -238,7 +238,7 @@ func (m *QueryConnectionsResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_QueryConnectionsResponse proto.InternalMessageInfo var xxx_messageInfo_QueryConnectionsResponse proto.InternalMessageInfo
func (m *QueryConnectionsResponse) GetConnections() []*ConnectionEnd { func (m *QueryConnectionsResponse) GetConnections() []*IdentifiedConnection {
if m != nil { if m != nil {
return m.Connections return m.Connections
} }
@ -392,41 +392,41 @@ func init() {
func init() { proto.RegisterFile("ibc/connection/query.proto", fileDescriptor_5ee60d8b08ce3606) } func init() { proto.RegisterFile("ibc/connection/query.proto", fileDescriptor_5ee60d8b08ce3606) }
var fileDescriptor_5ee60d8b08ce3606 = []byte{ var fileDescriptor_5ee60d8b08ce3606 = []byte{
// 529 bytes of a gzipped FileDescriptorProto // 542 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xcf, 0x6e, 0xd3, 0x4e, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0xc1, 0x6e, 0xd3, 0x40,
0x10, 0xce, 0x26, 0x6d, 0xd5, 0x4c, 0xfc, 0xfb, 0x51, 0x56, 0x55, 0x31, 0x96, 0xe2, 0x04, 0x1f, 0x10, 0xcd, 0x26, 0x6d, 0xd5, 0x4c, 0x02, 0x94, 0x55, 0x55, 0x8c, 0xa5, 0x38, 0xc1, 0x42, 0x90,
0x20, 0x3d, 0xc4, 0x46, 0xad, 0x40, 0x02, 0x09, 0x21, 0x95, 0x22, 0x11, 0x2e, 0x84, 0x15, 0x27, 0x1e, 0x62, 0xa3, 0x54, 0x20, 0x81, 0xc4, 0xa5, 0x14, 0x44, 0xb8, 0x10, 0x56, 0x9c, 0xb8, 0x44,
0x2e, 0x91, 0xff, 0x2c, 0xb6, 0x05, 0xf5, 0xba, 0xd9, 0x8d, 0x44, 0xdf, 0x82, 0x77, 0xe0, 0x01, 0x89, 0xbd, 0x75, 0x56, 0x50, 0xaf, 0x9b, 0xdd, 0x48, 0xf4, 0x2f, 0xf8, 0x07, 0x7e, 0x80, 0x13,
0xe0, 0x19, 0x38, 0x71, 0xec, 0x91, 0x53, 0x85, 0x9c, 0x17, 0x41, 0xde, 0x75, 0xba, 0x6e, 0x93, 0x1f, 0xc0, 0x89, 0x63, 0x8f, 0x9c, 0x2a, 0xe4, 0xfc, 0x08, 0xf2, 0xae, 0xd3, 0x75, 0x93, 0x54,
0x2a, 0x5c, 0x38, 0x65, 0x3d, 0xf3, 0x7d, 0x33, 0xdf, 0x7e, 0xb3, 0x19, 0xb0, 0xd2, 0x20, 0xf4, 0xe1, 0xd2, 0x53, 0xd6, 0x33, 0xef, 0xcd, 0xbc, 0x7d, 0xb3, 0x19, 0xb0, 0xd9, 0x28, 0xf0, 0x03,
0x42, 0x96, 0x65, 0x34, 0x14, 0x29, 0xcb, 0xbc, 0xd3, 0x19, 0x9d, 0x9e, 0xb9, 0xf9, 0x94, 0x09, 0x1e, 0xc7, 0x34, 0x90, 0x8c, 0xc7, 0xfe, 0xe9, 0x94, 0x4e, 0xce, 0xbc, 0x64, 0xc2, 0x25, 0xc7,
0x86, 0xff, 0x4f, 0x83, 0xd0, 0xd5, 0x39, 0x6b, 0x37, 0x66, 0x31, 0x93, 0x29, 0xaf, 0x3c, 0x29, 0xb7, 0xd9, 0x28, 0xf0, 0x4c, 0xce, 0xde, 0x8d, 0x78, 0xc4, 0x55, 0xca, 0xcf, 0x4e, 0x1a, 0x65,
0x94, 0xd5, 0x0d, 0x19, 0x3f, 0x61, 0x5c, 0x31, 0xbd, 0xdc, 0x8f, 0xd3, 0xcc, 0x2f, 0xe1, 0x55, 0x37, 0x02, 0x2e, 0x4e, 0xb8, 0xd0, 0x4c, 0x3f, 0x19, 0x46, 0x2c, 0x1e, 0x66, 0xf0, 0x3c, 0xdd,
0xba, 0x77, 0xad, 0x81, 0x3e, 0x2a, 0x80, 0xf3, 0x06, 0xf6, 0xde, 0x96, 0xd4, 0x17, 0x97, 0x09, 0x5c, 0x68, 0x60, 0x8e, 0x1a, 0xe0, 0xbe, 0x87, 0xbd, 0x0f, 0x19, 0xf5, 0xd5, 0x65, 0x82, 0xd0,
0x42, 0x4f, 0x67, 0x94, 0x0b, 0xfc, 0x08, 0xfe, 0xd3, 0xe8, 0x49, 0x1a, 0x99, 0xa8, 0x8f, 0x06, 0xd3, 0x29, 0x15, 0x12, 0x3f, 0x85, 0x5b, 0x06, 0x3d, 0x60, 0xa1, 0x85, 0x5a, 0xa8, 0x5d, 0x3d,
0xed, 0xa3, 0x9d, 0xe2, 0xa2, 0x67, 0x68, 0xf4, 0xe8, 0x98, 0x18, 0x1a, 0x36, 0x8a, 0x9c, 0xef, 0xdc, 0x49, 0x2f, 0x9a, 0x75, 0x83, 0xee, 0x1d, 0x91, 0xba, 0x81, 0xf5, 0x42, 0xf7, 0x07, 0x82,
0x08, 0xee, 0x2c, 0x55, 0xe4, 0x39, 0xcb, 0x38, 0xc5, 0xcf, 0x00, 0x34, 0x56, 0xd6, 0xeb, 0x1c, 0x7b, 0x4b, 0x15, 0x45, 0xc2, 0x63, 0x41, 0xf1, 0x4b, 0x00, 0x83, 0x55, 0xf5, 0x6a, 0xdd, 0x86,
0x74, 0xdd, 0xab, 0xf7, 0x74, 0x35, 0xef, 0x65, 0x16, 0x91, 0x1a, 0x01, 0xef, 0xc2, 0x66, 0x3e, 0x77, 0xf5, 0x9e, 0x9e, 0xe1, 0xbd, 0x8e, 0x43, 0x52, 0x20, 0xe0, 0x5d, 0xd8, 0x4c, 0x26, 0x9c,
0x65, 0xec, 0x83, 0xd9, 0xec, 0xa3, 0x81, 0x41, 0xd4, 0x07, 0xee, 0x02, 0xc8, 0xc3, 0x24, 0xf7, 0x1f, 0x5b, 0xe5, 0x16, 0x6a, 0xd7, 0x89, 0xfe, 0xc0, 0x0d, 0x00, 0x75, 0x18, 0x24, 0x43, 0x39,
0x45, 0x62, 0xb6, 0x4a, 0x91, 0xa4, 0x2d, 0x23, 0x63, 0x5f, 0x24, 0xf8, 0x1e, 0x18, 0x2a, 0x9d, 0xb6, 0x2a, 0x99, 0x48, 0x52, 0x55, 0x91, 0xfe, 0x50, 0x8e, 0xf1, 0x03, 0xa8, 0xeb, 0xf4, 0x98,
0xd0, 0x34, 0x4e, 0x84, 0xb9, 0xd1, 0x47, 0x83, 0x0d, 0xd2, 0x91, 0xb1, 0x57, 0x32, 0xe4, 0xbc, 0xb2, 0x68, 0x2c, 0xad, 0x8d, 0x16, 0x6a, 0x6f, 0x90, 0x9a, 0x8a, 0xbd, 0x55, 0x21, 0xf7, 0xe3,
0x5b, 0x52, 0xcc, 0x17, 0x26, 0x3c, 0x01, 0xd0, 0x9e, 0x56, 0x8a, 0xef, 0xba, 0xca, 0x73, 0x57, 0x92, 0x62, 0x31, 0x37, 0xe1, 0x39, 0x80, 0xf1, 0x34, 0x57, 0x7c, 0xdf, 0xd3, 0x9e, 0x7b, 0x7a,
0x4d, 0x6b, 0xec, 0xc7, 0xb4, 0x82, 0x93, 0x1a, 0xd8, 0xf9, 0x86, 0xc0, 0x5c, 0x2e, 0x5b, 0x39, 0x5a, 0xfd, 0x61, 0x44, 0x73, 0x38, 0x29, 0x80, 0xdd, 0x9f, 0x08, 0xac, 0xe5, 0xb2, 0xb9, 0x13,
0xf1, 0x1c, 0x3a, 0xfa, 0x62, 0xdc, 0x44, 0xfd, 0xd6, 0x7a, 0x2b, 0xea, 0x0c, 0xfc, 0xf4, 0x8a, 0x6f, 0xa0, 0x66, 0x2e, 0x26, 0x2c, 0xd4, 0xaa, 0xb4, 0x6b, 0xdd, 0x87, 0x8b, 0x56, 0xf4, 0x42,
0xb0, 0xa6, 0x14, 0x66, 0xad, 0x12, 0xa6, 0x1a, 0xd6, 0x95, 0xe1, 0x3d, 0xd8, 0xaa, 0xcc, 0x28, 0x1a, 0x4b, 0x76, 0xcc, 0x68, 0x58, 0x30, 0xb3, 0x48, 0xc4, 0x2f, 0xae, 0xe8, 0x2b, 0x2b, 0x7d,
0xdd, 0x6a, 0x91, 0xea, 0xcb, 0x79, 0x0d, 0x5d, 0x25, 0xf8, 0x53, 0x4a, 0x33, 0xb1, 0xc2, 0x8d, 0xf6, 0x2a, 0x7d, 0xba, 0x6f, 0x51, 0x20, 0xde, 0x83, 0xad, 0xdc, 0x93, 0xcc, 0xb4, 0x0a, 0xc9,
0x7d, 0x68, 0x87, 0x32, 0xa7, 0x9f, 0x83, 0x51, 0x5c, 0xf4, 0xb6, 0x15, 0x61, 0x74, 0x4c, 0xb6, 0xbf, 0xdc, 0x77, 0xd0, 0xd0, 0xba, 0xbf, 0x30, 0x1a, 0xcb, 0x15, 0xa6, 0xec, 0x43, 0x35, 0x50,
0x55, 0x7a, 0x14, 0x39, 0x5f, 0x11, 0xd8, 0x37, 0x15, 0xab, 0x3c, 0xd8, 0x87, 0x9d, 0xda, 0x03, 0x39, 0xf3, 0x2a, 0xea, 0xe9, 0x45, 0x73, 0x5b, 0x13, 0x7a, 0x47, 0x64, 0x5b, 0xa7, 0x7b, 0xa1,
0x2b, 0xa7, 0xa7, 0x8c, 0x68, 0x93, 0x5b, 0x3a, 0x5e, 0xce, 0x90, 0xff, 0xab, 0xc9, 0x1f, 0xfc, 0xfb, 0x1d, 0x81, 0x73, 0x5d, 0xb1, 0xdc, 0x8a, 0x7d, 0xd8, 0x29, 0xbc, 0xb3, 0x6c, 0x88, 0xda,
0x68, 0xc2, 0xa6, 0x54, 0x89, 0x27, 0x00, 0x5a, 0x23, 0xbe, 0x7f, 0x7d, 0x12, 0xab, 0xff, 0x23, 0x8f, 0x2a, 0xb9, 0x63, 0xe2, 0xd9, 0x28, 0xc5, 0x4d, 0x3d, 0x80, 0xee, 0xaf, 0x32, 0x6c, 0x2a,
0xd6, 0x83, 0xb5, 0x38, 0x75, 0x57, 0xa7, 0x81, 0x03, 0xe8, 0xd4, 0x4c, 0xc0, 0xeb, 0x98, 0x0b, 0x95, 0x78, 0x00, 0x60, 0x34, 0xe2, 0x47, 0x8b, 0x03, 0x59, 0xfd, 0x57, 0xb1, 0x1f, 0xaf, 0xc5,
0xcf, 0xad, 0xc1, 0x7a, 0xe0, 0x65, 0x0f, 0x01, 0xb7, 0x97, 0xec, 0xc6, 0xc3, 0xd5, 0x05, 0x6e, 0xe9, 0xbb, 0xba, 0x25, 0x3c, 0x82, 0x5a, 0xc1, 0x04, 0xbc, 0x8e, 0x39, 0xf7, 0xdc, 0x6e, 0xaf,
0x98, 0xb1, 0xe5, 0xfe, 0x2d, 0x7c, 0xd1, 0xf5, 0x68, 0xfc, 0xb3, 0xb0, 0xd1, 0x79, 0x61, 0xa3, 0x07, 0x5e, 0xf6, 0x90, 0x70, 0x77, 0xc9, 0x6e, 0xdc, 0x59, 0x5d, 0xe0, 0x9a, 0x19, 0xdb, 0xde,
0xdf, 0x85, 0x8d, 0xbe, 0xcc, 0xed, 0xc6, 0xf9, 0xdc, 0x6e, 0xfc, 0x9a, 0xdb, 0x8d, 0xf7, 0x8f, 0xff, 0xc2, 0xe7, 0x5d, 0x0f, 0xfb, 0xbf, 0x53, 0x07, 0x9d, 0xa7, 0x0e, 0xfa, 0x9b, 0x3a, 0xe8,
0xe3, 0x54, 0x24, 0xb3, 0xc0, 0x0d, 0xd9, 0x89, 0x57, 0xed, 0x29, 0xf5, 0x33, 0xe4, 0xd1, 0x47, 0xdb, 0xcc, 0x29, 0x9d, 0xcf, 0x9c, 0xd2, 0x9f, 0x99, 0x53, 0xfa, 0xf4, 0x2c, 0x62, 0x72, 0x3c,
0xef, 0xb3, 0x57, 0x2e, 0xa7, 0x87, 0x87, 0xc3, 0xda, 0x7e, 0x12, 0x67, 0x39, 0xe5, 0xc1, 0x96, 0x1d, 0x79, 0x01, 0x3f, 0xf1, 0xf3, 0x75, 0xa5, 0x7f, 0x3a, 0x22, 0xfc, 0xec, 0x7f, 0xf5, 0xb3,
0xdc, 0x4d, 0x87, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xed, 0x4b, 0x0d, 0x29, 0x1f, 0x05, 0x00, 0x1d, 0xf5, 0xe4, 0xa0, 0x53, 0x58, 0x53, 0xf2, 0x2c, 0xa1, 0x62, 0xb4, 0xa5, 0x56, 0xd4, 0xc1,
0x00, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x7c, 0xa2, 0x33, 0x26, 0x05, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -1375,7 +1375,7 @@ func (m *QueryConnectionsResponse) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
m.Connections = append(m.Connections, &ConnectionEnd{}) m.Connections = append(m.Connections, &IdentifiedConnection{})
if err := m.Connections[len(m.Connections)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { if err := m.Connections[len(m.Connections)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }

View File

@ -51,7 +51,7 @@ func (suite *KeeperTestSuite) TestChanOpenInit() {
// set connection as UNINITIALIZED // set connection as UNINITIALIZED
counterparty := connectiontypes.NewCounterparty(clientIDB, connIDA, suite.chainB.GetPrefix()) counterparty := connectiontypes.NewCounterparty(clientIDB, connIDA, suite.chainB.GetPrefix())
connection := connectiontypes.NewConnectionEnd(connectiontypes.UNINITIALIZED, clientIDA, connIDA, counterparty, []string{ibctesting.ConnectionVersion}) connection := connectiontypes.NewConnectionEnd(connectiontypes.UNINITIALIZED, clientIDA, counterparty, []string{ibctesting.ConnectionVersion})
suite.chainA.App.IBCKeeper.ConnectionKeeper.SetConnection(suite.chainA.GetContext(), connA.ID, connection) suite.chainA.App.IBCKeeper.ConnectionKeeper.SetConnection(suite.chainA.GetContext(), connA.ID, connection)
portCap = nil portCap = nil

View File

@ -105,7 +105,7 @@ func (suite *KeeperTestSuite) TestSendPacket() {
{"connection is UNINITIALIZED", func() { {"connection is UNINITIALIZED", func() {
// set connection as UNINITIALIZED // set connection as UNINITIALIZED
counterparty := connectiontypes.NewCounterparty(clientIDB, connIDA, suite.chainB.GetPrefix()) counterparty := connectiontypes.NewCounterparty(clientIDB, connIDA, suite.chainB.GetPrefix())
connection := connectiontypes.NewConnectionEnd(connectiontypes.UNINITIALIZED, clientIDA, connIDA, counterparty, []string{ibctesting.ConnectionVersion}) connection := connectiontypes.NewConnectionEnd(connectiontypes.UNINITIALIZED, clientIDA, counterparty, []string{ibctesting.ConnectionVersion})
suite.chainA.App.IBCKeeper.ConnectionKeeper.SetConnection(suite.chainA.GetContext(), connIDA, connection) suite.chainA.App.IBCKeeper.ConnectionKeeper.SetConnection(suite.chainA.GetContext(), connIDA, connection)
channelA := ibctesting.TestChannel{PortID: portID, ID: channelIDA} channelA := ibctesting.TestChannel{PortID: portID, ID: channelIDA}

View File

@ -164,7 +164,7 @@ func (suite *TendermintTestSuite) TestVerifyClientConsensusState() {
func (suite *TendermintTestSuite) TestVerifyConnectionState() { func (suite *TendermintTestSuite) TestVerifyConnectionState() {
counterparty := connectiontypes.NewCounterparty("clientB", testConnectionID, commitmenttypes.NewMerklePrefix([]byte("ibc"))) counterparty := connectiontypes.NewCounterparty("clientB", testConnectionID, commitmenttypes.NewMerklePrefix([]byte("ibc")))
conn := connectiontypes.NewConnectionEnd(connectiontypes.OPEN, testConnectionID, "clientA", counterparty, []string{"1.0.0"}) conn := connectiontypes.NewConnectionEnd(connectiontypes.OPEN, "clientA", counterparty, []string{"1.0.0"})
testCases := []struct { testCases := []struct {
name string name string

View File

@ -87,7 +87,7 @@ func (suite *LocalhostTestSuite) TestVerifyClientConsensusState() {
func (suite *LocalhostTestSuite) TestVerifyConnectionState() { func (suite *LocalhostTestSuite) TestVerifyConnectionState() {
counterparty := connectiontypes.NewCounterparty("clientB", testConnectionID, commitmenttypes.NewMerklePrefix([]byte("ibc"))) counterparty := connectiontypes.NewCounterparty("clientB", testConnectionID, commitmenttypes.NewMerklePrefix([]byte("ibc")))
conn := connectiontypes.NewConnectionEnd(connectiontypes.OPEN, testConnectionID, "clientA", counterparty, []string{"1.0.0"}) conn := connectiontypes.NewConnectionEnd(connectiontypes.OPEN, "clientA", counterparty, []string{"1.0.0"})
testCases := []struct { testCases := []struct {
name string name string

View File

@ -93,7 +93,7 @@ func ClientConnectionsPath(clientID string) string {
// ConnectionPath defines the path under which connection paths are stored // ConnectionPath defines the path under which connection paths are stored
func ConnectionPath(connectionID string) string { func ConnectionPath(connectionID string) string {
return fmt.Sprintf("connections/%s", connectionID) return fmt.Sprintf("%s/%s", KeyConnectionPrefix, connectionID)
} }
// KeyClientConnections returns the store key for the connectios of a given client // KeyClientConnections returns the store key for the connectios of a given client

View File

@ -16,6 +16,17 @@ func RemovePath(paths []string, path string) ([]string, bool) {
return paths, false return paths, false
} }
// ParseConnectionPath returns the connection ID from a full path. It returns
// an error if the provided path is invalid,
func ParseConnectionPath(path string) (string, error) {
split := strings.Split(path, "/")
if len(split) != 2 {
return "", sdkerrors.Wrapf(ErrInvalidPath, "cannot parse connection path %s", path)
}
return split[1], nil
}
// ParseChannelPath returns the port and channel ID from a full path. It returns // ParseChannelPath returns the port and channel ID from a full path. It returns
// an error if the provided path is invalid, // an error if the provided path is invalid,
func ParseChannelPath(path string) (string, string, error) { func ParseChannelPath(path string) (string, string, error) {
@ -31,6 +42,16 @@ func ParseChannelPath(path string) (string, string, error) {
return split[2], split[4], nil return split[2], split[4], nil
} }
// MustParseConnectionPath returns the connection ID from a full path. Panics
// if the provided path is invalid
func MustParseConnectionPath(path string) string {
connectionID, err := ParseConnectionPath(path)
if err != nil {
panic(err)
}
return connectionID
}
// MustParseChannelPath returns the port and channel ID from a full path. Panics // MustParseChannelPath returns the port and channel ID from a full path. Panics
// if the provided path is invalid // if the provided path is invalid
func MustParseChannelPath(path string) (string, string) { func MustParseChannelPath(path string) (string, string) {

View File

@ -47,8 +47,8 @@ func (suite *IBCTestSuite) TestValidateGenesis() {
true, true,
), ),
ConnectionGenesis: connectiontypes.NewGenesisState( ConnectionGenesis: connectiontypes.NewGenesisState(
[]connectiontypes.ConnectionEnd{ []connectiontypes.IdentifiedConnection{
connectiontypes.NewConnectionEnd(connectiontypes.INIT, connectionID, clientID, connectiontypes.NewCounterparty(clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))), []string{ibctesting.ConnectionVersion}), connectiontypes.NewIdentifiedConnection(connectionID, connectiontypes.NewConnectionEnd(connectiontypes.INIT, clientID, connectiontypes.NewCounterparty(clientID2, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))), []string{ibctesting.ConnectionVersion})),
}, },
[]connectiontypes.ConnectionPaths{ []connectiontypes.ConnectionPaths{
connectiontypes.NewConnectionPaths(clientID, []string{host.ConnectionPath(connectionID)}), connectiontypes.NewConnectionPaths(clientID, []string{host.ConnectionPath(connectionID)}),
@ -102,8 +102,8 @@ func (suite *IBCTestSuite) TestValidateGenesis() {
genState: types.GenesisState{ genState: types.GenesisState{
ClientGenesis: clienttypes.DefaultGenesisState(), ClientGenesis: clienttypes.DefaultGenesisState(),
ConnectionGenesis: connectiontypes.NewGenesisState( ConnectionGenesis: connectiontypes.NewGenesisState(
[]connectiontypes.ConnectionEnd{ []connectiontypes.IdentifiedConnection{
connectiontypes.NewConnectionEnd(connectiontypes.INIT, connectionID, "(CLIENTIDONE)", connectiontypes.NewCounterparty(clientID, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))), []string{"1.0.0"}), connectiontypes.NewIdentifiedConnection(connectionID, connectiontypes.NewConnectionEnd(connectiontypes.INIT, "(CLIENTIDONE)", connectiontypes.NewCounterparty(clientID, connectionID2, commitmenttypes.NewMerklePrefix([]byte("prefix"))), []string{"1.0.0"})),
}, },
[]connectiontypes.ConnectionPaths{ []connectiontypes.ConnectionPaths{
connectiontypes.NewConnectionPaths(clientID, []string{host.ConnectionPath(connectionID)}), connectiontypes.NewConnectionPaths(clientID, []string{host.ConnectionPath(connectionID)}),

View File

@ -23,6 +23,7 @@ func TestDecodeStore(t *testing.T) {
dec := simulation.NewDecodeStore(app.IBCKeeper.Codecs()) dec := simulation.NewDecodeStore(app.IBCKeeper.Codecs())
clientID := "clientidone" clientID := "clientidone"
connectionID := "connectionidone"
channelID := "channelidone" channelID := "channelidone"
portID := "portidone" portID := "portidone"
@ -31,7 +32,6 @@ func TestDecodeStore(t *testing.T) {
FrozenHeight: 10, FrozenHeight: 10,
} }
connection := connectiontypes.ConnectionEnd{ connection := connectiontypes.ConnectionEnd{
ID: clientID,
ClientID: "clientidone", ClientID: "clientidone",
Versions: []string{"1.0"}, Versions: []string{"1.0"},
} }
@ -46,7 +46,7 @@ func TestDecodeStore(t *testing.T) {
Value: aminoCdc.MustMarshalBinaryBare(clientState), Value: aminoCdc.MustMarshalBinaryBare(clientState),
}, },
tmkv.Pair{ tmkv.Pair{
Key: host.KeyConnection(connection.ID), Key: host.KeyConnection(connectionID),
Value: cdc.MustMarshalBinaryBare(&connection), Value: cdc.MustMarshalBinaryBare(&connection),
}, },
tmkv.Pair{ tmkv.Pair{