feat: store migration setup (#794)

* feat: store migration setup

* comment

* changelog
This commit is contained in:
Federico Kunze Küllmer 2021-11-29 16:46:20 +01:00 committed by GitHub
parent bfe059e43e
commit 841c93cd65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 34 additions and 4 deletions

View File

@ -39,11 +39,13 @@ Ref: https://keepachangelog.com/en/1.0.0/
## Improvements ## Improvements
* (app) [tharsis#794](https://github.com/tharsis/ethermint/pull/794) Setup in-place store migrators.
* (ci) [tharsis#784](https://github.com/tharsis/ethermint/pull/784) Enable automatic backport of PRs. * (ci) [tharsis#784](https://github.com/tharsis/ethermint/pull/784) Enable automatic backport of PRs.
* (rpc) [tharsis#786](https://github.com/tharsis/ethermint/pull/786) Improve error message of `SendTransaction`/`SendRawTransaction` JSON-RPC APIs. * (rpc) [tharsis#786](https://github.com/tharsis/ethermint/pull/786) Improve error message of `SendTransaction`/`SendRawTransaction` JSON-RPC APIs.
### Bug Fixes ### Bug Fixes
* (evm) [tharsis#794](https://github.com/tharsis/ethermint/pull/794) Register EVM gRPC `Msg` server.
* (feemarket) [tharsis#770](https://github.com/tharsis/ethermint/pull/770) Enable fee market (EIP1559) by default. * (feemarket) [tharsis#770](https://github.com/tharsis/ethermint/pull/770) Enable fee market (EIP1559) by default.
* (rpc) [tharsis#769](https://github.com/tharsis/ethermint/pull/769) Fix default Ethereum signer for JSON-RPC. * (rpc) [tharsis#769](https://github.com/tharsis/ethermint/pull/769) Fix default Ethereum signer for JSON-RPC.
* (rpc) [tharsis#781](https://github.com/tharsis/ethermint/pull/781) Fix get block invalid transactions filter. * (rpc) [tharsis#781](https://github.com/tharsis/ethermint/pull/781) Fix get block invalid transactions filter.

View File

@ -99,7 +99,7 @@ func NewRootCmd() (*cobra.Command, params.EncodingConfig) {
genutilcli.InitCmd(app.ModuleBasics, app.DefaultNodeHome), genutilcli.InitCmd(app.ModuleBasics, app.DefaultNodeHome),
), ),
genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome), genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome),
genutilcli.MigrateGenesisCmd(), genutilcli.MigrateGenesisCmd(), // TODO: shouldn't this include the local app version instead of the SDK?
genutilcli.GenTxCmd(app.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome), genutilcli.GenTxCmd(app.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome),
genutilcli.ValidateGenesisCmd(app.ModuleBasics), genutilcli.ValidateGenesisCmd(app.ModuleBasics),
AddGenesisAccountCmd(app.DefaultNodeHome), AddGenesisAccountCmd(app.DefaultNodeHome),

View File

@ -0,0 +1,13 @@
package keeper
// Migrator is a struct for handling in-place store migrations.
type Migrator struct {
keeper Keeper
}
// NewMigrator returns a new Migrator.
func NewMigrator(keeper Keeper) Migrator {
return Migrator{
keeper: keeper,
}
}

View File

@ -115,15 +115,15 @@ func (AppModule) Name() string {
// RegisterInvariants interface for registering invariants. Performs a no-op // RegisterInvariants interface for registering invariants. Performs a no-op
// as the evm module doesn't expose invariants. // as the evm module doesn't expose invariants.
func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) { func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {
// Invariats lead to performance degradation
//
// keeper.RegisterInvariants(ir, *am.keeper)
} }
// RegisterQueryService registers a GRPC query service to respond to the // RegisterQueryService registers a GRPC query service to respond to the
// module-specific GRPC queries. // module-specific GRPC queries.
func (am AppModule) RegisterServices(cfg module.Configurator) { func (am AppModule) RegisterServices(cfg module.Configurator) {
types.RegisterMsgServer(cfg.MsgServer(), am.keeper)
types.RegisterQueryServer(cfg.QueryServer(), am.keeper) types.RegisterQueryServer(cfg.QueryServer(), am.keeper)
_ = keeper.NewMigrator(*am.keeper)
} }
// Route returns the message routing key for the evm module. // Route returns the message routing key for the evm module.

View File

@ -0,0 +1,13 @@
package keeper
// Migrator is a struct for handling in-place store migrations.
type Migrator struct {
keeper Keeper
}
// NewMigrator returns a new Migrator.
func NewMigrator(keeper Keeper) Migrator {
return Migrator{
keeper: keeper,
}
}

View File

@ -116,6 +116,8 @@ func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {}
// module-specific GRPC queries. // module-specific GRPC queries.
func (am AppModule) RegisterServices(cfg module.Configurator) { func (am AppModule) RegisterServices(cfg module.Configurator) {
types.RegisterQueryServer(cfg.QueryServer(), am.keeper) types.RegisterQueryServer(cfg.QueryServer(), am.keeper)
_ = keeper.NewMigrator(am.keeper)
} }
// Route returns the message routing key for the fee market module. // Route returns the message routing key for the fee market module.