Skip to content

Commit a7f6baf

Browse files
committed
chore(transfer): make Forwarding non-null
1 parent c546f69 commit a7f6baf

39 files changed

+233
-237
lines changed

e2e/tests/transfer/authz_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ func (suite *AuthzTransferTestSuite) TestAuthz_MsgTransfer_Succeeds() {
127127
suite.GetTimeoutHeight(ctx, chainB),
128128
0,
129129
"",
130-
nil,
130+
transfertypes.Forwarding{},
131131
)
132132

133133
protoAny, err := codectypes.NewAnyWithValue(transferMsg)
@@ -188,7 +188,7 @@ func (suite *AuthzTransferTestSuite) TestAuthz_MsgTransfer_Succeeds() {
188188
suite.GetTimeoutHeight(ctx, chainB),
189189
0,
190190
"",
191-
nil,
191+
transfertypes.Forwarding{},
192192
)
193193

194194
protoAny, err := codectypes.NewAnyWithValue(transferMsg)
@@ -271,7 +271,7 @@ func (suite *AuthzTransferTestSuite) TestAuthz_InvalidTransferAuthorizations() {
271271
suite.GetTimeoutHeight(ctx, chainB),
272272
0,
273273
"",
274-
nil,
274+
transfertypes.Forwarding{},
275275
)
276276

277277
protoAny, err := codectypes.NewAnyWithValue(transferMsg)
@@ -332,7 +332,7 @@ func (suite *AuthzTransferTestSuite) TestAuthz_InvalidTransferAuthorizations() {
332332
suite.GetTimeoutHeight(ctx, chainB),
333333
0,
334334
"",
335-
nil,
335+
transfertypes.NewForwarding(""),
336336
)
337337

338338
protoAny, err := codectypes.NewAnyWithValue(transferMsg)

e2e/tests/transfer/incentivized_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/cosmos/ibc-go/e2e/testsuite/query"
2121
"github.com/cosmos/ibc-go/e2e/testvalues"
2222
feetypes "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"
23+
transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
2324
channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
2425
)
2526

@@ -211,7 +212,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_InvalidReceiverAccou
211212
s.GetTimeoutHeight(ctx, chainB),
212213
0,
213214
"",
214-
nil,
215+
transfertypes.Forwarding{},
215216
)
216217
txResp := s.BroadcastMessages(ctx, chainA, chainAWallet, msgTransfer)
217218
// this message should be successful, as receiver account is not validated on the sending chain.
@@ -350,7 +351,7 @@ func (s *IncentivizedTransferTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender
350351
s.GetTimeoutHeight(ctx, chainB),
351352
0,
352353
"",
353-
nil,
354+
transfertypes.Forwarding{},
354355
)
355356
resp := s.BroadcastMessages(ctx, chainA, chainAWallet, msgPayPacketFee, msgTransfer)
356357
s.AssertTxSuccess(resp)

e2e/tests/transfer/upgrades_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"github.com/cosmos/ibc-go/e2e/testsuite/query"
2020
"github.com/cosmos/ibc-go/e2e/testvalues"
2121
feetypes "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"
22+
transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
2223
channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
2324
)
2425

@@ -208,7 +209,7 @@ func (s *TransferChannelUpgradesTestSuite) TestChannelUpgrade_WithFeeMiddleware_
208209
s.GetTimeoutHeight(ctx, chainB),
209210
0,
210211
"",
211-
nil,
212+
transfertypes.Forwarding{},
212213
)
213214
resp := s.BroadcastMessages(ctx, chainA, chainAWallet, msgPayPacketFee, msgTransfer)
214215
s.AssertTxSuccess(resp)

e2e/tests/upgrades/upgrade_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"github.com/cosmos/ibc-go/e2e/testsuite/query"
2929
"github.com/cosmos/ibc-go/e2e/testvalues"
3030
feetypes "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"
31+
transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
3132
v7migrations "github.com/cosmos/ibc-go/v8/modules/core/02-client/migrations/v7"
3233
clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
3334
connectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types"
@@ -966,7 +967,7 @@ func (s *UpgradeTestSuite) TestV8ToV8_1ChainUpgrade_ChannelUpgrades() {
966967
s.GetTimeoutHeight(ctx, chainB),
967968
0,
968969
"",
969-
nil,
970+
transfertypes.Forwarding{},
970971
)
971972
resp := s.BroadcastMessages(ctx, chainA, chainAWallet, msgPayPacketFee, msgTransfer)
972973
s.AssertTxSuccess(resp)

