From 5ce6c342632d6b28e548dd1cdda5f73514ef3136 Mon Sep 17 00:00:00 2001 From: ducphamle2 Date: Mon, 26 Dec 2022 12:52:06 -0800 Subject: [PATCH] added start scripts & set upgrade data for pleiades upgrade handler --- module/.gitignore | 2 ++ module/app/app.go | 2 +- module/app/assert.go | 7 +++++++ module/app/upgrades/pleiades/README.md | 3 ++- module/app/upgrades/pleiades/handler.go | 27 ++++++++++++++++++++++++- module/app/upgrades/register.go | 26 ++++++++++++------------ module/contrib/local/setup_node.sh | 11 ++++++---- module/contrib/local/start_node.sh | 2 +- module/x/gravity/module.go | 6 +++--- 9 files changed, 62 insertions(+), 24 deletions(-) diff --git a/module/.gitignore b/module/.gitignore index 5fd117392..4da1c7f33 100644 --- a/module/.gitignore +++ b/module/.gitignore @@ -1 +1,3 @@ /gravity + +*.txt \ No newline at end of file diff --git a/module/app/app.go b/module/app/app.go index 664007038..8d6c1eca1 100644 --- a/module/app/app.go +++ b/module/app/app.go @@ -955,7 +955,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino func (app *Gravity) registerUpgradeHandlers() { upgrades.RegisterUpgradeHandlers( app.mm, app.configurator, app.accountKeeper, app.bankKeeper, app.bech32IbcKeeper, app.distrKeeper, - app.mintKeeper, app.stakingKeeper, app.upgradeKeeper, app.crisisKeeper, app.ibcTransferKeeper, + app.mintKeeper, app.stakingKeeper, app.upgradeKeeper, app.crisisKeeper, app.ibcTransferKeeper, app.gravityKeeper, ) } diff --git a/module/app/assert.go b/module/app/assert.go index 1a66d3001..9e2af2f8a 100644 --- a/module/app/assert.go +++ b/module/app/assert.go @@ -2,6 +2,7 @@ package app import ( "fmt" + sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -15,6 +16,12 @@ func (app *Gravity) assertBech32PrefixMatches(ctx sdk.Context) { if app == nil || config == nil || app.bech32IbcKeeper == nil { panic("Invalid app/config/keeper state") } + + err := app.bech32IbcKeeper.SetNativeHrp(ctx, config.GetBech32AccountAddrPrefix()) + if err != nil { + panic(sdkerrors.Wrap(err, "Unable to start, bech32ibc module not initialized to the correct prefix")) + } + nativePrefix, err := app.bech32IbcKeeper.GetNativeHrp(ctx) if err != nil { panic(sdkerrors.Wrap(err, "Error obtaining bech32ibc NativeHrp")) diff --git a/module/app/upgrades/pleiades/README.md b/module/app/upgrades/pleiades/README.md index a36608f03..25b239939 100644 --- a/module/app/upgrades/pleiades/README.md +++ b/module/app/upgrades/pleiades/README.md @@ -6,4 +6,5 @@ The *Pleiades* upgrade contains the following changes. ## Summary of Changes * Migrate all batches to a new key format -* Add new CLI and gRPC endpoints to return Attestations, LastObservedEthereumBlockHeight, and LastObservedEthereumEventsNonce, enabling tools like Telescope to get a better picture of the current bridge status \ No newline at end of file +* Add new CLI and gRPC endpoints to return Attestations, LastObservedEthereumBlockHeight, and LastObservedEthereumEventsNonce, enabling tools like Telescope to get a better picture of the current bridge status +* Add Multiple EVM chains support \ No newline at end of file diff --git a/module/app/upgrades/pleiades/handler.go b/module/app/upgrades/pleiades/handler.go index ed15aa4b0..43b0bc46f 100644 --- a/module/app/upgrades/pleiades/handler.go +++ b/module/app/upgrades/pleiades/handler.go @@ -1,14 +1,18 @@ package pleiades import ( + gravitykeeper "github.com/Gravity-Bridge/Gravity-Bridge/module/x/gravity/keeper" + "github.com/Gravity-Bridge/Gravity-Bridge/module/x/gravity/types" sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/types/module" crisiskeeper "github.com/cosmos/cosmos-sdk/x/crisis/keeper" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + bech32ibckeeper "github.com/osmosis-labs/bech32-ibc/x/bech32ibc/keeper" ) func GetPleiadesUpgradeHandler( - mm *module.Manager, configurator *module.Configurator, crisisKeeper *crisiskeeper.Keeper, + mm *module.Manager, configurator *module.Configurator, crisisKeeper *crisiskeeper.Keeper, gravityKeeper *gravitykeeper.Keeper, bech32ibckeeper *bech32ibckeeper.Keeper, ) func( ctx sdk.Context, plan upgradetypes.Plan, vmap module.VersionMap, ) (module.VersionMap, error) { @@ -18,6 +22,27 @@ func GetPleiadesUpgradeHandler( return func(ctx sdk.Context, plan upgradetypes.Plan, vmap module.VersionMap) (module.VersionMap, error) { ctx.Logger().Info("Pleiades upgrade: Enter handler") + evmChains := []types.EvmChain{ + { + EvmChainPrefix: "oraib", + EvmChainName: "Binance Smart Chain", + }, + { + EvmChainPrefix: "eth", + EvmChainName: "Ethereum", + }, + } + + for _, evmChain := range evmChains { + gravityKeeper.SetEvmChainData(ctx, evmChain) + } + + // just in case the new version uses default native hrp which is osmo + err := bech32ibckeeper.SetNativeHrp(ctx, sdk.GetConfig().GetBech32AccountAddrPrefix()) + if err != nil { + panic(sdkerrors.Wrap(err, "Pleiades Upgrade: Unable to upgrade, bech32ibc module not initialized properly")) + } + ctx.Logger().Info("Pleiades Upgrade: Running any configured module migrations") out, outErr := mm.RunMigrations(ctx, *configurator, vmap) diff --git a/module/app/upgrades/register.go b/module/app/upgrades/register.go index 20aef34be..cd82b8656 100644 --- a/module/app/upgrades/register.go +++ b/module/app/upgrades/register.go @@ -1,6 +1,7 @@ package upgrades import ( + gravitykeeper "github.com/Gravity-Bridge/Gravity-Bridge/module/x/gravity/keeper" "github.com/cosmos/cosmos-sdk/types/module" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" @@ -14,7 +15,6 @@ import ( "github.com/Gravity-Bridge/Gravity-Bridge/module/app/upgrades/pleiades" polaris "github.com/Gravity-Bridge/Gravity-Bridge/module/app/upgrades/polaris" - v2 "github.com/Gravity-Bridge/Gravity-Bridge/module/app/upgrades/v2" ) // RegisterUpgradeHandlers registers handlers for all upgrades @@ -24,22 +24,22 @@ func RegisterUpgradeHandlers( mm *module.Manager, configurator *module.Configurator, accountKeeper *authkeeper.AccountKeeper, bankKeeper *bankkeeper.BaseKeeper, bech32IbcKeeper *bech32ibckeeper.Keeper, distrKeeper *distrkeeper.Keeper, mintKeeper *mintkeeper.Keeper, stakingKeeper *stakingkeeper.Keeper, upgradeKeeper *upgradekeeper.Keeper, - crisisKeeper *crisiskeeper.Keeper, transferKeeper *ibctransferkeeper.Keeper, + crisisKeeper *crisiskeeper.Keeper, transferKeeper *ibctransferkeeper.Keeper, gravityKeeper *gravitykeeper.Keeper, ) { if mm == nil || configurator == nil || accountKeeper == nil || bankKeeper == nil || bech32IbcKeeper == nil || distrKeeper == nil || mintKeeper == nil || stakingKeeper == nil || upgradeKeeper == nil { panic("Nil argument to RegisterUpgradeHandlers()!") } - // Mercury aka v1->v2 UPGRADE HANDLER SETUP - upgradeKeeper.SetUpgradeHandler( - v2.V1ToV2PlanName, // Codename Mercury - v2.GetV2UpgradeHandler(mm, configurator, accountKeeper, bankKeeper, bech32IbcKeeper, distrKeeper, mintKeeper, stakingKeeper), - ) - // Mercury Fix aka mercury2.0 UPGRADE HANDLER SETUP - upgradeKeeper.SetUpgradeHandler( - v2.V2FixPlanName, // mercury2.0 - v2.GetMercury2Dot0UpgradeHandler(), - ) + // // Mercury aka v1->v2 UPGRADE HANDLER SETUP + // upgradeKeeper.SetUpgradeHandler( + // v2.V1ToV2PlanName, // Codename Mercury + // v2.GetV2UpgradeHandler(mm, configurator, accountKeeper, bankKeeper, bech32IbcKeeper, distrKeeper, mintKeeper, stakingKeeper), + // ) + // // Mercury Fix aka mercury2.0 UPGRADE HANDLER SETUP + // upgradeKeeper.SetUpgradeHandler( + // v2.V2FixPlanName, // mercury2.0 + // v2.GetMercury2Dot0UpgradeHandler(), + // ) // Polaris UPGRADE HANDLER SETUP upgradeKeeper.SetUpgradeHandler( @@ -50,6 +50,6 @@ func RegisterUpgradeHandlers( // Pleiades aka v2->v3 UPGRADE HANDLER SETUP upgradeKeeper.SetUpgradeHandler( pleiades.PolarisToPleiadesPlanName, - pleiades.GetPleiadesUpgradeHandler(mm, configurator, crisisKeeper), + pleiades.GetPleiadesUpgradeHandler(mm, configurator, crisisKeeper, gravityKeeper, bech32IbcKeeper), ) } diff --git a/module/contrib/local/setup_node.sh b/module/contrib/local/setup_node.sh index b1bb73e6f..17c85daad 100755 --- a/module/contrib/local/setup_node.sh +++ b/module/contrib/local/setup_node.sh @@ -1,7 +1,10 @@ #!/bin/bash set -eu -gravityd init --chain-id=testing local -gravityd add-genesis-account validator 1000000000stake -gravityd gentx --name validator --amount 1000000000stake -gravityd collect-gentxs +rm -rf $HOME/.gravity + +gravity init --chain-id=testing local +gravity keys add validator --keyring-backend test 2>&1 | tee account.txt +gravity add-genesis-account validator 10000000000000000000stake --keyring-backend test +gravity gentx validator 1000000000stake 0xBEF9Ec1EB861A7c050528B17ce8Ee087941bB1AA oraib1329tg05k3snr66e2r9ytkv6hcjx6fkxc2zqphe --keyring-backend test --chain-id testing +gravity collect-gentxs diff --git a/module/contrib/local/start_node.sh b/module/contrib/local/start_node.sh index 14b0037e9..23da9f1ca 100755 --- a/module/contrib/local/start_node.sh +++ b/module/contrib/local/start_node.sh @@ -1,4 +1,4 @@ #!/bin/bash set -eu -gravityd start --rpc.laddr tcp://0.0.0.0:26657 --trace --log_level="main:info,state:debug,*:error" \ No newline at end of file +gravity start --rpc.laddr tcp://0.0.0.0:26657 \ No newline at end of file diff --git a/module/x/gravity/module.go b/module/x/gravity/module.go index 07d312364..5fb26e9c9 100644 --- a/module/x/gravity/module.go +++ b/module/x/gravity/module.go @@ -149,9 +149,9 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { types.RegisterQueryServer(cfg.QueryServer(), am.keeper) m := keeper.NewMigrator(am.keeper) - if err := cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2); err != nil { - panic(fmt.Sprintf("failed to migrate x/gravity from version 1 to 2: %v", err)) - } + // if err := cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2); err != nil { + // panic(fmt.Sprintf("failed to migrate x/gravity from version 1 to 2: %v", err)) + // } if err := cfg.RegisterMigration(types.ModuleName, 2, m.Migrate2to3); err != nil { panic(fmt.Sprintf("failed to migrate x/gravity from version 2 to 3: %v", err)) }