diff --git a/app/app.go b/app/app.go index 6784fc7..c3e323d 100644 --- a/app/app.go +++ b/app/app.go @@ -46,7 +46,7 @@ import ( "github.com/xpladev/xpla/app/openapiconsole" xplaappparams "github.com/xpladev/xpla/app/params" "github.com/xpladev/xpla/app/upgrades" - v1_5 "github.com/xpladev/xpla/app/upgrades/v1_5" + v1_6 "github.com/xpladev/xpla/app/upgrades/v1_6" "github.com/xpladev/xpla/docs" "github.com/CosmWasm/wasmd/x/wasm" @@ -58,7 +58,7 @@ var ( DefaultNodeHome string Upgrades = []upgrades.Upgrade{ - v1_5.Upgrade, + v1_6.Upgrade, } ) diff --git a/app/upgrades/v1_6/const.go b/app/upgrades/v1_6/const.go new file mode 100644 index 0000000..c0e307c --- /dev/null +++ b/app/upgrades/v1_6/const.go @@ -0,0 +1,25 @@ +package v1_6 + +import ( + store "github.com/cosmos/cosmos-sdk/store/types" + + "github.com/xpladev/xpla/app/upgrades" +) + +const ( + UpgradeName = "v1_6" +) + +var Upgrade = upgrades.Upgrade{ + UpgradeName: UpgradeName, + CreateUpgradeHandler: CreateUpgradeHandler, + StoreUpgrades: store.StoreUpgrades{ + Added: []string{}, + Deleted: []string{}, + }, +} + +const ( + // https://github.com/Arachnid/deterministic-deployment-proxy + thirdwebProxy = "0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222" +) diff --git a/app/upgrades/v1_6/upgrades.go b/app/upgrades/v1_6/upgrades.go new file mode 100644 index 0000000..c80dbdd --- /dev/null +++ b/app/upgrades/v1_6/upgrades.go @@ -0,0 +1,45 @@ +package v1_6 + +import ( + "github.com/cosmos/cosmos-sdk/codec" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + "github.com/ethereum/go-ethereum/common/hexutil" + "github.com/pkg/errors" + + evmtypes "github.com/xpladev/ethermint/x/evm/types" + "github.com/xpladev/xpla/app/keepers" +) + +func CreateUpgradeHandler( + mm *module.Manager, + configurator module.Configurator, + keepers *keepers.AppKeepers, + cdc codec.BinaryCodec, +) upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + data, err := hexutil.Decode(thirdwebProxy) + if err != nil { + return nil, errors.Wrap(err, "failed to decode ethereum tx hex bytes") + } + + msg := &evmtypes.MsgEthereumTx{} + if err := msg.UnmarshalBinary(data); err != nil { + return nil, err + } + + if err := msg.ValidateBasic(); err != nil { + return nil, err + } + + res, err := keepers.EvmKeeper.EthereumTx(ctx, msg) + if err != nil { + return nil, err + } + + print(res.String()) + + return mm.RunMigrations(ctx, configurator, fromVM) + } +}