e2e/testsuite/testsuite.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,7 @@ func getValidatorsAndFullNodes(chainIdx int) (int, int) {
625625
}
626626

627627
// GetMsgTransfer returns a MsgTransfer that is constructed based on the channel version
628-
func GetMsgTransfer(portID, channelID, version string, tokens sdk.Coins, sender, receiver string, timeoutHeight clienttypes.Height, timeoutTimestamp uint64, memo string, forwarding *transfertypes.Forwarding) *transfertypes.MsgTransfer {
628+
func GetMsgTransfer(portID, channelID, version string, tokens sdk.Coins, sender, receiver string, timeoutHeight clienttypes.Height, timeoutTimestamp uint64, memo string, forwarding transfertypes.Forwarding) *transfertypes.MsgTransfer {
629629
if len(tokens) == 0 {
630630
panic(errors.New("tokens cannot be empty"))
631631
}

e2e/testsuite/tx.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"github.com/cosmos/ibc-go/e2e/testsuite/sanitize"
3131
"github.com/cosmos/ibc-go/e2e/testvalues"
3232
feetypes "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"
33+
transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
3334
clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
3435
channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
3536
)
@@ -297,7 +298,7 @@ func (s *E2ETestSuite) Transfer(ctx context.Context, chain ibc.Chain, user ibc.W
297298
transferVersion = version.AppVersion
298299
}
299300

300-
msg := GetMsgTransfer(portID, channelID, transferVersion, tokens, sender, receiver, timeoutHeight, timeoutTimestamp, memo, nil)
301+
msg := GetMsgTransfer(portID, channelID, transferVersion, tokens, sender, receiver, timeoutHeight, timeoutTimestamp, memo, transfertypes.Forwarding{})
301302

302303
return s.BroadcastMessages(ctx, chain, user, msg)
303304
}

modules/apps/27-interchain-accounts/host/keeper/relay_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ func (suite *KeeperTestSuite) TestOnRecvPacket() {
353353
suite.chainB.GetTimeoutHeight(),
354354
0,
355355
"",
356-
nil,
356+
transfertypes.Forwarding{},
357357
)
358358

359359
data, err := icatypes.SerializeCosmosTx(suite.chainA.GetSimApp().AppCodec(), []proto.Message{msg}, encoding)
@@ -389,7 +389,7 @@ func (suite *KeeperTestSuite) TestOnRecvPacket() {
389389
suite.chainB.GetTimeoutHeight(),
390390
0,
391391
"",
392-
nil,
392+
transfertypes.Forwarding{},
393393
)
394394

395395
data, err := icatypes.SerializeCosmosTx(suite.chainA.GetSimApp().AppCodec(), []proto.Message{msg}, encoding)

modules/apps/29-fee/keeper/events_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func (suite *KeeperTestSuite) TestDistributeFeeEvent() {
115115
path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID,
116116
sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(100))), suite.chainA.SenderAccount.GetAddress().String(), suite.chainB.SenderAccount.GetAddress().String(),
117117
clienttypes.NewHeight(1, 100), 0, "",
118-
nil,
118+
transfertypes.Forwarding{},
119119
)
120120

121121
res, err := suite.chainA.SendMsgs(msgPayPacketFee, msgTransfer)

