Skip to content

Commit 864fc8d

Browse files
committed
chore: merge main
2 parents 29bda1e + 0beaba6 commit 864fc8d

File tree

19 files changed

+285
-322
lines changed

19 files changed

+285
-322
lines changed

modules/apps/callbacks/ibc_middleware_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func (s *CallbacksTestSuite) TestSendPacket() {
169169
{
170170
Denom: transfertypes.Denom{
171171
Base: ibctesting.TestCoin.GetDenom(),
172-
Trace: []string{},
172+
Trace: []transfertypes.Trace{},
173173
},
174174
Amount: ibctesting.TestCoin.Amount.String(),
175175
},
@@ -313,7 +313,7 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
313313
{
314314
Denom: transfertypes.Denom{
315315
Base: ibctesting.TestCoin.GetDenom(),
316-
Trace: []string{},
316+
Trace: []transfertypes.Trace{},
317317
},
318318
Amount: ibctesting.TestCoin.Amount.String(),
319319
},
@@ -648,7 +648,7 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
648648
{
649649
Denom: transfertypes.Denom{
650650
Base: ibctesting.TestCoin.GetDenom(),
651-
Trace: []string{},
651+
Trace: []transfertypes.Trace{},
652652
},
653653
Amount: ibctesting.TestCoin.Amount.String(),
654654
},
@@ -782,7 +782,7 @@ func (s *CallbacksTestSuite) TestWriteAcknowledgement() {
782782
{
783783
Denom: transfertypes.Denom{
784784
Base: ibctesting.TestCoin.GetDenom(),
785-
Trace: []string{},
785+
Trace: []transfertypes.Trace{},
786786
},
787787
Amount: ibctesting.TestCoin.Amount.String(),
788788
},

modules/apps/transfer/ibc_module_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -556,8 +556,10 @@ func (suite *TransferTestSuite) TestPacketDataUnmarshalerInterface() {
556556
Tokens: []types.Token{
557557
{
558558
Denom: types.Denom{
559-
Base: "atom",
560-
Trace: []string{"transfer/channel-0"},
559+
Base: "atom",
560+
Trace: []types.Trace{
561+
types.NewTrace("transfer", "channel-0"),
562+
},
561563
},
562564
Amount: ibctesting.TestCoin.Amount.String(),
563565
},
@@ -603,7 +605,7 @@ func (suite *TransferTestSuite) TestPacketDataUnmarshalerInterface() {
603605
{
604606
Denom: types.Denom{
605607
Base: ibctesting.TestCoin.Denom,
606-
Trace: []string{""},
608+
Trace: []types.Trace{{}},
607609
},
608610
Amount: ibctesting.TestCoin.Amount.String(),
609611
},
@@ -615,7 +617,7 @@ func (suite *TransferTestSuite) TestPacketDataUnmarshalerInterface() {
615617

616618
data = initialPacketData.(types.FungibleTokenPacketDataV2).GetBytes()
617619
},
618-
errors.New("trace info must come in pairs of port and channel identifiers"),
620+
errors.New("invalid token denom: invalid trace: invalid portID: identifier cannot be blank: invalid identifier"),
619621
},
620622
{
621623
"failure: invalid packet data",

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

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ func TestConvertPacketV1ToPacketV2(t *testing.T) {
2929
[]types.Token{
3030
{
3131
Denom: types.Denom{
32-
Base: "atom",
33-
Trace: []string{"transfer/channel-0"},
32+
Base: "atom",
33+
Trace: []types.Trace{
34+
types.NewTrace("transfer", "channel-0"),
35+
},
3436
},
3537
Amount: "1000",
3638
},
@@ -59,8 +61,10 @@ func TestConvertPacketV1ToPacketV2(t *testing.T) {
5961
[]types.Token{
6062
{
6163
Denom: types.Denom{
62-
Base: "atom/withslash",
63-
Trace: []string{"transfer/channel-0"},
64+
Base: "atom/withslash",
65+
Trace: []types.Trace{
66+
types.NewTrace("transfer", "channel-0"),
67+
},
6468
},
6569
Amount: "1000",
6670
},
@@ -74,8 +78,10 @@ func TestConvertPacketV1ToPacketV2(t *testing.T) {
7478
[]types.Token{
7579
{
7680
Denom: types.Denom{
77-
Base: "atom/",
78-
Trace: []string{"transfer/channel-0"},
81+
Base: "atom/",
82+
Trace: []types.Trace{
83+
types.NewTrace("transfer", "channel-0"),
84+
},
7985
},
8086
Amount: "1000",
8187
},
@@ -89,8 +95,11 @@ func TestConvertPacketV1ToPacketV2(t *testing.T) {
8995
[]types.Token{
9096
{
9197
Denom: types.Denom{
92-
Base: "atom/pool",
93-
Trace: []string{"transfer/channel-0", "transfer/channel-1"},
98+
Base: "atom/pool",
99+
Trace: []types.Trace{
100+
types.NewTrace("transfer", "channel-0"),
101+
types.NewTrace("transfer", "channel-1"),
102+
},
94103
},
95104
Amount: "1000",
96105
},
@@ -104,8 +113,12 @@ func TestConvertPacketV1ToPacketV2(t *testing.T) {
104113
[]types.Token{
105114
{
106115
Denom: types.Denom{
107-
Base: "atom",
108-
Trace: []string{"transfer/channel-0", "transfer/channel-1", "transfer-custom/channel-2"},
116+
Base: "atom",
117+
Trace: []types.Trace{
118+
types.NewTrace("transfer", "channel-0"),
119+
types.NewTrace("transfer", "channel-1"),
120+
types.NewTrace("transfer-custom", "channel-2"),
121+
},
109122
},
110123
Amount: "1000",
111124
},
@@ -119,8 +132,12 @@ func TestConvertPacketV1ToPacketV2(t *testing.T) {
119132
[]types.Token{
120133
{
121134
Denom: types.Denom{
122-
Base: "atom/pool",
123-
Trace: []string{"transfer/channel-0", "transfer/channel-1", "transfer-custom/channel-2"},
135+
Base: "atom/pool",
136+
Trace: []types.Trace{
137+
types.NewTrace("transfer", "channel-0"),
138+
types.NewTrace("transfer", "channel-1"),
139+
types.NewTrace("transfer-custom", "channel-2"),
140+
},
124141
},
125142
Amount: "1000",
126143
},

modules/apps/transfer/keeper/genesis_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,22 @@ import (
1111
)
1212

1313
func (suite *KeeperTestSuite) TestGenesis() {
14-
getTrace := func(index uint) string {
15-
return fmt.Sprintf("transfer/channelToChain%d", index)
14+
getTrace := func(index uint) types.Trace {
15+
return types.NewTrace("transfer", fmt.Sprintf("channelToChain%d", index))
1616
}
1717

1818
var (
1919
denoms types.Denoms
2020
escrows sdk.Coins
2121
traceAndEscrowAmounts = []struct {
22-
trace []string
22+
trace []types.Trace
2323
escrow string
2424
}{
25-
{[]string{getTrace(0)}, "10"},
26-
{[]string{getTrace(1), getTrace(0)}, "100000"},
27-
{[]string{getTrace(2), getTrace(1), getTrace(0)}, "10000000000"},
28-
{[]string{getTrace(3), getTrace(2), getTrace(1), getTrace(0)}, "1000000000000000"},
29-
{[]string{getTrace(4), getTrace(3), getTrace(2), getTrace(1), getTrace(0)}, "100000000000000000000"},
25+
{[]types.Trace{getTrace(0)}, "10"},
26+
{[]types.Trace{getTrace(1), getTrace(0)}, "100000"},
27+
{[]types.Trace{getTrace(2), getTrace(1), getTrace(0)}, "10000000000"},
28+
{[]types.Trace{getTrace(3), getTrace(2), getTrace(1), getTrace(0)}, "1000000000000000"},
29+
{[]types.Trace{getTrace(4), getTrace(3), getTrace(2), getTrace(1), getTrace(0)}, "100000000000000000000"},
3030
}
3131
)
3232

modules/apps/transfer/keeper/grpc_query_test.go

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,11 @@ func (suite *KeeperTestSuite) TestQueryDenom() {
2727
"success: correct ibc denom",
2828
func() {
2929
expDenom = types.Denom{
30-
Base: "uatom", //nolint:goconst
31-
Trace: []string{"transfer/channelToA", "transfer/channelToB"}, //nolint:goconst
30+
Base: "uatom", //nolint:goconst
31+
Trace: []types.Trace{
32+
types.NewTrace("transfer", "channelToA"), //nolint:goconst
33+
types.NewTrace("transfer", "channelToB"), //nolint:goconst
34+
},
3235
}
3336
suite.chainA.GetSimApp().TransferKeeper.SetDenom(suite.chainA.GetContext(), expDenom)
3437

@@ -42,10 +45,12 @@ func (suite *KeeperTestSuite) TestQueryDenom() {
4245
"success: correct hex hash",
4346
func() {
4447
expDenom = types.Denom{
45-
Base: "uatom", //nolint:goconst
46-
Trace: []string{"transfer/channelToA", "transfer/channelToB"}, //nolint:goconst
48+
Base: "uatom", //nolint:goconst
49+
Trace: []types.Trace{
50+
types.NewTrace("transfer", "channelToA"), //nolint:goconst
51+
types.NewTrace("transfer", "channelToB"), //nolint:goconst
52+
},
4753
}
48-
4954
suite.chainA.GetSimApp().TransferKeeper.SetDenom(suite.chainA.GetContext(), expDenom)
5055

5156
req = &types.QueryDenomRequest{
@@ -67,8 +72,11 @@ func (suite *KeeperTestSuite) TestQueryDenom() {
6772
"failure: not found denom trace",
6873
func() {
6974
expDenom = types.Denom{
70-
Base: "uatom", //nolint:goconst
71-
Trace: []string{"transfer/channelToA", "transfer/channelToB"}, //nolint:goconst
75+
Base: "uatom", //nolint:goconst
76+
Trace: []types.Trace{
77+
types.NewTrace("transfer", "channelToA"), //nolint:goconst
78+
types.NewTrace("transfer", "channelToB"), //nolint:goconst
79+
},
7280
}
7381

7482
req = &types.QueryDenomRequest{
@@ -122,8 +130,8 @@ func (suite *KeeperTestSuite) TestQueryDenoms() {
122130
"success",
123131
func() {
124132
expDenoms = append(expDenoms, types.Denom{Base: "uatom"})
125-
expDenoms = append(expDenoms, types.Denom{Base: "uatom", Trace: []string{"transfer/channelToB"}})
126-
expDenoms = append(expDenoms, types.Denom{Base: "uatom", Trace: []string{"transfer/channelToA", "transfer/channelToB"}})
133+
expDenoms = append(expDenoms, types.Denom{Base: "uatom", Trace: []types.Trace{types.NewTrace("transfer", "channelToB")}})
134+
expDenoms = append(expDenoms, types.Denom{Base: "uatom", Trace: []types.Trace{types.NewTrace("transfer", "channelToA"), types.NewTrace("transfer", "channelToB")}})
127135

128136
for _, trace := range expDenoms {
129137
suite.chainA.GetSimApp().TransferKeeper.SetDenom(suite.chainA.GetContext(), trace)
@@ -170,8 +178,11 @@ func (suite *KeeperTestSuite) TestQueryParams() {
170178

171179
func (suite *KeeperTestSuite) TestQueryDenomHash() {
172180
reqDenom := types.Denom{
173-
Base: "uatom",
174-
Trace: []string{"transfer/channelToA", "transfer/channelToB"},
181+
Base: "uatom",
182+
Trace: []types.Trace{
183+
types.NewTrace("transfer", "channelToA"),
184+
types.NewTrace("transfer", "channelToB"),
185+
},
175186
}
176187

177188
var (
@@ -336,7 +347,7 @@ func (suite *KeeperTestSuite) TestTotalEscrowForDenom() {
336347
func() {
337348
denomTrace := types.Denom{
338349
Base: sdk.DefaultBondDenom,
339-
Trace: []string{"transfer/channel-0"},
350+
Trace: []types.Trace{types.NewTrace("transfer", "channel-0")},
340351
}
341352

342353
suite.chainA.GetSimApp().TransferKeeper.SetDenom(suite.chainA.GetContext(), denomTrace)
@@ -355,7 +366,7 @@ func (suite *KeeperTestSuite) TestTotalEscrowForDenom() {
355366
func() {
356367
denomTrace := types.Denom{
357368
Base: sdk.DefaultBondDenom,
358-
Trace: []string{"transfer/channel-0"},
369+
Trace: []types.Trace{types.NewTrace("transfer", "channel-0")},
359370
}
360371

361372
req = &types.QueryTotalEscrowForDenomRequest{

modules/apps/transfer/keeper/mbt_relay_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,8 +341,7 @@ func (suite *KeeperTestSuite) TestModelBasedRelay() {
341341
panic(errors.New("MBT failed to convert sender address"))
342342
}
343343
registerDenomFn()
344-
denomTrace := types.ParseDenomTrace(tc.packet.Data.Tokens[0].GetFullDenomPath())
345-
denom := denomTrace.IBCDenom()
344+
denom := tc.packet.Data.Tokens[0].Denom.IBCDenom()
346345
err = sdk.ValidateDenom(denom)
347346
if err == nil {
348347
amount, ok := sdkmath.NewIntFromString(tc.packet.Data.Tokens[0].Amount)

modules/apps/transfer/keeper/relay.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ func (k Keeper) sendTransfer(
141141
telemetry.SetGaugeWithLabels(
142142
[]string{"tx", "msg", "ibc", "transfer"},
143143
float32(amount.Int64()),
144-
[]metrics.Label{telemetry.NewLabel(coretypes.LabelDenom, token.GetFullDenomPath())},
144+
[]metrics.Label{telemetry.NewLabel(coretypes.LabelDenom, token.Denom.FullPath())},
145145
)
146146
}
147147
}
@@ -239,7 +239,7 @@ func (k Keeper) OnRecvPacket(ctx sdk.Context, packet channeltypes.Packet, data t
239239
// sender chain is the source, mint vouchers
240240

241241
// since SendPacket did not prefix the denomination, we must add the destination port and channel to the trace
242-
trace := []string{fmt.Sprintf("%s/%s", packet.DestinationPort, packet.DestinationChannel)}
242+
trace := []types.Trace{types.NewTrace(packet.DestinationPort, packet.DestinationChannel)}
243243
token.Denom.Trace = append(trace, token.Denom.Trace...)
244244

245245
if !k.HasDenom(ctx, token.Denom.Hash()) {

modules/apps/transfer/keeper/relay_test.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,10 @@ func (suite *KeeperTestSuite) TestSendTransfer() {
5656
func() {
5757
// send IBC token back to chainB
5858
denom := types.Denom{
59-
Base: coin.Denom,
60-
Trace: []string{path.EndpointA.ChannelConfig.PortID + "/" + path.EndpointA.ChannelID},
59+
Base: coin.Denom,
60+
Trace: []types.Trace{
61+
types.NewTrace(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID),
62+
},
6163
}
6264
coin = sdk.NewCoin(denom.IBCDenom(), coin.Amount)
6365
},
@@ -68,8 +70,10 @@ func (suite *KeeperTestSuite) TestSendTransfer() {
6870
func() {
6971
// send IBC token back to chainB
7072
denom := types.Denom{
71-
Base: coin.Denom,
72-
Trace: []string{path.EndpointA.ChannelConfig.PortID + "/" + path.EndpointA.ChannelID},
73+
Base: coin.Denom,
74+
Trace: []types.Trace{
75+
types.NewTrace(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID),
76+
},
7377
}
7478
coin = sdk.NewCoin(denom.IBCDenom(), coin.Amount)
7579
memo = "memo"
@@ -102,8 +106,10 @@ func (suite *KeeperTestSuite) TestSendTransfer() {
102106
"failure: denom trace not found",
103107
func() {
104108
denom := types.Denom{
105-
Base: "randomdenom",
106-
Trace: []string{path.EndpointA.ChannelConfig.PortID + "/" + path.EndpointA.ChannelID},
109+
Base: "randomdenom",
110+
Trace: []types.Trace{
111+
types.NewTrace(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID),
112+
},
107113
}
108114
coin = sdk.NewCoin(denom.IBCDenom(), coin.Amount)
109115
},
@@ -113,8 +119,10 @@ func (suite *KeeperTestSuite) TestSendTransfer() {
113119
"failure: bank send from module account failed, insufficient balance",
114120
func() {
115121
denom := types.Denom{
116-
Base: coin.Denom,
117-
Trace: []string{path.EndpointA.ChannelConfig.PortID + "/" + path.EndpointA.ChannelID},
122+
Base: coin.Denom,
123+
Trace: []types.Trace{
124+
types.NewTrace(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID),
125+
},
118126
}
119127
coin = sdk.NewCoin(denom.IBCDenom(), coin.Amount.Add(sdkmath.NewInt(1)))
120128
},
@@ -374,7 +382,7 @@ func (suite *KeeperTestSuite) TestOnRecvPacket_ReceiverIsNotSource() {
374382
{
375383
Denom: types.Denom{
376384
Base: sdk.DefaultBondDenom,
377-
Trace: []string{},
385+
Trace: []types.Trace{},
378386
},
379387
Amount: amount.String(),
380388
},

modules/apps/transfer/transfer_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package transfer_test
22

33
import (
4-
"fmt"
54
"testing"
65

76
testifysuite "github.com/stretchr/testify/suite"
@@ -71,8 +70,10 @@ func (suite *TransferTestSuite) TestHandleMsgTransfer() {
7170

7271
// check that voucher exists on chain B
7372
denom := types.Denom{
74-
Base: sdk.DefaultBondDenom,
75-
Trace: []string{fmt.Sprintf("%s/%s", packet.DestinationPort, packet.DestinationChannel)},
73+
Base: sdk.DefaultBondDenom,
74+
Trace: []types.Trace{
75+
types.NewTrace(packet.DestinationPort, packet.DestinationChannel),
76+
},
7677
}
7778
balance = suite.chainB.GetSimApp().BankKeeper.GetBalance(suite.chainB.GetContext(), suite.chainB.SenderAccount.GetAddress(), denom.IBCDenom())
7879
coinSentFromAToB := sdk.NewCoin(denom.IBCDenom(), amount)
@@ -97,7 +98,7 @@ func (suite *TransferTestSuite) TestHandleMsgTransfer() {
9798
suite.Require().NoError(err) // relay committed
9899

99100
// NOTE: fungible token is prefixed with the full trace in order to verify the packet commitment
100-
trace := []string{fmt.Sprintf("%s/%s", pathBtoC.EndpointB.ChannelConfig.PortID, pathBtoC.EndpointB.ChannelID)}
101+
trace := []types.Trace{types.NewTrace(pathBtoC.EndpointB.ChannelConfig.PortID, pathBtoC.EndpointB.ChannelID)}
101102
denom.Trace = append(trace, denom.Trace...)
102103

103104
// check that the balance is updated on chainC

0 commit comments

Comments
 (0)