Skip to content

Commit

Permalink
feat: upgrade module to cosmos sdk v0.50
Browse files Browse the repository at this point in the history
  • Loading branch information
johnletey committed Oct 4, 2024
1 parent 86ecda1 commit d2dfc3f
Show file tree
Hide file tree
Showing 44 changed files with 5,521 additions and 4,825 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/e2e-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
go-version: '1.22'

- name: Generate Matrix
id: set-matrix
Expand All @@ -76,7 +76,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
go-version: '1.22'

- name: Download Tarball Artifact
uses: actions/download-artifact@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unit-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
go-version: '1.22'

- name: Run Tests
run: make test-unit
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.PHONY: proto-format proto-lint proto-breaking proto-gen format lint test-unit build local-image test-e2e
all: proto-all format lint test-unit build local-image test-e2e
all: proto-all format test-unit build local-image test-e2e

###############################################################################
### Build ###
Expand Down
323 changes: 212 additions & 111 deletions e2e/go.mod

Large diffs are not rendered by default.

1,848 changes: 1,301 additions & 547 deletions e2e/go.sum

Large diffs are not rendered by default.

70 changes: 35 additions & 35 deletions e2e/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ package e2e
import (
"testing"

sdk "github.com/cosmos/cosmos-sdk/types"
transfertypes "github.com/cosmos/ibc-go/v4/modules/apps/transfer/types"
"github.com/strangelove-ventures/interchaintest/v4/ibc"
"github.com/strangelove-ventures/interchaintest/v4/testutil"
"cosmossdk.io/math"
transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
"github.com/strangelove-ventures/interchaintest/v8/ibc"
"github.com/strangelove-ventures/interchaintest/v8/testutil"
"github.com/stretchr/testify/require"
)

var ONE = sdk.NewInt(1_000_000_000_000_000_000)
var ONE = math.NewInt(1_000_000_000_000_000_000)

