From eb6e32ad5b6ed6ce667718b4b814d211245552db Mon Sep 17 00:00:00 2001 From: Roshan <48975233+pythonberg1997@users.noreply.github.com> Date: Fri, 20 Sep 2024 20:12:16 +0800 Subject: [PATCH] feat: introduce the Altai upgrade (#645) * feat: introduce the Altai upgrade * update dependency * update dependency * fix: update dep * doc: update change log * dep: update dep * dep: update dep --------- Co-authored-by: unclezoro <296179868@qq.com> --- CHANGELOG.md | 5 +++++ app/ante/utils_test.go | 11 ++++++++++- app/upgrade.go | 17 +++++++++++++++++ go.mod | 2 +- go.sum | 4 ++-- x/bridge/types/message_transfer_out.go | 2 +- x/challenge/keeper/bls_signed_msg.go | 8 +++----- 7 files changed, 39 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fa04dc72..54b46a0a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## V1.9.1 +This release introduces the Altai upgrade. + +* [#645] https://github.com/bnb-chain/greenfield/pull/645 feat: fix the EIP712 signing issue and introduce a new hardfork Altai + ## V1.9.0 This release introduces the Mongolian upgrade. diff --git a/app/ante/utils_test.go b/app/ante/utils_test.go index 7c7632432..861e8a135 100644 --- a/app/ante/utils_test.go +++ b/app/ante/utils_test.go @@ -27,7 +27,9 @@ import ( govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + "github.com/ethereum/go-ethereum/common/math" "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/signer/core/apitypes" "github.com/stretchr/testify/suite" "github.com/bnb-chain/greenfield/app" @@ -251,7 +253,14 @@ func (suite *AnteTestSuite) CreateTestEIP712CosmosTxBuilder( msgTypes, signDoc, err := tx.GetMsgTypes(signerData, txBuilder.GetTx(), big.NewInt(9000)) suite.Require().NoError(err) - typedData, err := tx.WrapTxToTypedData(9000, signDoc, msgTypes) + typedDataDomain := apitypes.TypedDataDomain{ + Name: "Greenfield Tx", + Version: "1.0.0", + ChainId: math.NewHexOrDecimal256(int64(9000)), + VerifyingContract: "0x71e835aff094655dEF897fbc85534186DbeaB75d", + Salt: "0", + } + typedData, err := tx.WrapTxToTypedData(signDoc, msgTypes, typedDataDomain) suite.Require().NoError(err) typedDataJson, _ := json.MarshalIndent(typedData, "", " ") diff --git a/app/upgrade.go b/app/upgrade.go index ba6a3f22d..92b78f462 100644 --- a/app/upgrade.go +++ b/app/upgrade.go @@ -36,6 +36,7 @@ func (app *App) RegisterUpgradeHandlers(chainID string, serverCfg *serverconfig. app.registerErdosUpgradeHandler() app.registerVeldUpgradeHandler() app.registerMongolianUpgradeHandler() + app.registerAltaiUpgradeHandler() // app.register...() // ... return nil @@ -296,3 +297,19 @@ func (app *App) registerMongolianUpgradeHandler() { return nil }) } + +func (app *App) registerAltaiUpgradeHandler() { + // Register the upgrade handler + app.UpgradeKeeper.SetUpgradeHandler(upgradetypes.Altai, + func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + app.Logger().Info("upgrade to ", plan.Name) + return app.mm.RunMigrations(ctx, app.configurator, fromVM) + }) + + // Register the upgrade initializer + app.UpgradeKeeper.SetUpgradeInitializer(upgradetypes.Altai, + func() error { + app.Logger().Info("Init Altai upgrade") + return nil + }) +} diff --git a/go.mod b/go.mod index 9084f0bd4..f41d2fc61 100644 --- a/go.mod +++ b/go.mod @@ -176,7 +176,7 @@ replace ( github.com/cometbft/cometbft => github.com/bnb-chain/greenfield-cometbft v1.3.0 github.com/cometbft/cometbft-db => github.com/bnb-chain/greenfield-cometbft-db v0.8.1-alpha.1 github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 - github.com/cosmos/cosmos-sdk => github.com/bnb-chain/greenfield-cosmos-sdk v1.9.0 + github.com/cosmos/cosmos-sdk => github.com/bnb-chain/greenfield-cosmos-sdk v1.9.2 github.com/cosmos/iavl => github.com/bnb-chain/greenfield-iavl v0.20.1 github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 github.com/wercker/journalhook => github.com/wercker/journalhook v0.0.0-20230927020745-64542ffa4117 diff --git a/go.sum b/go.sum index 926e2dcc0..d34773df7 100644 --- a/go.sum +++ b/go.sum @@ -163,8 +163,8 @@ github.com/bnb-chain/greenfield-cometbft v1.3.0 h1:v3nZ16ledTZGF5Csys7fTQGZcEV78 github.com/bnb-chain/greenfield-cometbft v1.3.0/go.mod h1:0D+VPivZTeBldjtGGi9LKbBnKEO/RtMRJikie92LkYI= github.com/bnb-chain/greenfield-cometbft-db v0.8.1-alpha.1 h1:XcWulGacHVRiSCx90Q8Y//ajOrLNBQWR/KDB89dy3cU= github.com/bnb-chain/greenfield-cometbft-db v0.8.1-alpha.1/go.mod h1:ey1CiK4bYo1RBNJLRiVbYr5CMdSxci9S/AZRINLtppI= -github.com/bnb-chain/greenfield-cosmos-sdk v1.9.0 h1:gYelZIgkLe0TEQeBSjuVAyzBvKKz5uAe1A1zhvF33Ws= -github.com/bnb-chain/greenfield-cosmos-sdk v1.9.0/go.mod h1:2bwmwdXYBISnQoMwgAcZTVGt21lMsHZSeeeMByTvDlQ= +github.com/bnb-chain/greenfield-cosmos-sdk v1.9.2 h1:hqZ4v4M3nkBNs1dXbAQkMBrNQuP9maQOSU+rBwzAemQ= +github.com/bnb-chain/greenfield-cosmos-sdk v1.9.2/go.mod h1:2bwmwdXYBISnQoMwgAcZTVGt21lMsHZSeeeMByTvDlQ= github.com/bnb-chain/greenfield-cosmos-sdk/api v0.0.0-20230816082903-b48770f5e210 h1:GHPbV2bC+gmuO6/sG0Tm8oGal3KKSRlyE+zPscDjlA8= github.com/bnb-chain/greenfield-cosmos-sdk/api v0.0.0-20230816082903-b48770f5e210/go.mod h1:vhsZxXE9tYJeYB5JR4hPhd6Pc/uPf7j1T8IJ7p9FdeM= github.com/bnb-chain/greenfield-cosmos-sdk/math v0.0.0-20230816082903-b48770f5e210 h1:FLVOn4+OVbsKi2+YJX5kmD27/4dRu4FW7xCXFhzDO5s= diff --git a/x/bridge/types/message_transfer_out.go b/x/bridge/types/message_transfer_out.go index 23152db10..95e47838a 100644 --- a/x/bridge/types/message_transfer_out.go +++ b/x/bridge/types/message_transfer_out.go @@ -55,7 +55,7 @@ func (msg *MsgTransferOut) ValidateBasic() error { } if !msg.Amount.IsValid() { - return errors.Wrapf(sdkerrors.ErrInvalidCoins, msg.Amount.String()) + return errors.Wrapf(sdkerrors.ErrInvalidCoins, "%v%s", msg.Amount.Amount, msg.Amount.Denom) } if !msg.Amount.IsPositive() { diff --git a/x/challenge/keeper/bls_signed_msg.go b/x/challenge/keeper/bls_signed_msg.go index 782321e74..6f41adb94 100644 --- a/x/challenge/keeper/bls_signed_msg.go +++ b/x/challenge/keeper/bls_signed_msg.go @@ -1,8 +1,6 @@ package keeper import ( - "fmt" - "cosmossdk.io/errors" "github.com/bits-and-blooms/bitset" sdk "github.com/cosmos/cosmos-sdk/types" @@ -41,18 +39,18 @@ func (k Keeper) verifySignature(ctx sdk.Context, signedMsg BlsSignedMsg, validat signedChallengers = append(signedChallengers, val.ChallengerAddress) votePubKey, err := bls.PublicKeyFromBytes(val.BlsKey) if err != nil { - return nil, errors.Wrapf(types.ErrInvalidBlsPubKey, fmt.Sprintf("BLS public key converts failed: %v", err)) + return nil, errors.Wrapf(types.ErrInvalidBlsPubKey, "BLS public key converts failed: %v", err) } votedPubKeys = append(votedPubKeys, votePubKey) } if len(votedPubKeys) <= len(validators)*2/3 { - return nil, errors.Wrapf(types.ErrNotEnoughVotes, fmt.Sprintf("Not enough validators voted, need: %d, voted: %d", len(validators)*2/3, len(votedPubKeys))) + return nil, errors.Wrapf(types.ErrNotEnoughVotes, "Not enough validators voted, need: %d, voted: %d", len(validators)*2/3, len(votedPubKeys)) } aggSig, err := bls.SignatureFromBytes(signedMsg.GetVoteAggSignature()) if err != nil { - return nil, errors.Wrapf(types.ErrInvalidVoteAggSignature, fmt.Sprintf("BLS signature converts failed: %v", err)) + return nil, errors.Wrapf(types.ErrInvalidVoteAggSignature, "BLS signature converts failed: %v", err) } if !aggSig.FastAggregateVerify(votedPubKeys, signedMsg.GetBlsSignBytes(ctx.ChainID())) {