diff --git a/app/app.go b/app/app.go index ee26173..a085685 100644 --- a/app/app.go +++ b/app/app.go @@ -367,10 +367,16 @@ func NewMinitiaApp( apphook.NewMoveBridgeHook(ac, app.MoveKeeper).Hook, app.MsgServiceRouter(), authorityAddr, + ac, vc, cc, ) + err = app.RegisterExecutorChangePlans() + if err != nil { + panic(err) + } + // get skipUpgradeHeights from the app options skipUpgradeHeights := map[int64]bool{} for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) { diff --git a/app/executor_change.go b/app/executor_change.go new file mode 100644 index 0000000..780378e --- /dev/null +++ b/app/executor_change.go @@ -0,0 +1,21 @@ +package app + +// Executor change plans + +func (app *MinitiaApp) RegisterExecutorChangePlans() error { + // err := app.OPChildKeeper.RegisterExecutorChangePlan( + // 1, + // 361, + // "initvaloper158x0dpu5f4x703fhtseg5kpytsj02hw04qyw0t", + // "init158x0dpu5f4x703fhtseg5kpytsj02hw0p9ahpm", + // "op2", + // "{\"@type\":\"/cosmos.crypto.ed25519.PubKey\",\"key\":\"GTJEksmVK7gkzPXdj+YIJxipfJ+yYUlc6jzIuh9s2t0=\"}", + // "testestestestsetsetestsetest", + // ) + + // if err != nil { + // return err + // } + + return nil +} diff --git a/app/test_helpers.go b/app/test_helpers.go index a5e02fa..0977b69 100644 --- a/app/test_helpers.go +++ b/app/test_helpers.go @@ -125,10 +125,11 @@ func SetupWithGenesisAccounts( // set validators and delegations var opchildGenesis opchildtypes.GenesisState app.AppCodec().MustUnmarshalJSON(genesisState[opchildtypes.ModuleName], &opchildGenesis) + opchildGenesis.Params.Admin = sdk.AccAddress(valSet.Validators[0].Address.Bytes()).String() opchildGenesis.Params.BridgeExecutor = sdk.AccAddress(valSet.Validators[0].Address.Bytes()).String() // set validators and delegations - opchildGenesis = *opchildtypes.NewGenesisState(opchildGenesis.Params, validators) + opchildGenesis = *opchildtypes.NewGenesisState(opchildGenesis.Params, validators, nil) genesisState[opchildtypes.ModuleName] = app.AppCodec().MustMarshalJSON(&opchildGenesis) // update total supply diff --git a/cmd/minitiad/genvalidators.go b/cmd/minitiad/genvalidators.go deleted file mode 100644 index df76e1c..0000000 --- a/cmd/minitiad/genvalidators.go +++ /dev/null @@ -1,120 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - - "github.com/pkg/errors" - "github.com/spf13/cobra" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/server" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - "github.com/cosmos/cosmos-sdk/version" - "github.com/cosmos/cosmos-sdk/x/genutil" - genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" - - "github.com/initia-labs/OPinit/x/opchild/client/cli" - opchildtypes "github.com/initia-labs/OPinit/x/opchild/types" -) - -// AddGenesisValidatorCmd builds the application's gentx command. -func AddGenesisValidatorCmd(mbm module.BasicManager, txEncCfg client.TxEncodingConfig, genBalIterator genutiltypes.GenesisBalancesIterator, defaultNodeHome string) *cobra.Command { - cmd := &cobra.Command{ - Use: "add-genesis-validator [key_name]", - Short: "Add a genesis validator", - Args: cobra.ExactArgs(1), - Long: fmt.Sprintf(`Add a genesis validator with the key in the Keyring referenced by a given name. - A Bech32 consensus pubkey may optionally be provided. - -Example: -$ %s add-genesis-validator my-key-name --home=/path/to/home/dir --keyring-backend=os --chain-id=test-chain-1 -`, version.AppName, - ), - RunE: func(cmd *cobra.Command, args []string) error { - serverCtx := server.GetServerContextFromCmd(cmd) - clientCtx, err := client.GetClientTxContext(cmd) - if err != nil { - return err - } - cdc := clientCtx.Codec - - config := serverCtx.Config - config.SetRoot(clientCtx.HomeDir) - - _ /*nodeId*/, valPubKey, err := genutil.InitializeNodeValidatorFiles(serverCtx.Config) - if err != nil { - return errors.Wrap(err, "failed to initialize node validator files") - } - - // read --pubkey, if empty take it from priv_validator.json - if pkStr, _ := cmd.Flags().GetString(cli.FlagPubKey); pkStr != "" { - if err := clientCtx.Codec.UnmarshalInterfaceJSON([]byte(pkStr), &valPubKey); err != nil { - return errors.Wrap(err, "failed to unmarshal validator public key") - } - } - - name := args[0] - key, err := clientCtx.Keyring.Key(name) - if err != nil { - return errors.Wrapf(err, "failed to fetch '%s' from the keyring", name) - } - - moniker := config.Moniker - if m, _ := cmd.Flags().GetString(cli.FlagMoniker); m != "" { - moniker = m - } - - addr, err := key.GetAddress() - if err != nil { - return err - } - valAddr := sdk.ValAddress(addr) - - validator, err := opchildtypes.NewValidator(valAddr, valPubKey, moniker) - if err != nil { - return err - } - - genFile := config.GenesisFile() - appState, genDoc, err := genutiltypes.GenesisStateFromGenFile(genFile) - if err != nil { - return fmt.Errorf("failed to unmarshal genesis state: %w", err) - } - - opchildState := opchildtypes.GetGenesisStateFromAppState(cdc, appState) - opchildState.Validators = append((*opchildState).Validators, validator) - if opchildState.Params.BridgeExecutor == "" { - opchildState.Params.BridgeExecutor = addr.String() - } - - opchildGenStateBz, err := cdc.MarshalJSON(opchildState) - if err != nil { - return fmt.Errorf("failed to marshal opchild genesis state: %w", err) - } - appState[opchildtypes.ModuleName] = opchildGenStateBz - - if err = mbm.ValidateGenesis(cdc, txEncCfg, appState); err != nil { - return errors.Wrap(err, "failed to validate genesis state") - } - appStateJSON, err := json.Marshal(appState) - if err != nil { - return fmt.Errorf("failed to marshal application genesis state: %w", err) - } - - genDoc.AppState = appStateJSON - if err = genutil.ExportGenesisFile(genDoc, config.GenesisFile()); err != nil { - return errors.Wrap(err, "Failed to export genesis file") - } - - return nil - }, - } - - cmd.Flags().String(flags.FlagHome, defaultNodeHome, "The application home directory") - flags.AddTxFlagsToCmd(cmd) - - return cmd -} diff --git a/cmd/minitiad/root.go b/cmd/minitiad/root.go index 0ad9cff..dd8af61 100644 --- a/cmd/minitiad/root.go +++ b/cmd/minitiad/root.go @@ -37,6 +37,8 @@ import ( "github.com/initia-labs/initia/app/params" minitiaapp "github.com/initia-labs/minimove/app" + + opchildcli "github.com/initia-labs/OPinit/x/opchild/client/cli" ) // NewRootCmd creates a new root command for initiad. It is called once in the @@ -181,7 +183,7 @@ func genesisCommand(encodingConfig params.EncodingConfig, basicManager module.Ba cmd.AddCommand( genutilcli.AddGenesisAccountCmd(minitiaapp.DefaultNodeHome, ac), - AddGenesisValidatorCmd(basicManager, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, minitiaapp.DefaultNodeHome), + opchildcli.AddGenesisValidatorCmd(basicManager, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, minitiaapp.DefaultNodeHome), genutilcli.ValidateGenesisCmd(basicManager), genutilcli.GenTxCmd(basicManager, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, minitiaapp.DefaultNodeHome, ac), ) diff --git a/go.mod b/go.mod index 90ffcbf..0a93d61 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/cosmos/ibc-go/v8 v8.0.0 github.com/golang/mock v1.6.0 github.com/gorilla/mux v1.8.1 - github.com/initia-labs/OPinit v0.2.2 + github.com/initia-labs/OPinit v0.2.3-0.20240409080116-b1905ecee383 github.com/initia-labs/initia v0.2.3 // we also need to update `LIBMOVEVM_VERSION` of images/private/Dockerfile#5 github.com/initia-labs/movevm v0.2.2 @@ -133,6 +133,7 @@ require ( github.com/iancoleman/strcase v0.3.0 // indirect github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/initia-labs/OPinit/api v0.0.0-20240409080116-b1905ecee383 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/klauspost/compress v1.17.7 // indirect diff --git a/go.sum b/go.sum index 23dbd17..434b97b 100644 --- a/go.sum +++ b/go.sum @@ -722,8 +722,10 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/initia-labs/OPinit v0.2.2 h1:lcBQCQcn7zgkpQaKqIfNLaj15Dy6qSDYv62/XJ1iISE= -github.com/initia-labs/OPinit v0.2.2/go.mod h1:1dn1iseG1S4wfXUtnb4mUkraJdL9/lWBQPpI+HbVzL0= +github.com/initia-labs/OPinit v0.2.3-0.20240409080116-b1905ecee383 h1:cQFjJi7tzyEiypbwNbPooiZhK4IFc1oJHOUL77nhouY= +github.com/initia-labs/OPinit v0.2.3-0.20240409080116-b1905ecee383/go.mod h1:1dn1iseG1S4wfXUtnb4mUkraJdL9/lWBQPpI+HbVzL0= +github.com/initia-labs/OPinit/api v0.0.0-20240409080116-b1905ecee383 h1:e+C945Wl9Pi24OHUjZjuq8tflzYaTh2xydgTD0BdVKo= +github.com/initia-labs/OPinit/api v0.0.0-20240409080116-b1905ecee383/go.mod h1:ASCaZChzhQenOxDLIBicEgi5drhMV3YjPxzV29nGvwM= github.com/initia-labs/cometbft v0.0.0-20240104081544-34081fc84daf h1:7k3u0huB7OpiDfQKnfcwKUvByl7HyYs3itgROO/YpFg= github.com/initia-labs/cometbft v0.0.0-20240104081544-34081fc84daf/go.mod h1:PIi48BpzwlHqtV3mzwPyQgOyOnU94BNBimLS2ebBHOg= github.com/initia-labs/cosmos-sdk v0.0.0-20240313050640-ff14560eeb21 h1:AwqnO5IR+3LWzjqR33MzOkce38ExWLtQwlqrLZVrMyw=