modules/apps/29-fee/transfer_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func (suite *FeeTestSuite) TestFeeTransfer() {
4646

4747
msgs := []sdk.Msg{
4848
types.NewMsgPayPacketFee(fee, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, suite.chainA.SenderAccount.GetAddress().String(), nil),
49-
transfertypes.NewMsgTransfer(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, tc.coinsToTransfer, suite.chainA.SenderAccount.GetAddress().String(), suite.chainB.SenderAccount.GetAddress().String(), clienttypes.NewHeight(1, 100), 0, "", nil),
49+
transfertypes.NewMsgTransfer(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, tc.coinsToTransfer, suite.chainA.SenderAccount.GetAddress().String(), suite.chainB.SenderAccount.GetAddress().String(), clienttypes.NewHeight(1, 100), 0, "", transfertypes.Forwarding{}),
5050
}
5151

5252
res, err := suite.chainA.SendMsgs(msgs...)
@@ -157,7 +157,7 @@ func (suite *FeeTestSuite) TestTransferFeeUpgrade() {
157157
fee := types.NewFee(defaultRecvFee, defaultAckFee, defaultTimeoutFee)
158158
msgs := []sdk.Msg{
159159
types.NewMsgPayPacketFee(fee, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, suite.chainA.SenderAccount.GetAddress().String(), nil),
160-
transfertypes.NewMsgTransfer(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, sdk.NewCoins(ibctesting.TestCoin), suite.chainA.SenderAccount.GetAddress().String(), suite.chainB.SenderAccount.GetAddress().String(), clienttypes.NewHeight(1, 100), 0, "", nil),
160+
transfertypes.NewMsgTransfer(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, sdk.NewCoins(ibctesting.TestCoin), suite.chainA.SenderAccount.GetAddress().String(), suite.chainB.SenderAccount.GetAddress().String(), clienttypes.NewHeight(1, 100), 0, "", transfertypes.Forwarding{}),
161161
}
162162

163163
res, err := suite.chainA.SendMsgs(msgs...)

modules/apps/callbacks/ibc_middleware_test.go

+8-6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import (
2424
ibcmock "github.com/cosmos/ibc-go/v8/testing/mock"
2525
)
2626

27+
var emptyForwarding = transfertypes.Forwarding{}
28+
2729
func (s *CallbacksTestSuite) TestNewIBCMiddleware() {
2830
testCases := []struct {
2931
name string
@@ -186,7 +188,7 @@ func (s *CallbacksTestSuite) TestSendPacket() {
186188
ibctesting.TestAccAddress,
187189
ibctesting.TestAccAddress,
188190
fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.SuccessContract),
189-
nil,
191+
emptyForwarding,
190192
)
191193

192194
chanCap := s.path.EndpointA.Chain.GetChannelCapability(s.path.EndpointA.ChannelConfig.PortID, s.path.EndpointA.ChannelID)
@@ -328,7 +330,7 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
328330
ibctesting.TestAccAddress,
329331
ibctesting.TestAccAddress,
330332
fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"%d"}}`, simapp.SuccessContract, userGasLimit),
331-
nil,
333+
emptyForwarding,
332334
)
333335

334336
packet = channeltypes.Packet{
@@ -494,7 +496,7 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
494496
sdk.NewCoins(ibctesting.TestCoin), s.chainA.SenderAccount.GetAddress().String(),
495497
s.chainB.SenderAccount.GetAddress().String(), clienttypes.ZeroHeight(), timeoutTimestamp,
496498
fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"%d"}}`, ibctesting.TestAccAddress, userGasLimit), // set user gas limit above panic level in mock contract keeper
497-
nil,
499+
emptyForwarding,
498500
)
499501

500502
res, err := s.chainA.SendMsgs(msg)
@@ -662,7 +664,7 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
662664
ibctesting.TestAccAddress,
663665
s.chainB.SenderAccount.GetAddress().String(),
664666
fmt.Sprintf(`{"dest_callback": {"address":"%s", "gas_limit":"%d"}}`, ibctesting.TestAccAddress, userGasLimit),
665-
nil,
667+
emptyForwarding,
666668
)
667669