func TestMintBurn(t *testing.T) {
t.Parallel()
Expand All @@ -32,9 +32,9 @@ func TestMintBurn(t *testing.T) {
// ASSERT: Alice has 1 $USDY.
balance, err := wrapper.chain.GetBalance(ctx, wrapper.alice.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Equal(t, ONE.Int64(), balance)
require.Equal(t, ONE, balance)
// ASSERT: Minter has no allowance.
EnsureMinter(t, wrapper, ctx, wrapper.minter.FormattedAddress(), sdk.ZeroInt())
EnsureMinter(t, wrapper, ctx, wrapper.minter.FormattedAddress(), math.ZeroInt())

// ASSERT: Burner has an allowance of 1 $USDY.
EnsureBurner(t, wrapper, ctx, wrapper.burner.FormattedAddress(), ONE)
Expand All @@ -49,9 +49,9 @@ func TestMintBurn(t *testing.T) {
// ASSERT: Alice has no balance.
balance, err = wrapper.chain.GetBalance(ctx, wrapper.alice.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Zero(t, balance)
require.True(t, balance.IsZero())
// ASSERT: Burner has no allowance.
EnsureBurner(t, wrapper, ctx, wrapper.burner.FormattedAddress(), sdk.ZeroInt())
EnsureBurner(t, wrapper, ctx, wrapper.burner.FormattedAddress(), math.ZeroInt())
}

func TestMintTransferBurn(t *testing.T) {
Expand All @@ -74,26 +74,26 @@ func TestMintTransferBurn(t *testing.T) {
// ASSERT: Alice has 1 $USDY.
balance, err := wrapper.chain.GetBalance(ctx, wrapper.alice.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Equal(t, ONE.Int64(), balance)
require.Equal(t, ONE, balance)
// ASSERT: Minter has no allowance.
EnsureMinter(t, wrapper, ctx, wrapper.minter.FormattedAddress(), sdk.ZeroInt())
EnsureMinter(t, wrapper, ctx, wrapper.minter.FormattedAddress(), math.ZeroInt())

// ACT: Transfer 1 $USDY from Alice to Bob.
err = validator.SendFunds(ctx, wrapper.alice.KeyName(), ibc.WalletAmount{
Address: wrapper.bob.FormattedAddress(),
Denom: "ausdy",
Amount: ONE.Int64(),
Amount: ONE,
})
require.NoError(t, err)

// ASSERT: Alice has no balance.
balance, err = wrapper.chain.GetBalance(ctx, wrapper.alice.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Zero(t, balance)
require.True(t, balance.IsZero())
// ASSERT: Bob has 1 $USDY.
balance, err = wrapper.chain.GetBalance(ctx, wrapper.bob.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Equal(t, ONE.Int64(), balance)
require.Equal(t, ONE, balance)

// ASSERT: Burner has an allowance of 1 $USDY.
EnsureBurner(t, wrapper, ctx, wrapper.burner.FormattedAddress(), ONE)
Expand All @@ -108,9 +108,9 @@ func TestMintTransferBurn(t *testing.T) {
// ASSERT: Bob has no balance.
balance, err = wrapper.chain.GetBalance(ctx, wrapper.bob.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Zero(t, balance)
require.True(t, balance.IsZero())
// ASSERT: Burner has no allowance.
EnsureBurner(t, wrapper, ctx, wrapper.burner.FormattedAddress(), sdk.ZeroInt())
EnsureBurner(t, wrapper, ctx, wrapper.burner.FormattedAddress(), math.ZeroInt())
}

func TestMintTransferBlockBurn(t *testing.T) {
Expand All @@ -133,26 +133,26 @@ func TestMintTransferBlockBurn(t *testing.T) {
// ASSERT: Alice has 1 $USDY.
balance, err := wrapper.chain.GetBalance(ctx, wrapper.alice.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Equal(t, ONE.Int64(), balance)
require.Equal(t, ONE, balance)
// ASSERT: Minter has no allowance.
EnsureMinter(t, wrapper, ctx, wrapper.minter.FormattedAddress(), sdk.ZeroInt())
EnsureMinter(t, wrapper, ctx, wrapper.minter.FormattedAddress(), math.ZeroInt())

// ACT: Transfer 1 $USDY from Alice to Bob.
err = validator.SendFunds(ctx, wrapper.alice.KeyName(), ibc.WalletAmount{
Address: wrapper.bob.FormattedAddress(),
Denom: "ausdy",
Amount: ONE.Int64(),
Amount: ONE,
})
require.NoError(t, err)

// ASSERT: Alice has no balance.
balance, err = wrapper.chain.GetBalance(ctx, wrapper.alice.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Zero(t, balance)
require.True(t, balance.IsZero())
// ASSERT: Bob has 1 $USDY.
balance, err = wrapper.chain.GetBalance(ctx, wrapper.bob.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Equal(t, ONE.Int64(), balance)
require.Equal(t, ONE, balance)

// ACT: Add Bob to the blocklist.
_, err = validator.ExecTx(
Expand All @@ -168,14 +168,14 @@ func TestMintTransferBlockBurn(t *testing.T) {
err = validator.SendFunds(ctx, wrapper.bob.KeyName(), ibc.WalletAmount{
Address: wrapper.alice.FormattedAddress(),
Denom: "ausdy",
Amount: ONE.Int64(),
Amount: ONE,
})
require.ErrorContains(t, err, "blocked from sending")

// ASSERT: Bob has 1 $USDY.
balance, err = wrapper.chain.GetBalance(ctx, wrapper.bob.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Equal(t, ONE.Int64(), balance)
require.Equal(t, ONE, balance)
// ASSERT: Burner has an allowance of 1 $USDY.
EnsureBurner(t, wrapper, ctx, wrapper.burner.FormattedAddress(), ONE)

Expand All @@ -189,9 +189,9 @@ func TestMintTransferBlockBurn(t *testing.T) {
// ASSERT: Bob has no balance.
balance, err = wrapper.chain.GetBalance(ctx, wrapper.bob.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Zero(t, balance)
require.True(t, balance.IsZero())
// ASSERT: Burner has no allowance.
EnsureBurner(t, wrapper, ctx, wrapper.burner.FormattedAddress(), sdk.ZeroInt())
EnsureBurner(t, wrapper, ctx, wrapper.burner.FormattedAddress(), math.ZeroInt())
}

func TestIBCTransfer(t *testing.T) {
Expand Down Expand Up @@ -221,33 +221,33 @@ func TestIBCTransfer(t *testing.T) {
_, err = wrapper.chain.SendIBCTransfer(ctx, "channel-0", wrapper.alice.KeyName(), ibc.WalletAmount{
Address: wrapper.charlie.FormattedAddress(),
Denom: "ausdy",
Amount: ONE.MulRaw(2).Int64(),
Amount: ONE.MulRaw(2),
}, ibc.TransferOptions{})
// ASSERT: The action should've succeeded.
require.NoError(t, err)
require.NoError(t, testutil.WaitForBlocks(ctx, 5, wrapper.chain, wrapper.gaia))
balance, err := wrapper.chain.GetBalance(ctx, wrapper.alice.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Zero(t, balance)
require.True(t, balance.IsZero())
balance, err = wrapper.gaia.GetBalance(ctx, wrapper.charlie.FormattedAddress(), denom)
require.NoError(t, err)
require.Equal(t, ONE.MulRaw(2).Int64(), balance)
require.Equal(t, ONE.MulRaw(2), balance)

// ACT: Attempt to transfer back to Noble, channel is allowed.
_, err = wrapper.gaia.SendIBCTransfer(ctx, "channel-0", wrapper.charlie.KeyName(), ibc.WalletAmount{
Address: wrapper.alice.FormattedAddress(),
Denom: denom,
Amount: ONE.Int64(),
Amount: ONE,
}, ibc.TransferOptions{})
// ASSERT: The action should've succeeded.
require.NoError(t, err)
require.NoError(t, testutil.WaitForBlocks(ctx, 5, wrapper.chain, wrapper.gaia))
balance, err = wrapper.chain.GetBalance(ctx, wrapper.alice.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Equal(t, ONE.Int64(), balance)
require.Equal(t, ONE, balance)
balance, err = wrapper.gaia.GetBalance(ctx, wrapper.charlie.FormattedAddress(), denom)
require.NoError(t, err)
require.Equal(t, ONE.Int64(), balance)
require.Equal(t, ONE, balance)

// ACT: Block transfers over channel-0.
_, err = validator.ExecTx(
Expand All @@ -262,7 +262,7 @@ func TestIBCTransfer(t *testing.T) {
_, err = wrapper.chain.SendIBCTransfer(ctx, "channel-0", wrapper.alice.KeyName(), ibc.WalletAmount{
Address: wrapper.charlie.FormattedAddress(),
Denom: "ausdy",
Amount: ONE.Int64(),
Amount: ONE,
}, ibc.TransferOptions{})
// ASSERT: The action should've failed.
require.ErrorContains(t, err, "ausdy transfers are blocked on channel-0")
Expand All @@ -271,15 +271,15 @@ func TestIBCTransfer(t *testing.T) {
_, err = wrapper.gaia.SendIBCTransfer(ctx, "channel-0", wrapper.charlie.KeyName(), ibc.WalletAmount{
Address: wrapper.alice.FormattedAddress(),
Denom: denom,
Amount: ONE.Int64(),
Amount: ONE,
}, ibc.TransferOptions{})
// ASSERT: The action should've succeeded.
require.NoError(t, err)
require.NoError(t, testutil.WaitForBlocks(ctx, 5, wrapper.chain, wrapper.gaia))
balance, err = wrapper.chain.GetBalance(ctx, wrapper.alice.FormattedAddress(), "ausdy")
require.NoError(t, err)
require.Equal(t, ONE.MulRaw(2).Int64(), balance)
require.Equal(t, ONE.MulRaw(2), balance)
balance, err = wrapper.gaia.GetBalance(ctx, wrapper.charlie.FormattedAddress(), denom)
require.NoError(t, err)
require.Zero(t, balance)
require.True(t, balance.IsZero())
}
27 changes: 14 additions & 13 deletions e2e/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@ import (
"encoding/json"
"testing"

"cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/gogo/protobuf/jsonpb"
_ "github.com/ondoprotocol/usdy-noble/v2/x/aura"
"github.com/ondoprotocol/usdy-noble/v2/x/aura/types"
"github.com/ondoprotocol/usdy-noble/v2/x/aura/types/blocklist"
"github.com/strangelove-ventures/interchaintest/v4"
"github.com/strangelove-ventures/interchaintest/v4/chain/cosmos"
"github.com/strangelove-ventures/interchaintest/v4/ibc"
"github.com/strangelove-ventures/interchaintest/v4/relayer/rly"
"github.com/strangelove-ventures/interchaintest/v4/testreporter"
"github.com/strangelove-ventures/interchaintest/v8"
"github.com/strangelove-ventures/interchaintest/v8/chain/cosmos"
"github.com/strangelove-ventures/interchaintest/v8/ibc"
"github.com/strangelove-ventures/interchaintest/v8/relayer/rly"
"github.com/strangelove-ventures/interchaintest/v8/testreporter"
"github.com/stretchr/testify/require"
"go.uber.org/zap/zaptest"
)
Expand Down Expand Up @@ -64,7 +65,7 @@ func Suite(t *testing.T, wrapper *Wrapper, ibcEnabled bool) (ctx context.Context
GasAdjustment: 5,
TrustingPeriod: "504h",
NoHostMount: false,
PreGenesis: func(cfg ibc.ChainConfig) (err error) {
PreGenesis: func(_ ibc.Chain) (err error) {
validator := wrapper.chain.Validators[0]
ONE := sdk.NewCoins(sdk.NewInt64Coin("ustake", 1_000_000))

Expand Down Expand Up @@ -116,7 +117,7 @@ func Suite(t *testing.T, wrapper *Wrapper, ibcEnabled bool) (ctx context.Context
return nil
},
ModifyGenesis: func(cfg ibc.ChainConfig, bz []byte) ([]byte, error) {
ONE := sdk.NewInt(1_000_000_000_000_000_000)
ONE := math.NewInt(1_000_000_000_000_000_000)

changes := []cosmos.GenesisKV{
{Key: "app_state.aura.blocklist_state.owner", Value: wrapper.owner.FormattedAddress()},
Expand All @@ -131,7 +132,7 @@ func Suite(t *testing.T, wrapper *Wrapper, ibcEnabled bool) (ctx context.Context

return cosmos.ModifyGenesis(changes)(cfg, bz)
},
ModifyGenesisAmounts: func() (sdk.Coin, sdk.Coin) {
ModifyGenesisAmounts: func(_ int) (sdk.Coin, sdk.Coin) {
ONE := sdk.NewInt64Coin("ustake", 1_000_000)
return ONE, ONE
},
Expand All @@ -141,13 +142,13 @@ func Suite(t *testing.T, wrapper *Wrapper, ibcEnabled bool) (ctx context.Context
if ibcEnabled {
specs = append(specs, &interchaintest.ChainSpec{
Name: "ibc-go-simd",
Version: "v4.5.0",
Version: "v8.5.1",
NumValidators: &numValidators,
NumFullNodes: &numFullNodes,
ChainConfig: ibc.ChainConfig{
PreGenesis: func(cfg ibc.ChainConfig) (err error) {
PreGenesis: func(chain ibc.Chain) (err error) {
validator := wrapper.gaia.Validators[0]
ONE := sdk.NewCoins(sdk.NewInt64Coin(cfg.Denom, 1_000_000))
ONE := sdk.NewCoins(sdk.NewInt64Coin(chain.Config().Denom, 1_000_000))

wrapper.charlie, err = wrapper.gaia.BuildWallet(ctx, "owner", "")
if err != nil {
Expand Down Expand Up @@ -223,7 +224,7 @@ func EnsureBlocked(t *testing.T, wrapper Wrapper, ctx context.Context, address s
require.True(t, res.Blocked)
}

func EnsureBurner(t *testing.T, wrapper Wrapper, ctx context.Context, address string, allowance sdk.Int) {
func EnsureBurner(t *testing.T, wrapper Wrapper, ctx context.Context, address string, allowance math.Int) {
validator := wrapper.chain.Validators[0]

raw, _, err := validator.ExecQuery(ctx, "aura", "burners")
Expand All @@ -235,7 +236,7 @@ func EnsureBurner(t *testing.T, wrapper Wrapper, ctx context.Context, address st
require.Contains(t, res.Burners, types.Burner{Address: address, Allowance: allowance})
}

func EnsureMinter(t *testing.T, wrapper Wrapper, ctx context.Context, address string, allowance sdk.Int) {
func EnsureMinter(t *testing.T, wrapper Wrapper, ctx context.Context, address string, allowance math.Int) {
validator := wrapper.chain.Validators[0]

raw, _, err := validator.ExecQuery(ctx, "aura", "minters")
Expand Down
Loading

0 comments on commit d2dfc3f

Please sign in to comment.