Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests(e2e): ics20 v2 multidenom #6290

Merged
merged 56 commits into from
Jun 17, 2024
Merged
Changes from 1 commit
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
c07bca9
Adding proto files for ics20-v2 (#6110)
chatton Apr 8, 2024
e66bd89
update amount -> string (#6120)
charleenfei Apr 9, 2024
034f472
Update MsgTransfer to accept sdk.Coins instead of sdk.Coin (#6113)
chatton Apr 9, 2024
4cc6a85
fix: allow base denom with trailing slash (#6148)
Apr 15, 2024
71f830c
imp: add CurrentVersion, EscrowVersion (#6160)
charleenfei Apr 16, 2024
28ff9b6
chore: add function for converting packet data from v1 to v3 (#6116)
chatton Apr 16, 2024
4e55137
chore: implement required `FungibleTokenPacketData` v3 interface meth…
charleenfei Apr 22, 2024
ca056cf
imp: `getMultiDenomFungibleTokenPacketData`to be used in packet unmar…
charleenfei Apr 29, 2024
147cf17
chore: implement version checking for channel handshake application c…
charleenfei May 6, 2024
9bbfa1a
imp: update transfer authz implementation to account for multi denom …
charleenfei May 6, 2024
4f57916
ics20-v2: backwards compatibility for transfer rpc and packet callbac…
May 10, 2024
b4244f9
multidenom transfer test + ics20-v2 channel upgrade test
May 10, 2024
b09f5d7
some fixes
May 12, 2024
4c333c5
changes to transfer tx CLI to support multiple denoms
May 14, 2024
8b55295
lint
May 14, 2024
0478cb9
import renaming
May 14, 2024
f39d173
Use type with V2 suffix for package data (#6330)
chatton May 21, 2024
9b39944
Adding additional comments and changing version variable names (#6345)
chatton May 21, 2024
06ca9a5
Merge branch 'main' into merge-main
chatton May 21, 2024
7897ef3
chore: correctly claim capability
chatton May 21, 2024
786a4f1
lint
colin-axner May 21, 2024
3a162ea
Merge branch 'feat/ics20-v2' into carlos/e2e-tests-multidenom
May 21, 2024
5747756
Merge pull request #6346 from cosmos/merge-main
DimitrisJim May 21, 2024
7e2e6df
Merge branch 'main' into feat/ics20-v2
chatton May 22, 2024
a84b0e7
imp: change ics20 events to emit token set (#6348)
colin-axner May 22, 2024
43877df
imp: check length tokens array against maximum allowed (#6349)
May 22, 2024
8eae033
Modify UnmarshalPacketData interface to allow additional args (#6341)
DimitrisJim May 22, 2024
dbcff45
Refactor packet data unmarshalling to use specific version (#6354)
chatton May 23, 2024
bb69698
Merge branch 'main' into merge-main-2
chatton May 23, 2024
f19a145
chore: fixing tests
chatton May 23, 2024
8f86dda
Merge pull request #6359 from cosmos/merge-main-2
chatton May 23, 2024
d4b06c8
imp: self review comments for ics20-v2 (#6360)
colin-axner May 23, 2024
a9391a4
imp: self review on ics20-v2 part 2 (#6364)
colin-axner May 23, 2024
575403e
chore: move functions from internal/denom back to trace.go (#6368)
DimitrisJim May 23, 2024
50ccd94
imp: ics20 v2 self review part 3 (#6373)
colin-axner May 23, 2024
87eb32e
chore: remove duplicate test case
colin-axner May 23, 2024
e8b9d5a
chore: address minor nits (#6374)
DimitrisJim May 23, 2024
6d40bc6
Refactor msgs_test.go to use expError (#6367)
chatton May 24, 2024
c171059
chore: remove unused chain variable in setup (#6371)
chatton May 24, 2024
a276219
Merge branch 'feat/ics20-v2' into carlos/e2e-tests-multidenom
May 27, 2024
d55c817
use new queries in e2e
May 27, 2024
3319e42
add test for error ack multidenom transfer
May 27, 2024
0d0b5fc
Merge branch 'main' into carlos/e2e-tests-multidenom
May 28, 2024
a284934
Merge branch 'main' into carlos/e2e-tests-multidenom
May 29, 2024
2dafbd5
Merge branch 'main' into carlos/e2e-tests-multidenom
May 30, 2024
2485db0
Merge branch 'main' into carlos/e2e-tests-multidenom
Jun 7, 2024
6886e3b
downgrade test to ics20-1
Jun 8, 2024
14d17ff
add test to upgrade channel to fee middleware and ICS20 v2
Jun 9, 2024
3f12a8e
revert some unnecessary changes
Jun 10, 2024
087d52f
add transfer failure multidenom test to compatibility
Jun 10, 2024
feb2383
Merge branch 'main' into carlos/e2e-tests-multidenom
Jun 10, 2024
bdd4ab6
updates to multidenom invalid adress test
Jun 17, 2024
70f9b8c
Merge branch 'main' into carlos/e2e-tests-multidenom
Jun 17, 2024
7d42ff3
fix value comparison
Jun 17, 2024
d4bd933
review comments
Jun 17, 2024
fbb6994
Merge branch 'main' into carlos/e2e-tests-multidenom
Jun 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Adding additional comments and changing version variable names (#6345)
chatton authored May 21, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit 9b399449acafda46655d4ac8802f888b24fd7047
8 changes: 4 additions & 4 deletions e2e/tests/transfer/localhost_test.go
Original file line number Diff line number Diff line change
@@ -68,7 +68,7 @@ func (s *LocalhostTransferTestSuite) TestMsgTransfer_Localhost() {

t.Run("channel open init localhost", func(t *testing.T) {
msgChanOpenInit := channeltypes.NewMsgChannelOpenInit(
transfertypes.PortID, transfertypes.Version,
transfertypes.PortID, transfertypes.V2,
channeltypes.UNORDERED, []string{exported.LocalhostConnectionID},
transfertypes.PortID, rlyWallet.FormattedAddress(),
)
@@ -83,10 +83,10 @@ func (s *LocalhostTransferTestSuite) TestMsgTransfer_Localhost() {

t.Run("channel open try localhost", func(t *testing.T) {
msgChanOpenTry := channeltypes.NewMsgChannelOpenTry(
transfertypes.PortID, transfertypes.Version,
transfertypes.PortID, transfertypes.V2,
channeltypes.UNORDERED, []string{exported.LocalhostConnectionID},
transfertypes.PortID, msgChanOpenInitRes.ChannelId,
transfertypes.Version, localhost.SentinelProof, clienttypes.ZeroHeight(), rlyWallet.FormattedAddress(),
transfertypes.V2, localhost.SentinelProof, clienttypes.ZeroHeight(), rlyWallet.FormattedAddress(),
)

txResp := s.BroadcastMessages(ctx, chainA, rlyWallet, msgChanOpenTry)
@@ -98,7 +98,7 @@ func (s *LocalhostTransferTestSuite) TestMsgTransfer_Localhost() {
t.Run("channel open ack localhost", func(t *testing.T) {
msgChanOpenAck := channeltypes.NewMsgChannelOpenAck(
transfertypes.PortID, msgChanOpenInitRes.ChannelId,
msgChanOpenTryRes.ChannelId, transfertypes.Version,
msgChanOpenTryRes.ChannelId, transfertypes.V2,
localhost.SentinelProof, clienttypes.ZeroHeight(), rlyWallet.FormattedAddress(),
)

4 changes: 2 additions & 2 deletions e2e/tests/transfer/upgrades_test.go
Original file line number Diff line number Diff line change
@@ -361,7 +361,7 @@ func (s *TransferChannelUpgradesTestSuite) TestChannelUpgrade_WithFeeMiddleware_
s.Require().NoError(err)

s.Require().Equal(channeltypes.OPEN, channel.State, "the channel state is not OPEN")
s.Require().Equal(transfertypes.Version, channel.Version, "the channel version is not ics20-1")
s.Require().Equal(transfertypes.V2, channel.Version, "the channel version is not ics20-2")

errorReceipt, err := s.QueryUpgradeError(ctx, chainA, channelA.PortID, channelA.ChannelID)
s.Require().NoError(err)
@@ -374,7 +374,7 @@ func (s *TransferChannelUpgradesTestSuite) TestChannelUpgrade_WithFeeMiddleware_
s.Require().NoError(err)

s.Require().Equal(channeltypes.OPEN, channel.State, "the channel state is not OPEN")
s.Require().Equal(transfertypes.Version, channel.Version, "the channel version is not ics20-1")
s.Require().Equal(transfertypes.V2, channel.Version, "the channel version is not ics20-2")

errorReceipt, err := s.QueryUpgradeError(ctx, chainB, channelB.PortID, channelB.ChannelID)
s.Require().NoError(err)
6 changes: 3 additions & 3 deletions e2e/testsuite/testsuite.go
Original file line number Diff line number Diff line change
@@ -111,7 +111,7 @@ func (s *E2ETestSuite) ConfigureRelayer(ctx context.Context, chainA, chainB ibc.
channelOptions := ibc.DefaultChannelOpts()
// TODO: better way to do this.
// For now, set the version to the latest transfer module version
channelOptions.Version = transfertypes.Version
channelOptions.Version = transfertypes.V2

if channelOpts != nil {
channelOpts(&channelOptions)
@@ -401,7 +401,7 @@ func (s *E2ETestSuite) GetRelayerExecReporter() *testreporter.RelayerExecReporte
// TransferChannelOptions configures both of the chains to have non-incentivized transfer channels.
func (*E2ETestSuite) TransferChannelOptions() func(options *ibc.CreateChannelOptions) {
return func(opts *ibc.CreateChannelOptions) {
opts.Version = transfertypes.Version
opts.Version = transfertypes.V2
opts.SourcePortName = transfertypes.PortID
opts.DestPortName = transfertypes.PortID
}
@@ -411,7 +411,7 @@ func (*E2ETestSuite) TransferChannelOptions() func(options *ibc.CreateChannelOpt
func (s *E2ETestSuite) FeeMiddlewareChannelOptions() func(options *ibc.CreateChannelOptions) {
versionMetadata := feetypes.Metadata{
FeeVersion: feetypes.Version,
AppVersion: transfertypes.Version,
AppVersion: transfertypes.V2,
}
versionBytes, err := feetypes.ModuleCdc.MarshalJSON(&versionMetadata)
s.Require().NoError(err)
2 changes: 1 addition & 1 deletion modules/apps/29-fee/keeper/events_test.go
Original file line number Diff line number Diff line change
@@ -93,7 +93,7 @@ func (suite *KeeperTestSuite) TestIncentivizePacketEvent() {
func (suite *KeeperTestSuite) TestDistributeFeeEvent() {
// create an incentivized transfer path
path := ibctesting.NewPath(suite.chainA, suite.chainB)
feeTransferVersion := string(types.ModuleCdc.MustMarshalJSON(&types.Metadata{FeeVersion: types.Version, AppVersion: transfertypes.Version}))
feeTransferVersion := string(types.ModuleCdc.MustMarshalJSON(&types.Metadata{FeeVersion: types.Version, AppVersion: transfertypes.V2}))
path.EndpointA.ChannelConfig.Version = feeTransferVersion
path.EndpointB.ChannelConfig.Version = feeTransferVersion
path.EndpointA.ChannelConfig.PortID = transfertypes.PortID
8 changes: 4 additions & 4 deletions modules/apps/29-fee/transfer_test.go
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ import (
// Integration test to ensure ics29 works with ics20
func (suite *FeeTestSuite) TestFeeTransfer() {
path := ibctesting.NewPath(suite.chainA, suite.chainB)
feeTransferVersion := string(types.ModuleCdc.MustMarshalJSON(&types.Metadata{FeeVersion: types.Version, AppVersion: transfertypes.Version}))
feeTransferVersion := string(types.ModuleCdc.MustMarshalJSON(&types.Metadata{FeeVersion: types.Version, AppVersion: transfertypes.V2}))
path.EndpointA.ChannelConfig.Version = feeTransferVersion
path.EndpointB.ChannelConfig.Version = feeTransferVersion
path.EndpointA.ChannelConfig.PortID = transfertypes.PortID
@@ -94,13 +94,13 @@ func (suite *FeeTestSuite) TestTransferFeeUpgrade() {
// configure the initial path to create a regular transfer channel
path.EndpointA.ChannelConfig.PortID = transfertypes.PortID
path.EndpointB.ChannelConfig.PortID = transfertypes.PortID
path.EndpointA.ChannelConfig.Version = transfertypes.Version
path.EndpointB.ChannelConfig.Version = transfertypes.Version
path.EndpointA.ChannelConfig.Version = transfertypes.V2
path.EndpointB.ChannelConfig.Version = transfertypes.V2

path.Setup()

// configure the channel upgrade to upgrade to an incentivized fee enabled transfer channel
upgradeVersion := string(types.ModuleCdc.MustMarshalJSON(&types.Metadata{FeeVersion: types.Version, AppVersion: transfertypes.Version}))
upgradeVersion := string(types.ModuleCdc.MustMarshalJSON(&types.Metadata{FeeVersion: types.Version, AppVersion: transfertypes.V2}))
path.EndpointA.ChannelConfig.ProposedUpgrade.Fields.Version = upgradeVersion
path.EndpointB.ChannelConfig.ProposedUpgrade.Fields.Version = upgradeVersion

6 changes: 3 additions & 3 deletions modules/apps/callbacks/callbacks_test.go
Original file line number Diff line number Diff line change
@@ -78,8 +78,8 @@ func (s *CallbacksTestSuite) SetupTransferTest() {

s.path.EndpointA.ChannelConfig.PortID = ibctesting.TransferPort
s.path.EndpointB.ChannelConfig.PortID = ibctesting.TransferPort
s.path.EndpointA.ChannelConfig.Version = transfertypes.Version
s.path.EndpointB.ChannelConfig.Version = transfertypes.Version
s.path.EndpointA.ChannelConfig.Version = transfertypes.V2
s.path.EndpointB.ChannelConfig.Version = transfertypes.V2

s.path.Setup()
}
@@ -88,7 +88,7 @@ func (s *CallbacksTestSuite) SetupTransferTest() {
func (s *CallbacksTestSuite) SetupFeeTransferTest() {
s.setupChains()

feeTransferVersion := string(feetypes.ModuleCdc.MustMarshalJSON(&feetypes.Metadata{FeeVersion: feetypes.Version, AppVersion: transfertypes.Version}))
feeTransferVersion := string(feetypes.ModuleCdc.MustMarshalJSON(&feetypes.Metadata{FeeVersion: feetypes.Version, AppVersion: transfertypes.V2}))
s.path.EndpointA.ChannelConfig.Version = feeTransferVersion
s.path.EndpointB.ChannelConfig.Version = feeTransferVersion
s.path.EndpointA.ChannelConfig.PortID = transfertypes.PortID
6 changes: 3 additions & 3 deletions modules/apps/transfer/ibc_module.go
Original file line number Diff line number Diff line change
@@ -89,7 +89,7 @@ func (im IBCModule) OnChanOpenInit(

// default to latest supported version
if strings.TrimSpace(version) == "" {
version = types.Version
version = types.V2
}

if !slices.Contains(types.SupportedVersions, version) {
@@ -120,7 +120,7 @@ func (im IBCModule) OnChanOpenTry(
}

if !slices.Contains(types.SupportedVersions, counterpartyVersion) {
return types.Version, nil
return types.V2, nil
}

// OpenTry must claim the channelCapability that IBC passes into the callback
@@ -375,7 +375,7 @@ func (im IBCModule) OnChanUpgradeTry(ctx sdk.Context, portID, channelID string,
}

if !slices.Contains(types.SupportedVersions, counterpartyVersion) {
return types.Version, nil
return types.V2, nil
}

return counterpartyVersion, nil
28 changes: 14 additions & 14 deletions modules/apps/transfer/ibc_module_test.go
Original file line number Diff line number Diff line change
@@ -31,24 +31,24 @@ func (suite *TransferTestSuite) TestOnChanOpenInit() {
expVersion string
}{
{
"success", func() {}, true, types.Version,
"success", func() {}, true, types.V2,
},
{
// connection hops is not used in the transfer application callback,
// it is already validated in the core OnChanUpgradeInit.
"success: invalid connection hops", func() {
path.EndpointA.ConnectionID = "invalid-connection-id"
}, true, types.Version,
}, true, types.V2,
},
{
"success: empty version string", func() {
channel.Version = ""
}, true, types.Version,
}, true, types.V2,
},
{
"success: ics20-1 legacy", func() {
channel.Version = types.Version1
}, true, types.Version1,
channel.Version = types.V1
}, true, types.V1,
},
{
"max channels reached", func() {
@@ -93,7 +93,7 @@ func (suite *TransferTestSuite) TestOnChanOpenInit() {
Ordering: channeltypes.UNORDERED,
Counterparty: counterparty,
ConnectionHops: []string{path.EndpointA.ConnectionID},
Version: types.Version,
Version: types.V2,
}

var err error
@@ -134,17 +134,17 @@ func (suite *TransferTestSuite) TestOnChanOpenTry() {
expVersion string
}{
{
"success", func() {}, true, types.Version,
"success", func() {}, true, types.V2,
},
{
"success: counterparty version is legacy ics20-1", func() {
counterpartyVersion = types.Version1
}, true, types.Version1,
counterpartyVersion = types.V1
}, true, types.V1,
},
{
"success: invalid counterparty version, we use our proposed version", func() {
counterpartyVersion = "version"
}, true, types.Version,
}, true, types.V2,
},
{
"max channels reached", func() {
@@ -185,9 +185,9 @@ func (suite *TransferTestSuite) TestOnChanOpenTry() {
Ordering: channeltypes.UNORDERED,
Counterparty: counterparty,
ConnectionHops: []string{path.EndpointA.ConnectionID},
Version: types.Version,
Version: types.V2,
}
counterpartyVersion = types.Version
counterpartyVersion = types.V2

module, _, err := suite.chainA.App.GetIBCKeeper().PortKeeper.LookupModuleByPort(suite.chainA.GetContext(), ibctesting.TransferPort)
suite.Require().NoError(err)
@@ -242,7 +242,7 @@ func (suite *TransferTestSuite) TestOnChanOpenAck() {
path := ibctesting.NewTransferPath(suite.chainA, suite.chainB)
path.SetupConnections()
path.EndpointA.ChannelID = ibctesting.FirstChannelID
counterpartyVersion = types.Version
counterpartyVersion = types.V2

module, _, err := suite.chainA.App.GetIBCKeeper().PortKeeper.LookupModuleByPort(suite.chainA.GetContext(), ibctesting.TransferPort)
suite.Require().NoError(err)
@@ -405,7 +405,7 @@ func (suite *TransferTestSuite) TestOnChanUpgradeTry() {
expPass := tc.expError == nil
if expPass {
suite.Require().NoError(err)
suite.Require().Equal(types.Version, version)
suite.Require().Equal(types.V2, version)
} else {
suite.Require().Error(err)
suite.Require().Contains(err.Error(), tc.expError.Error())
2 changes: 1 addition & 1 deletion modules/apps/transfer/keeper/mbt_relay_test.go
Original file line number Diff line number Diff line change
@@ -109,7 +109,7 @@ func AddressFromTla(addr []string) string {
s = addr[2]
} else if len(addr[2]) == 0 {
// escrow address: ics20-1\x00port/channel
s = fmt.Sprintf("%s\x00%s/%s", types.Version1, addr[0], addr[1])
s = fmt.Sprintf("%s\x00%s/%s", types.V1, addr[0], addr[1])
} else {
panic(errors.New("failed to convert from TLA+ address: neither simple nor escrow address"))
}
2 changes: 1 addition & 1 deletion modules/apps/transfer/keeper/msg_server.go
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@ func (k Keeper) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*types.
}

// ics20-1 only supports a single token, so if that is the current version, we must only process a single token.
if appVersion == types.Version1 && len(tokens) > 1 {
if appVersion == types.V1 && len(tokens) > 1 {
return nil, errorsmod.Wrapf(ibcerrors.ErrInvalidRequest, "cannot transfer multiple tokens with ics20-1")
}

2 changes: 1 addition & 1 deletion modules/apps/transfer/keeper/msg_server_test.go
Original file line number Diff line number Diff line change
@@ -143,7 +143,7 @@ func (suite *KeeperTestSuite) TestMsgTransfer() {

// explicitly set to ics20-1 which does not support multi-denom
path.EndpointA.UpdateChannel(func(channel *channeltypes.Channel) {
channel.Version = types.Version1
channel.Version = types.V1
})
},
ibcerrors.ErrInvalidRequest,
16 changes: 9 additions & 7 deletions modules/apps/transfer/types/keys.go
Original file line number Diff line number Diff line change
@@ -35,15 +35,17 @@ const (
)

const (
// Version defines the current version the IBC transfer
// module supports
Version = "ics20-2"
// V1 defines first version of the IBC transfer module
V1 = "ics20-1"

// Version1 defines first version of the IBC transfer module
Version1 = "ics20-1"
// V2 defines the current version the IBC transfer
// module supports
V2 = "ics20-2"

// escrowAddressVersion should remain as ics20-1 to avoid the address changing.
escrowAddressVersion = Version1
// this address has been reasoned about to avoid collisions with other addresses
// https://github.com/cosmos/cosmos-sdk/issues/7737#issuecomment-735671951
escrowAddressVersion = V1
)

var (
@@ -53,7 +55,7 @@ var (
DenomTraceKey = []byte{0x02}

// SupportedVersions defines all versions that are supported by the module
SupportedVersions = []string{Version, Version1}
SupportedVersions = []string{V2, V1}
)

// GetEscrowAddress returns the escrow address for the specified channel.
4 changes: 2 additions & 2 deletions testing/path.go
Original file line number Diff line number Diff line change
@@ -47,8 +47,8 @@ func NewTransferPath(chainA, chainB *TestChain) *Path {
path := NewPath(chainA, chainB)
path.EndpointA.ChannelConfig.PortID = TransferPort
path.EndpointB.ChannelConfig.PortID = TransferPort
path.EndpointA.ChannelConfig.Version = transfertypes.Version
path.EndpointB.ChannelConfig.Version = transfertypes.Version
path.EndpointA.ChannelConfig.Version = transfertypes.V2
path.EndpointB.ChannelConfig.Version = transfertypes.V2

return path
}
10 changes: 5 additions & 5 deletions testing/solomachine.go
Original file line number Diff line number Diff line change
@@ -312,7 +312,7 @@ func (solo *Solomachine) ConnOpenAck(chain *TestChain, clientID, connectionID st
func (solo *Solomachine) ChanOpenInit(chain *TestChain, connectionID string) string {
msgChanOpenInit := channeltypes.NewMsgChannelOpenInit(
transfertypes.PortID,
transfertypes.Version,
transfertypes.V2,
channeltypes.UNORDERED,
[]string{connectionID},
transfertypes.PortID,
@@ -332,12 +332,12 @@ func (solo *Solomachine) ChanOpenInit(chain *TestChain, connectionID string) str
// ChanOpenAck performs the channel open ack handshake step on the tendermint chain for the associated
// solo machine client.
func (solo *Solomachine) ChanOpenAck(chain *TestChain, channelID string) {
tryProof := solo.GenerateChanOpenTryProof(transfertypes.PortID, transfertypes.Version, channelID)
tryProof := solo.GenerateChanOpenTryProof(transfertypes.PortID, transfertypes.V2, channelID)
msgChanOpenAck := channeltypes.NewMsgChannelOpenAck(
transfertypes.PortID,
channelID,
channelIDSolomachine,
transfertypes.Version,
transfertypes.V2,
tryProof,
clienttypes.ZeroHeight(),
chain.SenderAccount.GetAddress().String(),
@@ -351,7 +351,7 @@ func (solo *Solomachine) ChanOpenAck(chain *TestChain, channelID string) {
// ChanCloseConfirm performs the channel close confirm handshake step on the tendermint chain for the associated
// solo machine client.
func (solo *Solomachine) ChanCloseConfirm(chain *TestChain, portID, channelID string) {
initProof := solo.GenerateChanClosedProof(portID, transfertypes.Version, channelID)
initProof := solo.GenerateChanClosedProof(portID, transfertypes.V2, channelID)
msgChanCloseConfirm := channeltypes.NewMsgChannelCloseConfirm(
portID,
channelID,
@@ -442,7 +442,7 @@ func (solo *Solomachine) TimeoutPacket(chain *TestChain, packet channeltypes.Pac

// TimeoutPacketOnClose creates a channel closed and unreceived packet proof and broadcasts a MsgTimeoutOnClose.
func (solo *Solomachine) TimeoutPacketOnClose(chain *TestChain, packet channeltypes.Packet, channelID string) {
closedProof := solo.GenerateChanClosedProof(transfertypes.PortID, transfertypes.Version, channelID)
closedProof := solo.GenerateChanClosedProof(transfertypes.PortID, transfertypes.V2, channelID)
unreceivedProof := solo.GenerateReceiptAbsenceProof(packet)
msgTimeout := channeltypes.NewMsgTimeoutOnClose(
packet,