From 596829d0eb7db676be18e1bc3c6d7baf26120e24 Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:13:48 +0100 Subject: [PATCH 01/13] feat(tests): upgrade auth module tests --- app/upgrades/v7/integration/auth_test.go | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 app/upgrades/v7/integration/auth_test.go diff --git a/app/upgrades/v7/integration/auth_test.go b/app/upgrades/v7/integration/auth_test.go new file mode 100644 index 0000000..64f965d --- /dev/null +++ b/app/upgrades/v7/integration/auth_test.go @@ -0,0 +1,44 @@ +//nolint:dupl +package integration + +import ( + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" +) + +func (s *UpgradeTestSuite) TestUpgrade_Auth_Params() { + prevParams, err := s.network.GetAuthClient().Params( + s.network.GetContext(), + &authtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postParams, err := s.network.GetAuthClient().Params( + s.network.GetContext(), + &authtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified params are the same + s.Require().Equal(prevParams.Params, postParams.Params) +} + +func (s *UpgradeTestSuite) TestUpgrade_Auth_Accounts() { + res, err := s.network.GetAuthClient().Accounts( + s.network.GetContext(), + &authtypes.QueryAccountsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postRes, err := s.network.GetAuthClient().Accounts( + s.network.GetContext(), + &authtypes.QueryAccountsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified accounts are the same + s.Require().Equal(res.Accounts, postRes.Accounts) +} From 99fbf0698a26e393a16d20a9f30db0c14aa9bfc0 Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:13:54 +0100 Subject: [PATCH 02/13] feat(tests): upgrade bank module tests --- app/upgrades/v7/integration/bank_test.go | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 app/upgrades/v7/integration/bank_test.go diff --git a/app/upgrades/v7/integration/bank_test.go b/app/upgrades/v7/integration/bank_test.go new file mode 100644 index 0000000..f54ca8f --- /dev/null +++ b/app/upgrades/v7/integration/bank_test.go @@ -0,0 +1,44 @@ +//nolint:dupl +package integration + +import ( + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" +) + +func (s *UpgradeTestSuite) TestUpgrade_Bank_Params() { + prevParams, err := s.network.GetBankClient().Params( + s.network.GetContext(), + &banktypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postParams, err := s.network.GetBankClient().Params( + s.network.GetContext(), + &banktypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified params are the same + s.Require().Equal(prevParams.Params, postParams.Params) +} + +func (s *UpgradeTestSuite) TestUpgrade_Bank_TotalSupply() { + res, err := s.network.GetBankClient().TotalSupply( + s.network.GetContext(), + &banktypes.QueryTotalSupplyRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postRes, err := s.network.GetBankClient().TotalSupply( + s.network.GetContext(), + &banktypes.QueryTotalSupplyRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified balances are the same + s.Require().Equal(res.Supply, postRes.Supply) +} From a51bc65847bffea6057e0fbdd7b77627c32e72bf Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:14:02 +0100 Subject: [PATCH 03/13] feat(tests): upgrade distribution module tests --- .../v7/integration/distribution_test.go | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/upgrades/v7/integration/distribution_test.go diff --git a/app/upgrades/v7/integration/distribution_test.go b/app/upgrades/v7/integration/distribution_test.go new file mode 100644 index 0000000..ab3240a --- /dev/null +++ b/app/upgrades/v7/integration/distribution_test.go @@ -0,0 +1,24 @@ +package integration + +import ( + distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" +) + +func (s *UpgradeTestSuite) TestUpgrade_DistributionParams() { + prevParams, err := s.network.GetDistrClient().Params( + s.network.GetContext(), + &distributiontypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postParams, err := s.network.GetDistrClient().Params( + s.network.GetContext(), + &distributiontypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified params are the same + s.Require().Equal(prevParams.Params, postParams.Params) +} From 7701cecf7c8de79f7a9f3bfe2c53e71034d9c20f Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:14:09 +0100 Subject: [PATCH 04/13] feat(tests): upgrade erc20 module tests --- app/upgrades/v7/integration/erc20_test.go | 44 +++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 app/upgrades/v7/integration/erc20_test.go diff --git a/app/upgrades/v7/integration/erc20_test.go b/app/upgrades/v7/integration/erc20_test.go new file mode 100644 index 0000000..7f6c629 --- /dev/null +++ b/app/upgrades/v7/integration/erc20_test.go @@ -0,0 +1,44 @@ +//nolint:dupl +package integration + +import ( + erc20types "github.com/evmos/evmos/v20/x/erc20/types" +) + +func (s *UpgradeTestSuite) TestUpgrade_ERC20Params() { + prevParams, err := s.network.GetERC20Client().Params( + s.network.GetContext(), + &erc20types.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postParams, err := s.network.GetERC20Client().Params( + s.network.GetContext(), + &erc20types.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified params are the same + s.Require().Equal(prevParams.Params, postParams.Params) +} + +func (s *UpgradeTestSuite) TestUpgrade_ERC20_TokenPairs() { + prevTokenPairs, err := s.network.GetERC20Client().TokenPairs( + s.network.GetContext(), + &erc20types.QueryTokenPairsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postTokenPairs, err := s.network.GetERC20Client().TokenPairs( + s.network.GetContext(), + &erc20types.QueryTokenPairsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified token pairs are the same + s.Require().Equal(prevTokenPairs.TokenPairs, postTokenPairs.TokenPairs) +} From 4a7c5b730340a47e7649205b3c4ecf614f3caa97 Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:14:14 +0100 Subject: [PATCH 05/13] feat(tests): upgrade evm module tests --- app/upgrades/v7/integration/evm_test.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/upgrades/v7/integration/evm_test.go diff --git a/app/upgrades/v7/integration/evm_test.go b/app/upgrades/v7/integration/evm_test.go new file mode 100644 index 0000000..a56fb3c --- /dev/null +++ b/app/upgrades/v7/integration/evm_test.go @@ -0,0 +1,24 @@ +package integration + +import ( + evmtypes "github.com/evmos/evmos/v20/x/evm/types" +) + +func (s *UpgradeTestSuite) TestUpgrade_EvmParams() { + prevParams, err := s.network.GetEvmClient().Params( + s.network.GetContext(), + &evmtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postParams, err := s.network.GetEvmClient().Params( + s.network.GetContext(), + &evmtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified params are the same + s.Require().Equal(prevParams.Params, postParams.Params) +} From cd101b4227e59fb194e99957936bb409c9d1b8df Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:14:20 +0100 Subject: [PATCH 06/13] feat(tests): upgrade feemarket module tests --- app/upgrades/v7/integration/feemarket_test.go | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/upgrades/v7/integration/feemarket_test.go diff --git a/app/upgrades/v7/integration/feemarket_test.go b/app/upgrades/v7/integration/feemarket_test.go new file mode 100644 index 0000000..8af75d5 --- /dev/null +++ b/app/upgrades/v7/integration/feemarket_test.go @@ -0,0 +1,24 @@ +package integration + +import ( + feemarkettypes "github.com/evmos/evmos/v20/x/feemarket/types" +) + +func (s *UpgradeTestSuite) TestUpgrade_FeeMarketParams() { + prevParams, err := s.network.GetFeeMarketClient().Params( + s.network.GetContext(), + &feemarkettypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postParams, err := s.network.GetFeeMarketClient().Params( + s.network.GetContext(), + &feemarkettypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified params are the same + s.Require().Equal(prevParams.Params, postParams.Params) +} From 56edca6d56849b280f202e57ab35f93c77a55e5b Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:14:26 +0100 Subject: [PATCH 07/13] feat(tests): upgrade gov module tests --- app/upgrades/v7/integration/gov_test.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/upgrades/v7/integration/gov_test.go diff --git a/app/upgrades/v7/integration/gov_test.go b/app/upgrades/v7/integration/gov_test.go new file mode 100644 index 0000000..3790d9c --- /dev/null +++ b/app/upgrades/v7/integration/gov_test.go @@ -0,0 +1,24 @@ +package integration + +import ( + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1" +) + +func (s *UpgradeTestSuite) TestUpgrade_GovParams() { + prevParams, err := s.network.GetGovClient().Params( + s.network.GetContext(), + &govtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postParams, err := s.network.GetGovClient().Params( + s.network.GetContext(), + &govtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified params are the same + s.Require().Equal(prevParams.Params, postParams.Params) +} From fc20391c8c24eebe9d91582fcff2277d24ac32fa Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:14:41 +0100 Subject: [PATCH 08/13] feat(tests): upgrade slashing module tests --- app/upgrades/v7/integration/slashing_test.go | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 app/upgrades/v7/integration/slashing_test.go diff --git a/app/upgrades/v7/integration/slashing_test.go b/app/upgrades/v7/integration/slashing_test.go new file mode 100644 index 0000000..ee0d4cd --- /dev/null +++ b/app/upgrades/v7/integration/slashing_test.go @@ -0,0 +1,44 @@ +//nolint:dupl +package integration + +import ( + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" +) + +func (s *UpgradeTestSuite) TestUpgrade_SlashingParams() { + prevParams, err := s.network.GetSlashingClient().Params( + s.network.GetContext(), + &slashingtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postParams, err := s.network.GetSlashingClient().Params( + s.network.GetContext(), + &slashingtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified params are the same + s.Require().Equal(prevParams.Params, postParams.Params) +} + +func (s *UpgradeTestSuite) TestUpgrade_Slashing_SigningInfos() { + prevSigningInfos, err := s.network.GetSlashingClient().SigningInfos( + s.network.GetContext(), + &slashingtypes.QuerySigningInfosRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postSigningInfos, err := s.network.GetSlashingClient().SigningInfos( + s.network.GetContext(), + &slashingtypes.QuerySigningInfosRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified signing infos are the same + s.Require().Equal(prevSigningInfos.Info, postSigningInfos.Info) +} From dd1c4a6fba2bfc04bf4612f9df9c60ceee125f53 Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:14:49 +0100 Subject: [PATCH 09/13] feat(tests): upgrade staking module tests --- app/upgrades/v7/integration/staking_test.go | 69 +++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 app/upgrades/v7/integration/staking_test.go diff --git a/app/upgrades/v7/integration/staking_test.go b/app/upgrades/v7/integration/staking_test.go new file mode 100644 index 0000000..bce9650 --- /dev/null +++ b/app/upgrades/v7/integration/staking_test.go @@ -0,0 +1,69 @@ +package integration + +import ( + "time" + + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" +) + +func (s *UpgradeTestSuite) TestUpgrade_Staking_Params() { + prevParams, err := s.network.GetStakingClient().Params( + s.network.GetContext(), + &stakingtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postParams, err := s.network.GetStakingClient().Params( + s.network.GetContext(), + &stakingtypes.QueryParamsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified params are the same + s.Require().Equal(prevParams.Params.BondDenom, postParams.Params.BondDenom) + s.Require().Equal(prevParams.Params.MaxValidators, postParams.Params.MaxValidators) + s.Require().Equal(prevParams.Params.MinCommissionRate, postParams.Params.MinCommissionRate) + s.Require().Equal(prevParams.Params.MaxEntries, postParams.Params.MaxEntries) + s.Require().Equal(prevParams.Params.HistoricalEntries, postParams.Params.HistoricalEntries) + + // Check that unbonding time was modified + s.Require().Equal(postParams.Params.UnbondingTime, 100*time.Second) +} + +func (s *UpgradeTestSuite) TestUpgrade_Staking_Validators() { + res, err := s.network.GetStakingClient().Validators( + s.network.GetContext(), + &stakingtypes.QueryValidatorsRequest{}, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postRes, err := s.network.GetStakingClient().Validators( + s.network.GetContext(), + &stakingtypes.QueryValidatorsRequest{}, + ) + s.Require().NoError(err) + + // Check that not modified validators are the same + s.Require().Equal(res.Validators, postRes.Validators) +} + +func (s *UpgradeTestSuite) TestUpgrade_Staking_Delegations() { + prevDelegations, err := s.network.StakingKeeper().GetAllDelegations( + s.network.GetContext(), + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + postDelegations, err := s.network.StakingKeeper().GetAllDelegations( + s.network.GetContext(), + ) + s.Require().NoError(err) + + // Check that not modified delegations are the same + s.Require().Equal(prevDelegations, postDelegations) +} From c2ce5b4607e092fd8425bfb1ac2a8322f3184247 Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Thu, 30 Jan 2025 16:15:10 +0100 Subject: [PATCH 10/13] refactor(tests): upgrade test suite --- app/upgrades/v7/integration/network.go | 7 +++- app/upgrades/v7/integration/suite.go | 42 ++++++++++++++++--- app/upgrades/v7/integration/suite_test.go | 31 +------------- .../integration/common/network/network.go | 1 - 4 files changed, 43 insertions(+), 38 deletions(-) diff --git a/app/upgrades/v7/integration/network.go b/app/upgrades/v7/integration/network.go index 644c11a..f82507b 100644 --- a/app/upgrades/v7/integration/network.go +++ b/app/upgrades/v7/integration/network.go @@ -1,4 +1,4 @@ -package tests +package integration import ( upgradetypes "cosmossdk.io/x/upgrade/types" @@ -7,6 +7,7 @@ import ( banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" erc20types "github.com/evmos/evmos/v20/x/erc20/types" evmtypes "github.com/evmos/evmos/v20/x/evm/types" @@ -66,6 +67,10 @@ func (n *UpgradeTestNetwork) GetStakingClient() stakingtypes.QueryClient { return exrpcommon.GetStakingClient(n) } +func (n *UpgradeTestNetwork) GetSlashingClient() slashingtypes.QueryClient { + return exrpcommon.GetSlashingClient(n) +} + func (n *UpgradeTestNetwork) GetDistrClient() distrtypes.QueryClient { return exrpcommon.GetDistrClient(n) } diff --git a/app/upgrades/v7/integration/suite.go b/app/upgrades/v7/integration/suite.go index 871ed86..56eaf08 100644 --- a/app/upgrades/v7/integration/suite.go +++ b/app/upgrades/v7/integration/suite.go @@ -1,11 +1,18 @@ -package tests +package integration import ( + "os/exec" + + upgradetypes "cosmossdk.io/x/upgrade/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/suite" exrpupgrade "github.com/xrplevm/node/v6/testutil/integration/exrp/upgrade" ) +const ( + upgradeName = "v7.0.0" +) + type UpgradeTestSuite struct { suite.Suite @@ -16,19 +23,42 @@ func (s *UpgradeTestSuite) Network() *UpgradeTestNetwork { return s.network } -func (s *UpgradeTestSuite) SetupTest() { +func (s *UpgradeTestSuite) SetupSuite() { // Setup the SDK config s.network.SetupSdkConfig() s.Require().Equal(sdk.GetConfig().GetBech32AccountAddrPrefix(), "ethm") +} + +func (s *UpgradeTestSuite) SetupTest() { + s.Require().NoError(exec.Command("cp", "-r", ".exrpd", ".exrpd-v7").Run()) // Create the network s.network = NewUpgradeTestNetwork( - exrpupgrade.WithUpgradePlanName("v7.0.0"), - exrpupgrade.WithDataDir(".exrpd/data"), + exrpupgrade.WithUpgradePlanName(upgradeName), + exrpupgrade.WithDataDir(".exrpd-v7/data"), exrpupgrade.WithNodeDBName("application"), ) +} + +func (s *UpgradeTestSuite) TearDownTest() { + s.Require().NoError(exec.Command("rm", "-rf", ".exrpd-v7").Run()) +} + +func (s *UpgradeTestSuite) RunUpgrade(name string) { + res, err := s.network.GetUpgradeClient().CurrentPlan( + s.network.GetContext(), + &upgradetypes.QueryCurrentPlanRequest{}, + ) + s.Require().NoError(err) + s.Require().Equal(name, res.Plan.Name) + + s.Require().True(s.Network().UpgradeKeeper().HasHandler(name)) + + err = s.network.UpgradeKeeper().ApplyUpgrade( + s.Network().GetContext(), + *res.Plan, + ) - // Check that the network was created successfully - s.Require().NotNil(s.network) + s.Require().NoError(err) } diff --git a/app/upgrades/v7/integration/suite_test.go b/app/upgrades/v7/integration/suite_test.go index c7a85c8..dd3fe6f 100644 --- a/app/upgrades/v7/integration/suite_test.go +++ b/app/upgrades/v7/integration/suite_test.go @@ -1,40 +1,11 @@ -package tests +package integration import ( "testing" - "time" - upgradetypes "cosmossdk.io/x/upgrade/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/stretchr/testify/suite" ) func TestUpgradeTestSuite(t *testing.T) { suite.Run(t, new(UpgradeTestSuite)) } - -func (s *UpgradeTestSuite) TestUpgradeV7() { - res, err := s.network.GetUpgradeClient().CurrentPlan( - s.network.GetContext(), - &upgradetypes.QueryCurrentPlanRequest{}, - ) - s.Require().NoError(err) - s.Require().Equal("v7.0.0", res.Plan.Name) - - s.Require().True(s.Network().UpgradeKeeper().HasHandler("v7.0.0")) - - err = s.network.UpgradeKeeper().ApplyUpgrade( - s.Network().GetContext(), - *res.Plan, - ) - - s.Require().NoError(err) - - resParams, err := s.network.GetStakingClient().Params( - s.network.GetContext(), - &stakingtypes.QueryParamsRequest{}, - ) - - s.Require().NoError(err) - s.Require().Equal(100*time.Second, resParams.Params.UnbondingTime) -} diff --git a/testutil/integration/common/network/network.go b/testutil/integration/common/network/network.go index bb98e18..993f4f6 100644 --- a/testutil/integration/common/network/network.go +++ b/testutil/integration/common/network/network.go @@ -45,7 +45,6 @@ type Network interface { GetDistrClient() distrtypes.QueryClient GetFeeMarketClient() feemarkettypes.QueryClient GetGovClient() govtypes.QueryClient - BroadcastTxSync(txBytes []byte) (abcitypes.ExecTxResult, error) Simulate(txBytes []byte) (*txtypes.SimulateResponse, error) CheckTx(txBytes []byte) (*abcitypes.ResponseCheckTx, error) From 6c581f7e4bc8e8b74e6081bf4a1b220ae44a51e7 Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Fri, 31 Jan 2025 13:36:46 +0100 Subject: [PATCH 11/13] feat(tests): add poa upgrade tests --- app/upgrades/v7/integration/bank_test.go | 59 +++++++++ app/upgrades/v7/integration/erc20_test.go | 123 +++++++++++++++++++ app/upgrades/v7/integration/poa_test.go | 98 +++++++++++++++ app/upgrades/v7/integration/staking_test.go | 36 ++++++ app/upgrades/v7/integration/suite.go | 17 +++ testutil/integration/exrp/upgrade/keepers.go | 5 + 6 files changed, 338 insertions(+) create mode 100644 app/upgrades/v7/integration/poa_test.go diff --git a/app/upgrades/v7/integration/bank_test.go b/app/upgrades/v7/integration/bank_test.go index f54ca8f..7bf1f1f 100644 --- a/app/upgrades/v7/integration/bank_test.go +++ b/app/upgrades/v7/integration/bank_test.go @@ -2,6 +2,7 @@ package integration import ( + sdktypes "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" ) @@ -42,3 +43,61 @@ func (s *UpgradeTestSuite) TestUpgrade_Bank_TotalSupply() { // Check that not modified balances are the same s.Require().Equal(res.Supply, postRes.Supply) } + +func (s *UpgradeTestSuite) TestUpgrade_Bank_Send() { + // Replace with the desired addresses + sender, err := sdktypes.AccAddressFromBech32("ethm1dakgyqjulg29m5fmv992g2y66m9g2mjn6hahwg") + s.Require().NoError(err) + receiver, err := sdktypes.AccAddressFromBech32("ethm1nqvn2hmte72e3z0xyqmh06hdwd9qu6hgdcavhh") + s.Require().NoError(err) + amount := sdktypes.NewInt64Coin(s.network.GetDenom(), 100) + + prevBalancesSender, err := s.network.GetBankClient().Balance( + s.network.GetContext(), + &banktypes.QueryBalanceRequest{ + Address: sender.String(), + Denom: s.network.GetDenom(), + }, + ) + s.Require().NoError(err) + + prevBalancesReceiver, err := s.network.GetBankClient().Balance( + s.network.GetContext(), + &banktypes.QueryBalanceRequest{ + Address: receiver.String(), + Denom: s.network.GetDenom(), + }, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + err = s.network.BankKeeper().SendCoins( + s.network.GetContext(), + sender, + receiver, + sdktypes.NewCoins(amount), + ) + s.Require().NoError(err) + + postBalancesSender, err := s.network.GetBankClient().Balance( + s.network.GetContext(), + &banktypes.QueryBalanceRequest{ + Address: sender.String(), + Denom: s.network.GetDenom(), + }, + ) + s.Require().NoError(err) + + postBalancesReceiver, err := s.network.GetBankClient().Balance( + s.network.GetContext(), + &banktypes.QueryBalanceRequest{ + Address: receiver.String(), + Denom: s.network.GetDenom(), + }, + ) + s.Require().NoError(err) + + s.Require().Equal(prevBalancesSender.Balance.Amount.Sub(amount.Amount).String(), postBalancesSender.Balance.Amount.String()) + s.Require().Equal(prevBalancesReceiver.Balance.Amount.Add(amount.Amount).String(), postBalancesReceiver.Balance.Amount.String()) +} diff --git a/app/upgrades/v7/integration/erc20_test.go b/app/upgrades/v7/integration/erc20_test.go index 7f6c629..48f526c 100644 --- a/app/upgrades/v7/integration/erc20_test.go +++ b/app/upgrades/v7/integration/erc20_test.go @@ -2,6 +2,8 @@ package integration import ( + sdktypes "github.com/cosmos/cosmos-sdk/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" erc20types "github.com/evmos/evmos/v20/x/erc20/types" ) @@ -42,3 +44,124 @@ func (s *UpgradeTestSuite) TestUpgrade_ERC20_TokenPairs() { // Check that not modified token pairs are the same s.Require().Equal(prevTokenPairs.TokenPairs, postTokenPairs.TokenPairs) } + +func (s *UpgradeTestSuite) TestUpgrade_ERC20_MintCoins() { + tokenPairs, err := s.network.GetERC20Client().TokenPairs( + s.network.GetContext(), + &erc20types.QueryTokenPairsRequest{}, + ) + s.Require().NoError(err) + s.Require().Equal(len(tokenPairs.TokenPairs), 1) + + tokenPair := tokenPairs.TokenPairs[0] + + sender, err := sdktypes.AccAddressFromBech32(tokenPair.OwnerAddress) + s.Require().NoError(err) + + receiver, err := sdktypes.AccAddressFromBech32("ethm1dakgyqjulg29m5fmv992g2y66m9g2mjn6hahwg") + s.Require().NoError(err) + + amount := sdktypes.NewInt64Coin(s.network.GetDenom(), 100) + + prevBalancesReceiver, err := s.network.GetBankClient().Balance( + s.network.GetContext(), + &banktypes.QueryBalanceRequest{ + Address: receiver.String(), + Denom: s.network.GetDenom(), + }, + ) + + s.RunUpgrade(upgradeName) + + err = s.network.ERC20Keeper().MintCoins( + s.network.GetContext(), + sender, + receiver, + amount.Amount, + s.network.GetDenom(), + ) + s.Require().NoError(err) + + postBalancesReceiver, err := s.network.GetBankClient().Balance( + s.network.GetContext(), + &banktypes.QueryBalanceRequest{ + Address: receiver.String(), + Denom: s.network.GetDenom(), + }, + ) + s.Require().NoError(err) + + s.Require().Equal(prevBalancesReceiver.Balance.Amount.Add(amount.Amount).String(), postBalancesReceiver.Balance.Amount.String()) +} + +func (s *UpgradeTestSuite) TestUpgrade_ERC20_BurnCoins() { + sender, err := sdktypes.AccAddressFromBech32("ethm1dakgyqjulg29m5fmv992g2y66m9g2mjn6hahwg") + s.Require().NoError(err) + + amount := sdktypes.NewInt64Coin(s.network.GetDenom(), 100) + + prevBalancesSender, err := s.network.GetBankClient().Balance( + s.network.GetContext(), + &banktypes.QueryBalanceRequest{ + Address: sender.String(), + Denom: s.network.GetDenom(), + }, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + err = s.network.ERC20Keeper().BurnCoins( + s.network.GetContext(), + sender, + amount.Amount, + s.network.GetDenom(), + ) + s.Require().NoError(err) + + postBalancesSender, err := s.network.GetBankClient().Balance( + s.network.GetContext(), + &banktypes.QueryBalanceRequest{ + Address: sender.String(), + Denom: s.network.GetDenom(), + }, + ) + s.Require().NoError(err) + + s.Require().Equal(prevBalancesSender.Balance.Amount.Sub(amount.Amount).String(), postBalancesSender.Balance.Amount.String()) +} + +func (s *UpgradeTestSuite) TestUpgrade_ERC20_TransferOwnership() { + tokenPairs, err := s.network.GetERC20Client().TokenPairs( + s.network.GetContext(), + &erc20types.QueryTokenPairsRequest{}, + ) + s.Require().NoError(err) + s.Require().Equal(len(tokenPairs.TokenPairs), 1) + + tokenPair := tokenPairs.TokenPairs[0] + + sender, err := sdktypes.AccAddressFromBech32(tokenPair.OwnerAddress) + s.Require().NoError(err) + + newOwner, err := sdktypes.AccAddressFromBech32("ethm1nqvn2hmte72e3z0xyqmh06hdwd9qu6hgdcavhh") + s.Require().NoError(err) + + s.network.ERC20Keeper().TransferOwnership( + s.network.GetContext(), + sender, + newOwner, + tokenPair.Denom, + ) + s.Require().NoError(err) + + postTokenPair, err := s.network.GetERC20Client().TokenPair( + s.network.GetContext(), + &erc20types.QueryTokenPairRequest{ + Token: tokenPair.Denom, + }, + ) + s.Require().NoError(err) + + s.Require().Equal(newOwner.String(), postTokenPair.TokenPair.OwnerAddress) +} \ No newline at end of file diff --git a/app/upgrades/v7/integration/poa_test.go b/app/upgrades/v7/integration/poa_test.go new file mode 100644 index 0000000..9c99935 --- /dev/null +++ b/app/upgrades/v7/integration/poa_test.go @@ -0,0 +1,98 @@ +package integration + +import ( + "time" + + "math/rand" + + sdktypes "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/address" + simtypes "github.com/cosmos/cosmos-sdk/types/simulation" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + poatypes "github.com/xrplevm/node/v6/x/poa/types" +) + +func (s *UpgradeTestSuite) TestUpgrade_Poa_ExecuteRemoveValidator() { + validators, err := s.network.GetStakingClient().Validators( + s.network.GetContext(), + &stakingtypes.QueryValidatorsRequest{}, + ) + s.Require().NoError(err) + s.Require().Greater(len(validators.Validators), 0) + + validator := validators.Validators[0] + valAddr, err := sdktypes.ValAddressFromBech32(validator.OperatorAddress) + s.Require().NoError(err) + valAccAddr := sdktypes.AccAddress(valAddr) + + _, err = s.network.GetStakingClient().Validator( + s.network.GetContext(), + &stakingtypes.QueryValidatorRequest{ + ValidatorAddr: validator.OperatorAddress, + }, + ) + s.Require().NoError(err) + + s.RunUpgrade(upgradeName) + + s.network.PoaKeeper().ExecuteRemoveValidator( + s.network.GetContext(), + valAccAddr.String(), + ) + s.Require().NoError(err) + + + postValidator, err := s.network.GetStakingClient().Validator( + s.network.GetContext(), + &stakingtypes.QueryValidatorRequest{ + ValidatorAddr: validator.OperatorAddress, + }, + ) + + s.Require().NoError(err) + s.Require().True(postValidator.Validator.Tokens.IsZero(), "validator tokens should be zero") + s.Require().True(postValidator.Validator.DelegatorShares.RoundInt().IsZero(), "validator delegator shares should be zero") +} + +func (s *UpgradeTestSuite) TestUpgrade_Poa_ExecuteAddValidator() { + randomAccs := simtypes.RandomAccounts(rand.New(rand.NewSource(time.Now().UnixNano())), 1) //nolint:gosec + randomAcc := randomAccs[0] + randomValAddr := sdktypes.ValAddress(randomAcc.Address.Bytes()) + + authority := sdktypes.AccAddress(address.Module("gov")) + msg, err := poatypes.NewMsgAddValidator( + authority.String(), + randomAcc.Address.String(), + randomAcc.ConsKey.PubKey(), + stakingtypes.Description{ + Moniker: "test", + }, + ) + + _, err = s.network.GetStakingClient().Validator( + s.network.GetContext(), + &stakingtypes.QueryValidatorRequest{ + ValidatorAddr: randomValAddr.String(), + }, + ) + s.Require().Error(err) + + s.RunUpgrade(upgradeName) + + err = s.network.PoaKeeper().ExecuteAddValidator( + s.network.GetContext(), + msg, + ) + s.Require().NoError(err) + + val, err := s.network.GetStakingClient().Validator( + s.network.GetContext(), + &stakingtypes.QueryValidatorRequest{ + ValidatorAddr: randomValAddr.String(), + }, + ) + s.Require().NoError(err) + s.Require().Equal(val.Validator.Status, stakingtypes.Unbonded) + s.Require().Equal(val.Validator.Tokens, sdktypes.DefaultPowerReduction) + s.Require().Equal(val.Validator.DelegatorShares, sdktypes.DefaultPowerReduction.ToLegacyDec()) +} diff --git a/app/upgrades/v7/integration/staking_test.go b/app/upgrades/v7/integration/staking_test.go index bce9650..0ac3760 100644 --- a/app/upgrades/v7/integration/staking_test.go +++ b/app/upgrades/v7/integration/staking_test.go @@ -67,3 +67,39 @@ func (s *UpgradeTestSuite) TestUpgrade_Staking_Delegations() { // Check that not modified delegations are the same s.Require().Equal(prevDelegations, postDelegations) } + +func (s *UpgradeTestSuite) TestUpgrade_Staking_UnbondingDelegations() { + prevValidators, err := s.network.StakingKeeper().GetAllValidators( + s.network.GetContext(), + ) + s.Require().NoError(err) + + unbondingDelegations := make(map[string][]stakingtypes.UnbondingDelegation, len(prevValidators)) + for _, validator := range prevValidators { + res, err := s.network.GetStakingClient().ValidatorUnbondingDelegations( + s.network.GetContext(), + &stakingtypes.QueryValidatorUnbondingDelegationsRequest{ + ValidatorAddr: validator.OperatorAddress, + }, + ) + s.Require().NoError(err) + unbondingDelegations[validator.OperatorAddress] = res.UnbondingResponses + } + + s.RunUpgrade(upgradeName) + + postUnbondingDelegations := make(map[string][]stakingtypes.UnbondingDelegation, len(prevValidators)) + for _, validator := range prevValidators { + res, err := s.network.GetStakingClient().ValidatorUnbondingDelegations( + s.network.GetContext(), + &stakingtypes.QueryValidatorUnbondingDelegationsRequest{ + ValidatorAddr: validator.OperatorAddress, + }, + ) + s.Require().NoError(err) + postUnbondingDelegations[validator.OperatorAddress] = res.UnbondingResponses + } + + // Check that not modified unbonding delegations are the same + s.Require().Equal(unbondingDelegations, postUnbondingDelegations) +} diff --git a/app/upgrades/v7/integration/suite.go b/app/upgrades/v7/integration/suite.go index 56eaf08..3178d44 100644 --- a/app/upgrades/v7/integration/suite.go +++ b/app/upgrades/v7/integration/suite.go @@ -6,6 +6,9 @@ import ( upgradetypes "cosmossdk.io/x/upgrade/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/suite" + "github.com/xrplevm/node/v6/testutil/integration/common/grpc" + "github.com/xrplevm/node/v6/testutil/integration/common/keyring" + exrpcommon "github.com/xrplevm/node/v6/testutil/integration/exrp/common" exrpupgrade "github.com/xrplevm/node/v6/testutil/integration/exrp/upgrade" ) @@ -17,6 +20,8 @@ type UpgradeTestSuite struct { suite.Suite network *UpgradeTestNetwork + keyring keyring.Keyring + grpcHandler grpc.Handler } func (s *UpgradeTestSuite) Network() *UpgradeTestNetwork { @@ -31,6 +36,9 @@ func (s *UpgradeTestSuite) SetupSuite() { } func (s *UpgradeTestSuite) SetupTest() { + // Check that the network was created successfully + kr := keyring.New(5) + s.Require().NoError(exec.Command("cp", "-r", ".exrpd", ".exrpd-v7").Run()) // Create the network @@ -38,7 +46,14 @@ func (s *UpgradeTestSuite) SetupTest() { exrpupgrade.WithUpgradePlanName(upgradeName), exrpupgrade.WithDataDir(".exrpd-v7/data"), exrpupgrade.WithNodeDBName("application"), + exrpcommon.WithBondDenom("apoa"), + exrpcommon.WithDenom("token"), ) + + rpcHandler := grpc.NewIntegrationHandler(s.network) + + s.grpcHandler = rpcHandler + s.keyring = kr } func (s *UpgradeTestSuite) TearDownTest() { @@ -61,4 +76,6 @@ func (s *UpgradeTestSuite) RunUpgrade(name string) { ) s.Require().NoError(err) + + } diff --git a/testutil/integration/exrp/upgrade/keepers.go b/testutil/integration/exrp/upgrade/keepers.go index 70fd1b8..cd34b9a 100644 --- a/testutil/integration/exrp/upgrade/keepers.go +++ b/testutil/integration/exrp/upgrade/keepers.go @@ -10,6 +10,7 @@ import ( stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" upgradekeeper "cosmossdk.io/x/upgrade/keeper" + paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" erc20keeper "github.com/evmos/evmos/v20/x/erc20/keeper" evmkeeper "github.com/evmos/evmos/v20/x/evm/keeper" feemarketkeeper "github.com/evmos/evmos/v20/x/feemarket/keeper" @@ -63,3 +64,7 @@ func (n *UpgradeIntegrationNetwork) PoaKeeper() poakeeper.Keeper { func (n *UpgradeIntegrationNetwork) UpgradeKeeper() upgradekeeper.Keeper { return *n.app.UpgradeKeeper } + +func (n *UpgradeIntegrationNetwork) ParamsKeeper() paramskeeper.Keeper { + return n.app.ParamsKeeper +} From 94cd5f853818cb026dc7d37d6efa9a34a76b1f6a Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Fri, 31 Jan 2025 15:37:49 +0100 Subject: [PATCH 12/13] fix(tests): linting --- app/upgrades/v7/integration/bank_test.go | 1 - app/upgrades/v7/integration/erc20_test.go | 7 +++---- app/upgrades/v7/integration/poa_test.go | 13 ++++++------- app/upgrades/v7/integration/suite.go | 6 ++---- 4 files changed, 11 insertions(+), 16 deletions(-) diff --git a/app/upgrades/v7/integration/bank_test.go b/app/upgrades/v7/integration/bank_test.go index 7bf1f1f..17f6b04 100644 --- a/app/upgrades/v7/integration/bank_test.go +++ b/app/upgrades/v7/integration/bank_test.go @@ -1,4 +1,3 @@ -//nolint:dupl package integration import ( diff --git a/app/upgrades/v7/integration/erc20_test.go b/app/upgrades/v7/integration/erc20_test.go index 48f526c..5435ec2 100644 --- a/app/upgrades/v7/integration/erc20_test.go +++ b/app/upgrades/v7/integration/erc20_test.go @@ -1,4 +1,3 @@ -//nolint:dupl package integration import ( @@ -70,7 +69,7 @@ func (s *UpgradeTestSuite) TestUpgrade_ERC20_MintCoins() { Denom: s.network.GetDenom(), }, ) - + s.Require().NoError(err) s.RunUpgrade(upgradeName) err = s.network.ERC20Keeper().MintCoins( @@ -147,7 +146,7 @@ func (s *UpgradeTestSuite) TestUpgrade_ERC20_TransferOwnership() { newOwner, err := sdktypes.AccAddressFromBech32("ethm1nqvn2hmte72e3z0xyqmh06hdwd9qu6hgdcavhh") s.Require().NoError(err) - s.network.ERC20Keeper().TransferOwnership( + err = s.network.ERC20Keeper().TransferOwnership( s.network.GetContext(), sender, newOwner, @@ -164,4 +163,4 @@ func (s *UpgradeTestSuite) TestUpgrade_ERC20_TransferOwnership() { s.Require().NoError(err) s.Require().Equal(newOwner.String(), postTokenPair.TokenPair.OwnerAddress) -} \ No newline at end of file +} diff --git a/app/upgrades/v7/integration/poa_test.go b/app/upgrades/v7/integration/poa_test.go index 9c99935..e95e182 100644 --- a/app/upgrades/v7/integration/poa_test.go +++ b/app/upgrades/v7/integration/poa_test.go @@ -1,9 +1,8 @@ package integration import ( - "time" - "math/rand" + "time" sdktypes "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/address" @@ -35,12 +34,11 @@ func (s *UpgradeTestSuite) TestUpgrade_Poa_ExecuteRemoveValidator() { s.RunUpgrade(upgradeName) - s.network.PoaKeeper().ExecuteRemoveValidator( + err = s.network.PoaKeeper().ExecuteRemoveValidator( s.network.GetContext(), valAccAddr.String(), ) s.Require().NoError(err) - postValidator, err := s.network.GetStakingClient().Validator( s.network.GetContext(), @@ -54,10 +52,10 @@ func (s *UpgradeTestSuite) TestUpgrade_Poa_ExecuteRemoveValidator() { s.Require().True(postValidator.Validator.DelegatorShares.RoundInt().IsZero(), "validator delegator shares should be zero") } -func (s *UpgradeTestSuite) TestUpgrade_Poa_ExecuteAddValidator() { +func (s *UpgradeTestSuite) TestUpgrade_Poa_ExecuteAddValidator() { randomAccs := simtypes.RandomAccounts(rand.New(rand.NewSource(time.Now().UnixNano())), 1) //nolint:gosec randomAcc := randomAccs[0] - randomValAddr := sdktypes.ValAddress(randomAcc.Address.Bytes()) + randomValAddr := sdktypes.ValAddress(randomAcc.Address.Bytes()) authority := sdktypes.AccAddress(address.Module("gov")) msg, err := poatypes.NewMsgAddValidator( @@ -68,6 +66,7 @@ func (s *UpgradeTestSuite) TestUpgrade_Poa_ExecuteAddValidator() { Moniker: "test", }, ) + s.Require().NoError(err) _, err = s.network.GetStakingClient().Validator( s.network.GetContext(), @@ -84,7 +83,7 @@ func (s *UpgradeTestSuite) TestUpgrade_Poa_ExecuteAddValidator() { msg, ) s.Require().NoError(err) - + val, err := s.network.GetStakingClient().Validator( s.network.GetContext(), &stakingtypes.QueryValidatorRequest{ diff --git a/app/upgrades/v7/integration/suite.go b/app/upgrades/v7/integration/suite.go index 3178d44..ad53443 100644 --- a/app/upgrades/v7/integration/suite.go +++ b/app/upgrades/v7/integration/suite.go @@ -19,8 +19,8 @@ const ( type UpgradeTestSuite struct { suite.Suite - network *UpgradeTestNetwork - keyring keyring.Keyring + network *UpgradeTestNetwork + keyring keyring.Keyring grpcHandler grpc.Handler } @@ -76,6 +76,4 @@ func (s *UpgradeTestSuite) RunUpgrade(name string) { ) s.Require().NoError(err) - - } From 66099e9b09a623d5d08b9ebaabb4c3179f1a3588 Mon Sep 17 00:00:00 2001 From: GuillemGarciaDev Date: Fri, 31 Jan 2025 16:13:06 +0100 Subject: [PATCH 13/13] feat: customize `test-upgrade` Makefile rule to accept custom options --- Makefile | 10 +-- app/upgrades/v6/integration/network.go | 79 ----------------------- app/upgrades/v6/integration/suite.go | 34 ---------- app/upgrades/v6/integration/suite_test.go | 40 ------------ app/upgrades/v7/integration/suite.go | 9 +-- 5 files changed, 11 insertions(+), 161 deletions(-) delete mode 100644 app/upgrades/v6/integration/network.go delete mode 100644 app/upgrades/v6/integration/suite.go delete mode 100644 app/upgrades/v6/integration/suite_test.go diff --git a/Makefile b/Makefile index 9e2b386..3855b3c 100644 --- a/Makefile +++ b/Makefile @@ -4,8 +4,10 @@ BRANCH := $(shell git rev-parse --abbrev-ref HEAD) COMMIT := $(shell git log -1 --format='%H') BINDIR ?= $(GOPATH)/bin APP = ./app -LATEST_UPGRADE = $(shell ls -d ./app/upgrades/* | sort -r | head -n 1) +# Upgrade testsuite values +LATEST_UPGRADE ?= $(shell ls -d ./app/upgrades/* | sort -r | head -n 1) +SNAPSHOT_DIR ?= .exrpd # don't override user values ifeq (,$(VERSION)) VERSION := $(shell git describe --tags) @@ -129,10 +131,10 @@ mocks: test: test-poa test-integration test-sim-benchmark-simulation test-sim-full-app-fast -test-latest-upgrade: - @echo "--> Running upgrade testsuite" +test-upgrade: + @echo "--> Running upgrade testsuite from snapshot: $(SNAPSHOT_DIR), into $(LATEST_UPGRADE)" @rm -rf $(LATEST_UPGRADE)/integration/.exrpd - @cp -r ./.exrpd $(LATEST_UPGRADE)/integration/.exrpd + @cp -r $(SNAPSHOT_DIR) $(LATEST_UPGRADE)/integration/.exrpd @go test -mod=readonly -v $(LATEST_UPGRADE)/integration test-integration: diff --git a/app/upgrades/v6/integration/network.go b/app/upgrades/v6/integration/network.go deleted file mode 100644 index 644c11a..0000000 --- a/app/upgrades/v6/integration/network.go +++ /dev/null @@ -1,79 +0,0 @@ -package tests - -import ( - upgradetypes "cosmossdk.io/x/upgrade/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/cosmos/cosmos-sdk/x/authz" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - erc20types "github.com/evmos/evmos/v20/x/erc20/types" - evmtypes "github.com/evmos/evmos/v20/x/evm/types" - feemarkettypes "github.com/evmos/evmos/v20/x/feemarket/types" - commonnetwork "github.com/xrplevm/node/v6/testutil/integration/common/network" - exrpcommon "github.com/xrplevm/node/v6/testutil/integration/exrp/common" - upgradenetwork "github.com/xrplevm/node/v6/testutil/integration/exrp/upgrade" - poatypes "github.com/xrplevm/node/v6/x/poa/types" -) - -var _ commonnetwork.Network = (*UpgradeTestNetwork)(nil) - -type UpgradeTestNetwork struct { - upgradenetwork.UpgradeIntegrationNetwork -} - -func NewUpgradeTestNetwork(opts ...exrpcommon.ConfigOption) *UpgradeTestNetwork { - network := upgradenetwork.New(opts...) - return &UpgradeTestNetwork{ - UpgradeIntegrationNetwork: *network, - } -} - -func (n *UpgradeTestNetwork) SetupSdkConfig() { - exrpcommon.SetupSdkConfig() -} - -func (n *UpgradeTestNetwork) GetERC20Client() erc20types.QueryClient { - return exrpcommon.GetERC20Client(n) -} - -func (n *UpgradeTestNetwork) GetEvmClient() evmtypes.QueryClient { - return exrpcommon.GetEvmClient(n) -} - -func (n *UpgradeTestNetwork) GetGovClient() govtypes.QueryClient { - return exrpcommon.GetGovClient(n) -} - -func (n *UpgradeTestNetwork) GetBankClient() banktypes.QueryClient { - return exrpcommon.GetBankClient(n) -} - -func (n *UpgradeTestNetwork) GetFeeMarketClient() feemarkettypes.QueryClient { - return exrpcommon.GetFeeMarketClient(n) -} - -func (n *UpgradeTestNetwork) GetAuthClient() authtypes.QueryClient { - return exrpcommon.GetAuthClient(n) -} - -func (n *UpgradeTestNetwork) GetAuthzClient() authz.QueryClient { - return exrpcommon.GetAuthzClient(n) -} - -func (n *UpgradeTestNetwork) GetStakingClient() stakingtypes.QueryClient { - return exrpcommon.GetStakingClient(n) -} - -func (n *UpgradeTestNetwork) GetDistrClient() distrtypes.QueryClient { - return exrpcommon.GetDistrClient(n) -} - -func (n *UpgradeTestNetwork) GetPoaClient() poatypes.QueryClient { - return exrpcommon.GetPoaClient(n) -} - -func (n *UpgradeTestNetwork) GetUpgradeClient() upgradetypes.QueryClient { - return exrpcommon.GetUpgradeClient(n) -} diff --git a/app/upgrades/v6/integration/suite.go b/app/upgrades/v6/integration/suite.go deleted file mode 100644 index d08cebb..0000000 --- a/app/upgrades/v6/integration/suite.go +++ /dev/null @@ -1,34 +0,0 @@ -package tests - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/stretchr/testify/suite" - exrpupgrade "github.com/xrplevm/node/v6/testutil/integration/exrp/upgrade" -) - -type UpgradeTestSuite struct { - suite.Suite - - network *UpgradeTestNetwork -} - -func (s *UpgradeTestSuite) Network() *UpgradeTestNetwork { - return s.network -} - -func (s *UpgradeTestSuite) SetupTest() { - // Setup the SDK config - s.network.SetupSdkConfig() - - s.Require().Equal(sdk.GetConfig().GetBech32AccountAddrPrefix(), "ethm") - - // Create the network - s.network = NewUpgradeTestNetwork( - exrpupgrade.WithUpgradePlanName("v6.0.0"), - exrpupgrade.WithDataDir(".exrpd/data"), - exrpupgrade.WithNodeDBName("application"), - ) - - // Check that the network was created successfully - s.Require().NotNil(s.network) -} diff --git a/app/upgrades/v6/integration/suite_test.go b/app/upgrades/v6/integration/suite_test.go deleted file mode 100644 index 66bb223..0000000 --- a/app/upgrades/v6/integration/suite_test.go +++ /dev/null @@ -1,40 +0,0 @@ -package tests - -import ( - "testing" - "time" - - upgradetypes "cosmossdk.io/x/upgrade/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/stretchr/testify/suite" -) - -func TestUpgradeTestSuite(t *testing.T) { - suite.Run(t, new(UpgradeTestSuite)) -} - -func (s *UpgradeTestSuite) TestUpgradeV6() { - res, err := s.network.GetUpgradeClient().CurrentPlan( - s.network.GetContext(), - &upgradetypes.QueryCurrentPlanRequest{}, - ) - s.Require().NoError(err) - s.Require().Equal("v6.0.0", res.Plan.Name) - - s.Require().True(s.Network().UpgradeKeeper().HasHandler("v6.0.0")) - - err = s.network.UpgradeKeeper().ApplyUpgrade( - s.Network().GetContext(), - *res.Plan, - ) - - s.Require().NoError(err) - - resParams, err := s.network.GetStakingClient().Params( - s.network.GetContext(), - &stakingtypes.QueryParamsRequest{}, - ) - - s.Require().NoError(err) - s.Require().Equal(100*time.Second, resParams.Params.UnbondingTime) -} diff --git a/app/upgrades/v7/integration/suite.go b/app/upgrades/v7/integration/suite.go index ad53443..718a5e3 100644 --- a/app/upgrades/v7/integration/suite.go +++ b/app/upgrades/v7/integration/suite.go @@ -13,7 +13,8 @@ import ( ) const ( - upgradeName = "v7.0.0" + upgradeName = "v7.0.0" + testSnapshotDir = ".exrpd" ) type UpgradeTestSuite struct { @@ -39,12 +40,12 @@ func (s *UpgradeTestSuite) SetupTest() { // Check that the network was created successfully kr := keyring.New(5) - s.Require().NoError(exec.Command("cp", "-r", ".exrpd", ".exrpd-v7").Run()) + s.Require().NoError(exec.Command("cp", "-r", testSnapshotDir, testSnapshotDir+"-"+upgradeName).Run()) // Create the network s.network = NewUpgradeTestNetwork( exrpupgrade.WithUpgradePlanName(upgradeName), - exrpupgrade.WithDataDir(".exrpd-v7/data"), + exrpupgrade.WithDataDir(testSnapshotDir+"-"+upgradeName+"/data"), exrpupgrade.WithNodeDBName("application"), exrpcommon.WithBondDenom("apoa"), exrpcommon.WithDenom("token"), @@ -57,7 +58,7 @@ func (s *UpgradeTestSuite) SetupTest() { } func (s *UpgradeTestSuite) TearDownTest() { - s.Require().NoError(exec.Command("rm", "-rf", ".exrpd-v7").Run()) + s.Require().NoError(exec.Command("rm", "-rf", testSnapshotDir+"-"+upgradeName).Run()) } func (s *UpgradeTestSuite) RunUpgrade(name string) {