From 6ae1f7c448dc8a4d14c334f2df0be4ec0780a53a Mon Sep 17 00:00:00 2001 From: Thomas Nguy <81727899+thomas-nguy@users.noreply.github.com> Date: Tue, 18 Oct 2022 17:10:44 +0900 Subject: [PATCH] Problem: no upgrade handler for v0.8.0-gravity-alpha2 (#742) --- CHANGELOG.md | 1 + app/upgrades.go | 25 +++++++++++-- go.mod | 3 +- go.sum | 4 +-- gomod2nix.toml | 4 +-- .../configs/upgrade-test-package-gravity.nix | 6 ++-- integration_tests/cosmoscli.py | 3 ++ integration_tests/test_upgrade_gravity.py | 35 +++++++++++++++++-- 8 files changed, 68 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae5eb47e0c..4007c136b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### State Machine Breaking - [cronos#695](https://github.com/crypto-org-chain/cronos/pull/695) Implement ADR-007, generic events format with indexed params. - [cronos#728](https://github.com/crypto-org-chain/cronos/pull/728) Upgrade gravity bridge latest bugfix, including multi attestation processing and double spend check. +- [cronos#742](https://github.com/crypto-org-chain/cronos/pull/742) Add upgrade handler for v0.8.0-gravity-alpha2. ### Improvements diff --git a/app/upgrades.go b/app/upgrades.go index fa6348f934..1871640dd2 100644 --- a/app/upgrades.go +++ b/app/upgrades.go @@ -3,6 +3,8 @@ package app import ( "fmt" + evmtypes "github.com/evmos/ethermint/x/evm/types" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" @@ -17,10 +19,29 @@ func (app *App) RegisterUpgradeHandlers(experimental bool) { return app.mm.RunMigrations(ctx, app.configurator, fromVM) }) - gravityPlanName := "v0.8.0-gravity-alpha3" + gravityPlanName := "v0.8.0-gravity-alpha2" if experimental { app.UpgradeKeeper.SetUpgradeHandler(gravityPlanName, func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { - return app.mm.RunMigrations(ctx, app.configurator, fromVM) + updatedVM, err := app.mm.RunMigrations(ctx, app.configurator, fromVM) + if err != nil { + return nil, err + } + // set new gravity id + gravParams := app.GravityKeeper.GetParams(ctx) + gravParams.GravityId = "cronos_gravity_pioneer_v3" + app.GravityKeeper.SetParams(ctx, gravParams) + + // Estimate time upgrade take place + // 100% is not necessary here because it will be tuned by relayer later on + // it is set to georli height at Wed Oct 26 2022 03:33:28 GMT+0900 + app.GravityKeeper.MigrateGravityContract( + ctx, "0x0000000000000000000000000000000000000000", 7832100) + + // Fix bug on ethermint due to cutting the binary before official release + evmParamStore := app.GetSubspace(evmtypes.ModuleName) + evmParamStore.Set(ctx, evmtypes.ParamStoreKeyAllowUnprotectedTxs, false) + + return updatedVM, nil }) } diff --git a/go.mod b/go.mod index f8b0fbef90..97c1e8b223 100644 --- a/go.mod +++ b/go.mod @@ -197,8 +197,7 @@ replace ( github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.7.0 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 - // TODO: remove when gravity update dependencies - github.com/peggyjv/gravity-bridge/module/v2 => github.com/crypto-org-chain/gravity-bridge/module/v2 v2.0.1-0.20221004054346-17ff40b2b361 + github.com/peggyjv/gravity-bridge/module/v2 => github.com/crypto-org-chain/gravity-bridge/module/v2 v2.0.1-0.20221016022038-e581164e2889 // TODO: remove after fixed https://github.com/cosmos/cosmos-sdk/issues/11364 github.com/zondax/hid => github.com/zondax/hid v0.9.0 diff --git a/go.sum b/go.sum index 8d5f8bb3ae..422ad9cad5 100644 --- a/go.sum +++ b/go.sum @@ -647,8 +647,8 @@ github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/crypto-org-chain/gravity-bridge/module/v2 v2.0.1-0.20221004054346-17ff40b2b361 h1:lA6lx9Luny3v8Bsd2zZapXJ9Es2c4DzrZXVDFnd4F1Q= -github.com/crypto-org-chain/gravity-bridge/module/v2 v2.0.1-0.20221004054346-17ff40b2b361/go.mod h1:w/nb6f8UbrqqevKYQm/r+qjRl4WgxRlTC+l9dQ1wDfg= +github.com/crypto-org-chain/gravity-bridge/module/v2 v2.0.1-0.20221016022038-e581164e2889 h1:2ET/g4Gwx5DOAJBz49EgYBjB8Tj89nkbHQD2esbZXf0= +github.com/crypto-org-chain/gravity-bridge/module/v2 v2.0.1-0.20221016022038-e581164e2889/go.mod h1:w/nb6f8UbrqqevKYQm/r+qjRl4WgxRlTC+l9dQ1wDfg= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= diff --git a/gomod2nix.toml b/gomod2nix.toml index ba0829d602..ef1a1ae27f 100644 --- a/gomod2nix.toml +++ b/gomod2nix.toml @@ -361,8 +361,8 @@ schema = 3 version = "v0.0.5" hash = "sha256-/5i70IkH/qSW5KjGzv8aQNKh9tHoz98tqtL0K2DMFn4=" [mod."github.com/peggyjv/gravity-bridge/module/v2"] - version = "v2.0.1-0.20221004054346-17ff40b2b361" - hash = "sha256-95P6X7gc9tBoOAkTI+iy7F6/M3ZkYL8/ZsT5wWAwHlI=" + version = "v2.0.1-0.20221016022038-e581164e2889" + hash = "sha256-/6G+UNaP+O8g9viH5CxYO0fe48Qsw8WRujm2p/VDDNI=" replaced = "github.com/crypto-org-chain/gravity-bridge/module/v2" [mod."github.com/pelletier/go-toml"] version = "v1.9.5" diff --git a/integration_tests/configs/upgrade-test-package-gravity.nix b/integration_tests/configs/upgrade-test-package-gravity.nix index 21a75db62c..e1c30e1c23 100644 --- a/integration_tests/configs/upgrade-test-package-gravity.nix +++ b/integration_tests/configs/upgrade-test-package-gravity.nix @@ -7,11 +7,11 @@ let shortRev = builtins.substring 0 7 rev; }; }).defaultNix; - # tag: v0.8.0-gravity-alpha2 - released = (fetchFlake "crypto-org-chain/cronos" "57260c7c21cdedffd75480e8cb4e8838ea6a16b5").default; + # tag: v0.8.0-gravity-alpha1 + released = (fetchFlake "crypto-org-chain/cronos" "a485dffc48975acbb792945f76b52ae6ab2ce543").default; current = pkgs.callPackage ../../. { }; in pkgs.linkFarm "upgrade-test-package" [ { name = "genesis"; path = released; } - { name = "v0.8.0-gravity-alpha3"; path = current; } + { name = "v0.8.0-gravity-alpha2"; path = current; } ] diff --git a/integration_tests/cosmoscli.py b/integration_tests/cosmoscli.py index 6f0d9d1fd2..c1fa4b72cc 100644 --- a/integration_tests/cosmoscli.py +++ b/integration_tests/cosmoscli.py @@ -1027,6 +1027,9 @@ def set_delegate_keys(self, val_addr, acc_addr, eth_addr, signature, **kwargs): def query_gravity_params(self): return json.loads(self.raw("query", "gravity", "params", home=self.data_dir)) + def query_evm_params(self): + return json.loads(self.raw("query", "evm", "params", home=self.data_dir)) + def query_signer_set_txs(self): return json.loads( self.raw("query", "gravity", "signer-set-txs", home=self.data_dir) diff --git a/integration_tests/test_upgrade_gravity.py b/integration_tests/test_upgrade_gravity.py index f17726cdd8..3eb7926050 100644 --- a/integration_tests/test_upgrade_gravity.py +++ b/integration_tests/test_upgrade_gravity.py @@ -84,7 +84,7 @@ def test_cosmovisor_upgrade_gravity(custom_cronos: Cronos): height = cli.block_height() target_height = height + 15 print("upgrade height", target_height) - plan_name = "v0.8.0-gravity-alpha3" + plan_name = "v0.8.0-gravity-alpha2" rsp = cli.gov_propose_v0_7( "community", "software-upgrade", @@ -127,7 +127,7 @@ def test_cosmovisor_upgrade_gravity(custom_cronos: Cronos): # check ica controller is enabled assert cli.query_gravity_params() == { "params": { - "gravity_id": "defaultgravityid", + "gravity_id": "cronos_gravity_pioneer_v3", "contract_source_hash": "", "bridge_ethereum_address": "0x0000000000000000000000000000000000000000", "bridge_chain_id": "0", @@ -148,3 +148,34 @@ def test_cosmovisor_upgrade_gravity(custom_cronos: Cronos): "observe_ethereum_height_period": "50", } } + + # check evm params + assert cli.query_evm_params() == { + "params": { + "evm_denom": "basetcro", + "enable_create": True, + "enable_call": True, + "extra_eips": [], + "chain_config": { + "homestead_block": "0", + "dao_fork_block": "0", + "dao_fork_support": True, + "eip150_block": "0", + "eip150_hash": "0x0000000000000000000000000000000000000000000000000000" + "000000000000", + "eip155_block": "0", + "eip158_block": "0", + "gray_glacier_block": "0", + "byzantium_block": "0", + "constantinople_block": "0", + "petersburg_block": "0", + "istanbul_block": "0", + "muir_glacier_block": "0", + "berlin_block": "0", + "london_block": "0", + "arrow_glacier_block": "0", + "merge_netsplit_block": "0", + }, + "allow_unprotected_txs": False, + } + }