@@ -13,8 +13,8 @@ import (
1313 "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp"
1414 "github.com/cosmos/ibc-go/modules/apps/callbacks/types"
1515 icacontrollertypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types"
16- transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
17- multidenom "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types/v3"
16+ transferv1types "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
17+ transferv3types "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types/v3"
1818 clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
1919 channelkeeper "github.com/cosmos/ibc-go/v8/modules/core/04-channel/keeper"
2020 channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
@@ -94,7 +94,7 @@ func (s *CallbacksTestSuite) TestWithICS4Wrapper() {
9494}
9595
9696func (s * CallbacksTestSuite ) TestSendPacket () {
97- var packetData transfertypes .FungibleTokenPacketData
97+ var packetData transferv3types .FungibleTokenPacketData
9898
9999 testCases := []struct {
100100 name string
@@ -165,9 +165,17 @@ func (s *CallbacksTestSuite) TestSendPacket() {
165165
166166 transferICS4Wrapper := GetSimApp (s .chainA ).TransferKeeper .GetICS4Wrapper ()
167167
168- packetData = transfertypes .NewFungibleTokenPacketData (
169- ibctesting .TestCoin .GetDenom (), ibctesting .TestCoin .Amount .String (), ibctesting .TestAccAddress ,
170- ibctesting .TestAccAddress , fmt .Sprintf (`{"src_callback": {"address": "%s"}}` , simapp .SuccessContract ),
168+ packetData = transferv3types .NewFungibleTokenPacketData (
169+ []* transferv3types.Token {
170+ {
171+ Denom : ibctesting .TestCoin .GetDenom (),
172+ Amount : ibctesting .TestCoin .Amount .String (),
173+ Trace : []string {},
174+ },
175+ },
176+ ibctesting .TestAccAddress ,
177+ ibctesting .TestAccAddress ,
178+ fmt .Sprintf (`{"src_callback": {"address": "%s"}}` , simapp .SuccessContract ),
171179 )
172180
173181 chanCap := s .path .EndpointA .Chain .GetChannelCapability (s .path .EndpointA .ChannelConfig .PortID , s .path .EndpointA .ChannelID )
@@ -223,7 +231,7 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
223231 )
224232
225233 var (
226- packetData transfertypes .FungibleTokenPacketData
234+ packetData transferv3types .FungibleTokenPacketData
227235 packet channeltypes.Packet
228236 ack []byte
229237 ctx sdk.Context
@@ -299,8 +307,16 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
299307 s .SetupTransferTest ()
300308
301309 userGasLimit = 600000
302- packetData = transfertypes .NewFungibleTokenPacketData (
303- ibctesting .TestCoin .GetDenom (), ibctesting .TestCoin .Amount .String (), ibctesting .TestAccAddress , ibctesting .TestAccAddress ,
310+ packetData = transferv3types .NewFungibleTokenPacketData (
311+ []* transferv3types.Token {
312+ {
313+ Denom : ibctesting .TestCoin .GetDenom (),
314+ Amount : ibctesting .TestCoin .Amount .String (),
315+ Trace : []string {},
316+ },
317+ },
318+ ibctesting .TestAccAddress ,
319+ ibctesting .TestAccAddress ,
304320 fmt .Sprintf (`{"src_callback": {"address":"%s", "gas_limit":"%d"}}` , simapp .SuccessContract , userGasLimit ),
305321 )
306322
@@ -323,7 +339,7 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
323339 tc .malleate ()
324340
325341 // callbacks module is routed as top level middleware
326- transferStack , ok := s .chainA .App .GetIBCKeeper ().Router .GetRoute (transfertypes .ModuleName )
342+ transferStack , ok := s .chainA .App .GetIBCKeeper ().Router .GetRoute (transferv1types .ModuleName )
327343 s .Require ().True (ok )
328344
329345 onAcknowledgementPacket := func () error {
@@ -385,7 +401,7 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
385401 )
386402
387403 var (
388- packetData transfertypes .FungibleTokenPacketData
404+ packetData transferv3types .FungibleTokenPacketData
389405 packet channeltypes.Packet
390406 ctx sdk.Context
391407 )
@@ -408,7 +424,7 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
408424 packet .Data = []byte ("invalid packet data" )
409425 },
410426 noExecution ,
411- ibcerrors .ErrUnknownRequest ,
427+ ibcerrors .ErrInvalidType ,
412428 },
413429 {
414430 "success: no-op on callback data is not valid" ,
@@ -462,7 +478,7 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
462478 // succeed on timeout
463479 userGasLimit := 600_000
464480 timeoutTimestamp := uint64 (s .chainB .GetContext ().BlockTime ().UnixNano ())
465- msg := transfertypes .NewMsgTransfer (
481+ msg := transferv1types .NewMsgTransfer (
466482 s .path .EndpointA .ChannelConfig .PortID , s .path .EndpointA .ChannelID ,
467483 sdk .NewCoins (ibctesting .TestCoin ), s .chainA .SenderAccount .GetAddress ().String (),
468484 s .chainB .SenderAccount .GetAddress ().String (), clienttypes .ZeroHeight (), timeoutTimestamp ,
@@ -486,7 +502,7 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
486502 tc .malleate ()
487503
488504 // callbacks module is routed as top level middleware
489- transferStack , ok := s .chainA .App .GetIBCKeeper ().Router .GetRoute (transfertypes .ModuleName )
505+ transferStack , ok := s .chainA .App .GetIBCKeeper ().Router .GetRoute (transferv1types .ModuleName )
490506 s .Require ().True (ok )
491507
492508 onTimeoutPacket := func () error {
@@ -547,7 +563,7 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
547563 )
548564
549565 var (
550- packetData transfertypes .FungibleTokenPacketData
566+ packetData transferv3types .FungibleTokenPacketData
551567 packet channeltypes.Packet
552568 ctx sdk.Context
553569 userGasLimit uint64
@@ -624,8 +640,16 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
624640
625641 // set user gas limit above panic level in mock contract keeper
626642 userGasLimit = 600_000
627- packetData = transfertypes .NewFungibleTokenPacketData (
628- ibctesting .TestCoin .GetDenom (), ibctesting .TestCoin .Amount .String (), ibctesting .TestAccAddress , s .chainB .SenderAccount .GetAddress ().String (),
643+ packetData = transferv3types .NewFungibleTokenPacketData (
644+ []* transferv3types.Token {
645+ {
646+ Denom : ibctesting .TestCoin .GetDenom (),
647+ Amount : ibctesting .TestCoin .Amount .String (),
648+ Trace : []string {},
649+ },
650+ },
651+ ibctesting .TestAccAddress ,
652+ s .chainB .SenderAccount .GetAddress ().String (),
629653 fmt .Sprintf (`{"dest_callback": {"address":"%s", "gas_limit":"%d"}}` , ibctesting .TestAccAddress , userGasLimit ),
630654 )
631655
@@ -646,7 +670,7 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
646670 tc .malleate ()
647671
648672 // callbacks module is routed as top level middleware
649- transferStack , ok := s .chainB .App .GetIBCKeeper ().Router .GetRoute (transfertypes .ModuleName )
673+ transferStack , ok := s .chainB .App .GetIBCKeeper ().Router .GetRoute (transferv1types .ModuleName )
650674 s .Require ().True (ok )
651675
652676 onRecvPacket := func () ibcexported.Acknowledgement {
@@ -701,7 +725,7 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
701725
702726func (s * CallbacksTestSuite ) TestWriteAcknowledgement () {
703727 var (
704- packetData transfertypes .FungibleTokenPacketData
728+ packetData transferv3types .FungibleTokenPacketData
705729 packet channeltypes.Packet
706730 ctx sdk.Context
707731 ack ibcexported.Acknowledgement
@@ -748,8 +772,16 @@ func (s *CallbacksTestSuite) TestWriteAcknowledgement() {
748772 s .SetupTransferTest ()
749773
750774 // set user gas limit above panic level in mock contract keeper
751- packetData = transfertypes .NewFungibleTokenPacketData (
752- ibctesting .TestCoin .GetDenom (), ibctesting .TestCoin .Amount .String (), ibctesting .TestAccAddress , s .chainB .SenderAccount .GetAddress ().String (),
775+ packetData = transferv3types .NewFungibleTokenPacketData (
776+ []* transferv3types.Token {
777+ {
778+ Denom : ibctesting .TestCoin .GetDenom (),
779+ Amount : ibctesting .TestCoin .Amount .String (),
780+ Trace : []string {},
781+ },
782+ },
783+ ibctesting .TestAccAddress ,
784+ s .chainB .SenderAccount .GetAddress ().String (),
753785 fmt .Sprintf (`{"dest_callback": {"address":"%s", "gas_limit":"600000"}}` , ibctesting .TestAccAddress ),
754786 )
755787
@@ -945,37 +977,44 @@ func (s *CallbacksTestSuite) TestUnmarshalPacketData() {
945977
946978 // We will pass the function call down the transfer stack to the transfer module
947979 // transfer stack UnmarshalPacketData call order: callbacks -> fee -> transfer
948- transferStack , ok := s .chainA .App .GetIBCKeeper ().Router .GetRoute (transfertypes .ModuleName )
980+ transferStack , ok := s .chainA .App .GetIBCKeeper ().Router .GetRoute (transferv1types .ModuleName )
949981 s .Require ().True (ok )
950982
951983 unmarshalerStack , ok := transferStack .(types.CallbacksCompatibleModule )
952984 s .Require ().True (ok )
953985
954- initialPacketData := transfertypes .FungibleTokenPacketData {
986+ expPacketDataICS20V1 := transferv1types .FungibleTokenPacketData {
955987 Denom : ibctesting .TestCoin .Denom ,
956988 Amount : ibctesting .TestCoin .Amount .String (),
957989 Sender : ibctesting .TestAccAddress ,
958990 Receiver : ibctesting .TestAccAddress ,
959991 Memo : fmt .Sprintf (`{"src_callback": {"address": "%s"}, "dest_callback": {"address":"%s"}}` , ibctesting .TestAccAddress , ibctesting .TestAccAddress ),
960992 }
961- data := initialPacketData .GetBytes ()
962993
963- expPacketData := multidenom .FungibleTokenPacketData {
964- Tokens : []* multidenom .Token {
994+ expPacketDataICS20V2 := transferv3types .FungibleTokenPacketData {
995+ Tokens : []* transferv3types .Token {
965996 {
966- Denom : initialPacketData .Denom ,
967- Amount : initialPacketData . Amount ,
968- Trace : [] string { "" } ,
997+ Denom : ibctesting . TestCoin .Denom ,
998+ Amount : ibctesting . TestCoin . Amount . String () ,
999+ Trace : nil ,
9691000 },
9701001 },
971- Sender : initialPacketData . Sender ,
972- Receiver : initialPacketData . Receiver ,
973- Memo : initialPacketData . Memo ,
1002+ Sender : ibctesting . TestAccAddress ,
1003+ Receiver : ibctesting . TestAccAddress ,
1004+ Memo : fmt . Sprintf ( `{"src_callback": {"address": "%s"}, "dest_callback": {"address":"%s"}}` , ibctesting . TestAccAddress , ibctesting . TestAccAddress ) ,
9741005 }
9751006
1007+ // Unmarshal ICS20 v1 packet data
1008+ data := expPacketDataICS20V1 .GetBytes ()
9761009 packetData , err := unmarshalerStack .UnmarshalPacketData (data )
9771010 s .Require ().NoError (err )
978- s .Require ().Equal (expPacketData , packetData )
1011+ s .Require ().Equal (expPacketDataICS20V2 , packetData )
1012+
1013+ // Unmarshal ICS20 v1 packet data
1014+ data = expPacketDataICS20V2 .GetBytes ()
1015+ packetData , err = unmarshalerStack .UnmarshalPacketData (data )
1016+ s .Require ().NoError (err )
1017+ s .Require ().Equal (expPacketDataICS20V2 , packetData )
9791018}
9801019
9811020func (s * CallbacksTestSuite ) TestGetAppVersion () {
0 commit comments