diff --git a/utils/bank.go b/utils/bank.go index c8ceac806..bc749449b 100644 --- a/utils/bank.go +++ b/utils/bank.go @@ -122,7 +122,7 @@ func SanitizeCoins(coins []sdk.Coin) sdk.Coins { if lastDenom != coin.Denom { cleanCoins = append(cleanCoins, coin) } else { - cleanCoins[len(cleanCoins)-1].Add(coin) + cleanCoins[len(cleanCoins)-1] = cleanCoins[len(cleanCoins)-1].Add(coin) } lastDenom = coin.Denom } diff --git a/utils/utils_test.go b/utils/utils_test.go new file mode 100644 index 000000000..f4604b7e8 --- /dev/null +++ b/utils/utils_test.go @@ -0,0 +1,26 @@ +package utils_test + +import ( + "testing" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/require" + + "github.com/neutron-org/neutron/v7/utils" +) + +func TestSanitizeCoins(t *testing.T) { + input := sdk.Coins{ + sdk.NewInt64Coin("atom", 10), + sdk.NewInt64Coin("btc", 50), + sdk.NewInt64Coin("atom", 5), + sdk.NewInt64Coin("btc", 0), + } + expected := sdk.Coins{ + sdk.NewInt64Coin("atom", 15), + sdk.NewInt64Coin("btc", 50), + } + + result := utils.SanitizeCoins(input) + require.Equal(t, expected, result) +}