668670
packet = channeltypes.Packet{
@@ -794,7 +796,7 @@ func (s *CallbacksTestSuite) TestWriteAcknowledgement() {
794796
ibctesting.TestAccAddress,
795797
s.chainB.SenderAccount.GetAddress().String(),
796798
fmt.Sprintf(`{"dest_callback": {"address":"%s", "gas_limit":"600000"}}`, ibctesting.TestAccAddress),
797-
nil,
799+
emptyForwarding,
798800
)
799801

800802
packet = channeltypes.Packet{
@@ -1018,7 +1020,7 @@ func (s *CallbacksTestSuite) TestUnmarshalPacketDataV1() {
10181020
Sender: ibctesting.TestAccAddress,
10191021
Receiver: ibctesting.TestAccAddress,
10201022
Memo: fmt.Sprintf(`{"src_callback": {"address": "%s"}, "dest_callback": {"address":"%s"}}`, ibctesting.TestAccAddress, ibctesting.TestAccAddress),
1021-
Forwarding: nil,
1023+
Forwarding: emptyForwarding,
10221024
}
10231025

10241026
portID := s.path.EndpointA.ChannelConfig.PortID

modules/apps/callbacks/replay_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ func (s *CallbacksTestSuite) ExecuteFailedTransfer(memo string) {
330330
s.chainA.SenderAccount.GetAddress().String(),
331331
s.chainB.SenderAccount.GetAddress().String(),
332332
clienttypes.NewHeight(1, 100), 0, memo,
333-
nil,
333+
transfertypes.Forwarding{},
334334
)
335335

336336
res, err := s.chainA.SendMsgs(msg)

modules/apps/callbacks/transfer_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ func (s *CallbacksTestSuite) ExecuteTransfer(memo string) {
193193
s.chainA.SenderAccount.GetAddress().String(),
194194
s.chainB.SenderAccount.GetAddress().String(),
195195
clienttypes.NewHeight(1, 100), 0, memo,
196-
nil,
196+
transfertypes.Forwarding{},
197197
)
198198

199199
res, err := s.chainA.SendMsgs(msg)
@@ -228,7 +228,7 @@ func (s *CallbacksTestSuite) ExecuteTransferTimeout(memo string) {
228228
s.chainA.SenderAccount.GetAddress().String(),
229229
s.chainB.SenderAccount.GetAddress().String(),
230230
timeoutHeight, timeoutTimestamp, memo,
231-
nil,
231+
transfertypes.Forwarding{},
232232
)
233233

234234
res, err := s.chainA.SendMsgs(msg)

modules/apps/transfer/client/cli/tx.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ using the {packet-timeout-timestamp} flag. If no timeout value is set then a def
9797
}
9898

9999
// If parsed, set and replace memo.
100-
if forwarding != nil {
100+
if len(forwarding.Hops) > 0 {
101101
forwarding.Memo = memo
102102
memo = ""
103103
}
@@ -142,22 +142,22 @@ using the {packet-timeout-timestamp} flag. If no timeout value is set then a def
142142

143143
// parseForwarding parses the forwarding flag into a Forwarding object or nil if the flag is not specified. If the flag cannot
144144
// be parsed or the hops aren't in the portID/channelID format an error is returned.
145-
func parseForwarding(cmd *cobra.Command) (*types.Forwarding, error) {
145+
func parseForwarding(cmd *cobra.Command) (types.Forwarding, error) {
146146
var hops []types.Hop
147147

148148
forwardingString, err := cmd.Flags().GetString(flagForwarding)
149149
if err != nil {
150-
return nil, err
150+
return types.Forwarding{}, err
151151
}
152152
if strings.TrimSpace(forwardingString) == "" {
153-
return nil, nil
153+
return types.Forwarding{}, nil
154154
}
155155

156156
pairs := strings.Split(forwardingString, ",")
157157
for _, pair := range pairs {
158158
pairSplit := strings.Split(pair, "/")
159159
if len(pairSplit) != 2 {
160-
return nil, fmt.Errorf("expected a portID/channelID pair, found %s", pair)
160+
return types.Forwarding{}, fmt.Errorf("expected a portID/channelID pair, found %s", pair)
161161
}
162162

163163
hop := types.Hop{PortId: pairSplit[0], ChannelId: pairSplit[1]}

modules/apps/transfer/ibc_module.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ func (im IBCModule) OnRecvPacket(
211211

212212
im.keeper.Logger(ctx).Info("successfully handled ICS-20 packet", "sequence", packet.Sequence)
213213

214-
if data.Forwarding != nil {
214+
if len(data.Forwarding.Hops) > 0 {
215215
// NOTE: acknowledgement will be written asynchronously
216216
return nil
217217
}

modules/apps/transfer/ibc_module_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ func (suite *TransferTestSuite) TestOnRecvPacket() {
355355
suite.chainA.SenderAccount.GetAddress().String(),
356356
suite.chainB.SenderAccount.GetAddress().String(),
357357
"",
358-
nil,
358+
types.Forwarding{},
359359
)
360360

361361
tokensBz, err := json.Marshal(packetData.Tokens)
@@ -476,7 +476,7 @@ func (suite *TransferTestSuite) TestOnTimeoutPacket() {
476476
timeoutHeight,
477477
0,
478478
"",
479-
nil,
479+
types.Forwarding{},
480480
)
481481
res, err := suite.chainA.SendMsgs(msg)
482482
suite.Require().NoError(err) // message committed

modules/apps/transfer/internal/convert/convert.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ func PacketDataV1ToV2(packetData types.FungibleTokenPacketData) (types.FungibleT
2424
Sender: packetData.Sender,
2525
Receiver: packetData.Receiver,
2626
Memo: packetData.Memo,
27-
Forwarding: nil,
27+
Forwarding: types.Forwarding{},
2828
}, nil
2929
}

0 commit comments

Comments
 (0)