refactor: move UpgradeModule interface to appmodule and fix mocks (#17383)
Co-authored-by: Marko <marko@baricevic.me>
This commit is contained in:
parent
208219a428
commit
e3a3df2a82
92
client/docs/swagger-ui/swagger.yaml
vendored
92
client/docs/swagger-ui/swagger.yaml
vendored
@ -17657,13 +17657,13 @@ paths:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of
|
||||
the delegator.
|
||||
delegator_address is the encoded address of the
|
||||
delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of
|
||||
the validator.
|
||||
validator_address is the encoded address of the
|
||||
validator.
|
||||
shares:
|
||||
type: string
|
||||
description: shares define the delegation shares received.
|
||||
@ -18450,12 +18450,12 @@ paths:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of the
|
||||
delegator_address is the encoded address of the
|
||||
delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of the
|
||||
validator_address is the encoded address of the
|
||||
validator.
|
||||
entries:
|
||||
type: array
|
||||
@ -22260,13 +22260,13 @@ paths:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of
|
||||
the delegator.
|
||||
delegator_address is the encoded address of the
|
||||
delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of
|
||||
the validator.
|
||||
validator_address is the encoded address of the
|
||||
validator.
|
||||
shares:
|
||||
type: string
|
||||
description: shares define the delegation shares received.
|
||||
@ -22598,12 +22598,12 @@ paths:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of the
|
||||
delegator_address is the encoded address of the
|
||||
delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of the
|
||||
validator_address is the encoded address of the
|
||||
validator.
|
||||
shares:
|
||||
type: string
|
||||
@ -22864,14 +22864,10 @@ paths:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of the
|
||||
delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of the
|
||||
validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
entries:
|
||||
type: array
|
||||
items:
|
||||
@ -23153,12 +23149,12 @@ paths:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of the
|
||||
delegator_address is the encoded address of the
|
||||
delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of the
|
||||
validator_address is the encoded address of the
|
||||
validator.
|
||||
entries:
|
||||
type: array
|
||||
@ -51501,10 +51497,10 @@ definitions:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: delegator_address is the bech32-encoded address of the delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: validator_address is the bech32-encoded address of the validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
shares:
|
||||
type: string
|
||||
description: shares define the delegation shares received.
|
||||
@ -51520,10 +51516,10 @@ definitions:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: delegator_address is the bech32-encoded address of the delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: validator_address is the bech32-encoded address of the validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
shares:
|
||||
type: string
|
||||
description: shares define the delegation shares received.
|
||||
@ -52022,14 +52018,10 @@ definitions:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of the
|
||||
delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of the
|
||||
validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
shares:
|
||||
type: string
|
||||
description: shares define the delegation shares received.
|
||||
@ -52078,14 +52070,10 @@ definitions:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of the
|
||||
delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of the
|
||||
validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
shares:
|
||||
type: string
|
||||
description: shares define the delegation shares received.
|
||||
@ -52151,14 +52139,10 @@ definitions:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of the
|
||||
delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of the
|
||||
validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
entries:
|
||||
type: array
|
||||
items:
|
||||
@ -53500,10 +53484,10 @@ definitions:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: delegator_address is the bech32-encoded address of the delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: validator_address is the bech32-encoded address of the validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
entries:
|
||||
type: array
|
||||
items:
|
||||
@ -53560,14 +53544,10 @@ definitions:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of the
|
||||
delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of the
|
||||
validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
shares:
|
||||
type: string
|
||||
description: shares define the delegation shares received.
|
||||
@ -53943,14 +53923,10 @@ definitions:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: >-
|
||||
delegator_address is the bech32-encoded address of the
|
||||
delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: >-
|
||||
validator_address is the bech32-encoded address of the
|
||||
validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
entries:
|
||||
type: array
|
||||
items:
|
||||
@ -54627,10 +54603,10 @@ definitions:
|
||||
properties:
|
||||
delegator_address:
|
||||
type: string
|
||||
description: delegator_address is the bech32-encoded address of the delegator.
|
||||
description: delegator_address is the encoded address of the delegator.
|
||||
validator_address:
|
||||
type: string
|
||||
description: validator_address is the bech32-encoded address of the validator.
|
||||
description: validator_address is the encoded address of the validator.
|
||||
entries:
|
||||
type: array
|
||||
items:
|
||||
|
||||
@ -36,6 +36,10 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [v0.10.0](https://github.com/cosmos/cosmos-sdk/releases/tag/core%2Fv0.10.0)
|
||||
|
||||
* [#17383](https://github.com/cosmos/cosmos-sdk/pull/17383) Add `appmoduke.UpgradeModule` interface.
|
||||
|
||||
## [v0.9.0](https://github.com/cosmos/cosmos-sdk/releases/tag/core%2Fv0.9.0)
|
||||
|
||||
* [#16739](https://github.com/cosmos/cosmos-sdk/pull/16739) Add `AppHash` to header.Info.
|
||||
|
||||
@ -71,3 +71,10 @@ type HasEndBlocker interface {
|
||||
// a block.
|
||||
EndBlock(context.Context) error
|
||||
}
|
||||
|
||||
// UpgradeModule is the extension interface that upgrade module should implement to differentiate
|
||||
// it from other modules, migration handler need ensure the upgrade module's migration is executed
|
||||
// before the rest of the modules.
|
||||
type UpgradeModule interface {
|
||||
IsUpgradeModule()
|
||||
}
|
||||
|
||||
@ -17,26 +17,35 @@ Cosmos SDK modules need to implement the [`AppModule` interfaces](#application-m
|
||||
## Application Module Interfaces
|
||||
|
||||
Application module interfaces exist to facilitate the composition of modules together to form a functional Cosmos SDK application.
|
||||
|
||||
:::note
|
||||
|
||||
It is recommended to implement interfaces from the [Core API](https://docs.cosmos.network/main/architecture/adr-063-core-module-api) `appmodule` package. This makes modules less dependent on the SDK.
|
||||
For legacy reason modules can still implement interfaces from the SDK `module` package.
|
||||
|
||||
:::
|
||||
|
||||
There are 4 main application module interfaces:
|
||||
|
||||
* [`AppModuleBasic`](#appmodulebasic) for independent module functionalities.
|
||||
* [`AppModule`](#appmodule) for inter-dependent module functionalities (except genesis-related functionalities).
|
||||
* [`AppModuleGenesis`](#appmodulegenesis) for inter-dependent genesis-related module functionalities.
|
||||
* `GenesisOnlyAppModule`: Defines an `AppModule` that only has import/export functionality
|
||||
* [`appmodule.AppModule` / `module.AppModule`](#appmodule) for inter-dependent module functionalities (except genesis-related functionalities).
|
||||
* (legacy) [`module.AppModuleBasic`](#appmodulebasic) for independent module functionalities. New modules can use `module.CoreAppModuleBasicAdaptor` instead.
|
||||
* (legacy) [`module.AppModuleGenesis`](#appmodulegenesis) for inter-dependent genesis-related module functionalities.
|
||||
* (legacy) `module.GenesisOnlyAppModule`: Defines an `AppModule` that only has import/export functionality
|
||||
|
||||
The above interfaces are mostly embedding smaller interfaces (extension interfaces), that defines specific functionalities:
|
||||
|
||||
* `HasName`: Allows the module to provide its own name for legacy purposes.
|
||||
* [`HasGenesisBasics`](#hasgenesisbasics): The legacy interface for stateless genesis methods.
|
||||
* [`HasGenesis`](#hasgenesis): The extension interface for stateful genesis methods.
|
||||
* [`HasInvariants`](#hasinvariants): The extension interface for registering invariants.
|
||||
* [`HasServices`](#hasservices): The extension interface for modules to register services.
|
||||
* [`HasConsensusVersion`](#hasconsensusversion): The extension interface for declaring a module consensus version.
|
||||
* [`HasBeginBlocker`](#hasbeginblocker): The extension interface that contains information about the `AppModule` and `BeginBlock`.
|
||||
* [`HasEndBlocker`](#hasendblocker): The extension interface that contains information about the `AppModule` and `EndBlock`.
|
||||
* [`HasABCIEndblock`](#hasabciendblock): The extension interface that contains information about the `AppModule`, `EndBlock` and returns an updated validator set.
|
||||
* [`HasPrecommit`](#hasprecommit): The extension interface that contains information about the `AppModule` and `Precommit`.
|
||||
* [`HasPrepareCheckState`](#haspreparecheckstate): The extension interface that contains information about the `AppModule` and `PrepareCheckState`.
|
||||
* (legacy) `module.HasName`: Allows the module to provide its own name for legacy purposes.
|
||||
* (legacy) [`module.HasGenesisBasics`](#hasgenesisbasics): The legacy interface for stateless genesis methods.
|
||||
* [`appmodule.HasGenesis` / `module.HasGenesis`](#hasgenesis): The extension interface for stateful genesis methods.
|
||||
* [`appmodule.HasBeginBlocker`](#hasbeginblocker): The extension interface that contains information about the `AppModule` and `BeginBlock`.
|
||||
* [`appmodule.HasEndBlocker`](#hasendblocker): The extension interface that contains information about the `AppModule` and `EndBlock`.
|
||||
* [`appmodule.HasPrecommit`](#hasprecommit): The extension interface that contains information about the `AppModule` and `Precommit`.
|
||||
* [`appmodule.HasPrepareCheckState`](#haspreparecheckstate): The extension interface that contains information about the `AppModule` and `PrepareCheckState`.
|
||||
* [`appmodule.UpgradeModule`]: The extension interface that signify if the `AppModule` if the module is an upgrade module.
|
||||
* [`appmodule.HasService` / `module.HasServices`](#hasservices): The extension interface for modules to register services.
|
||||
* [`module.HasABCIEndblock`](#hasabciendblock): The extension interface that contains information about the `AppModule`, `EndBlock` and returns an updated validator set.
|
||||
* (legacy) [`module.HasInvariants`](#hasinvariants): The extension interface for registering invariants.
|
||||
* (legacy) [`module.HasConsensusVersion`](#hasconsensusversion): The extension interface for declaring a module consensus version.
|
||||
|
||||
The `AppModuleBasic` interface exists to define independent methods of the module, i.e. those that do not depend on other modules in the application. This allows for the construction of the basic application structure early in the application definition, generally in the `init()` function of the [main application file](../basics/00-app-anatomy.md#core-application-file).
|
||||
|
||||
@ -46,6 +55,10 @@ The usage of extension interfaces allows modules to define only the functionalit
|
||||
|
||||
### `AppModuleBasic`
|
||||
|
||||
:::note
|
||||
Use `module.CoreAppModuleBasicAdaptor` instead for creating an `AppModuleBasic` from an `appmodule.AppModule`.
|
||||
:::
|
||||
|
||||
The `AppModuleBasic` interface defines the independent methods modules need to implement.
|
||||
|
||||
```go reference
|
||||
@ -70,6 +83,10 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go
|
||||
|
||||
### `HasGenesisBasics`
|
||||
|
||||
:::note
|
||||
Use `appmodule.HasGenesis` instead.
|
||||
:::
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go#L76-L79
|
||||
```
|
||||
@ -81,6 +98,10 @@ Let us go through the methods:
|
||||
|
||||
### `AppModuleGenesis`
|
||||
|
||||
:::note
|
||||
Use `appmodule.HasGenesis` instead.
|
||||
:::
|
||||
|
||||
The `AppModuleGenesis` interface is a simple embedding of the `AppModuleBasic` and `HasGenesis` interfaces.
|
||||
|
||||
```go reference
|
||||
@ -105,17 +126,24 @@ Let us go through the two added methods:
|
||||
### `AppModule`
|
||||
|
||||
The `AppModule` interface defines a module. Modules can declare their functionalities by implementing extensions interfaces.
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go#L197-L99
|
||||
```
|
||||
|
||||
`AppModule`s are managed by the [module manager](#manager), which checks which extension interfaces are implemented by the module.
|
||||
|
||||
#### `appmodule.AppModule`
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/6afece6/core/appmodule/module.go#L11-L20
|
||||
```
|
||||
|
||||
#### `module.AppModule`
|
||||
|
||||
:::note
|
||||
Previously the `AppModule` interface was containing all the methods that are defined in the extensions interfaces. This was leading to much boilerplate for modules that did not need all the functionalities.
|
||||
Previously the `module.AppModule` interface was containing all the methods that are defined in the extensions interfaces. This was leading to much boilerplate for modules that did not need all the functionalities.
|
||||
:::
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go#L195-L199
|
||||
```
|
||||
|
||||
### `HasInvariants`
|
||||
|
||||
This interface defines one method. It allows to checks if a module can register invariants.
|
||||
@ -130,6 +158,14 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go
|
||||
|
||||
This interface defines one method. It allows to checks if a module can register invariants.
|
||||
|
||||
#### `appmodule.HasService`
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/6afece6/core/appmodule/module.go#L22-L40
|
||||
```
|
||||
|
||||
#### `module.HasServices`
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go#L208-L211
|
||||
```
|
||||
@ -148,7 +184,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go
|
||||
|
||||
### `HasBeginBlocker`
|
||||
|
||||
The `HasBeginBlocker` is an extension interface from `AppModule`. All modules that have an `BeginBlock` method implement this interface.
|
||||
The `HasBeginBlocker` is an extension interface from `appmodule.AppModule`. All modules that have an `BeginBlock` method implement this interface.
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/core/appmodule/module.go#L56-L63
|
||||
@ -158,7 +194,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/core/appmodule/module.
|
||||
|
||||
### `HasEndBlocker`
|
||||
|
||||
The `HasEndBlocker` is an extension interface from `AppModule`. All modules that have an `EndBlock` method implement this interface. If a module need to return validator set updates (staking), they can use `HasABCIEndblock`
|
||||
The `HasEndBlocker` is an extension interface from `appmodule.AppModule`. All modules that have an `EndBlock` method implement this interface. If a module need to return validator set updates (staking), they can use `HasABCIEndblock`
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/core/appmodule/module.go#L66-L72
|
||||
@ -168,7 +204,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/core/appmodule/module.
|
||||
|
||||
### `HasABCIEndblock`
|
||||
|
||||
The `HasABCIEndblock` is an extension interface from `AppModule`. All modules that have an `EndBlock` which return validator set updates implement this interface.
|
||||
The `HasABCIEndblock` is an extension interface from `module.AppModule`. All modules that have an `EndBlock` which return validator set updates implement this interface.
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go#L222-L225
|
||||
@ -178,7 +214,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go
|
||||
|
||||
### `HasPrecommit`
|
||||
|
||||
`HasPrecommit` is an extension interface from `AppModule`. All modules that have a `Precommit` method implement this interface.
|
||||
`HasPrecommit` is an extension interface from `appmodule.AppModule`. All modules that have a `Precommit` method implement this interface.
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/core/appmodule/module.go#L49-L52
|
||||
@ -188,7 +224,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/core/appmodule/module.
|
||||
|
||||
### `HasPrepareCheckState`
|
||||
|
||||
`HasPrepareCheckState` is an extension interface from `AppModule`. All modules that have a `PrepareCheckState` method implement this interface.
|
||||
`HasPrepareCheckState` is an extension interface from `appmodule.AppModule`. All modules that have a `PrepareCheckState` method implement this interface.
|
||||
|
||||
```go reference
|
||||
https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/core/appmodule/module.go#L49-L52
|
||||
@ -233,6 +269,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/types/module/module.go
|
||||
It implements the following methods:
|
||||
|
||||
* `NewBasicManager(modules ...AppModuleBasic)`: Constructor function. It takes a list of the application's `AppModuleBasic` and builds a new `BasicManager`. This function is generally called in the `init()` function of [`app.go`](../basics/00-app-anatomy.md#core-application-file) to quickly initialize the independent elements of the application's modules (click [here](https://github.com/cosmos/gaia/blob/main/app/app.go#L59-L74) to see an example).
|
||||
* `NewBasicManagerFromManager(manager *Manager, customModuleBasics map[string]AppModuleBasic)`: Contructor function. It creates a new `BasicManager` from a `Manager`. The `BasicManager` will contain all `AppModuleBasic` from the `AppModule` manager using `CoreAppModuleBasicAdaptor` whenever possible. Module's `AppModuleBasic` can be overridden by passing a custom AppModuleBasic map
|
||||
* `RegisterLegacyAminoCodec(cdc *codec.LegacyAmino)`: Registers the [`codec.LegacyAmino`s](../core/05-encoding.md#amino) of each of the application's `AppModuleBasic`. This function is usually called early on in the [application's construction](../basics/00-app-anatomy.md#constructor).
|
||||
* `RegisterInterfaces(registry codectypes.InterfaceRegistry)`: Registers interface types and implementations of each of the application's `AppModuleBasic`.
|
||||
* `DefaultGenesis(cdc codec.JSONCodec)`: Provides default genesis information for modules in the application by calling the [`DefaultGenesis(cdc codec.JSONCodec)`](./08-genesis.md#defaultgenesis) function of each module. It only calls the modules that implements the `HasGenesisBasics` interfaces.
|
||||
|
||||
2
go.mod
2
go.mod
@ -5,7 +5,7 @@ module github.com/cosmos/cosmos-sdk
|
||||
require (
|
||||
cosmossdk.io/api v0.7.0
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68
|
||||
cosmossdk.io/core v0.9.0
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4
|
||||
cosmossdk.io/errors v1.0.0
|
||||
cosmossdk.io/log v1.2.0
|
||||
|
||||
4
go.sum
4
go.sum
@ -39,8 +39,8 @@ cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4=
|
||||
cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M=
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68 h1:aFHpJtJgdqBH8kRvD86Rl92rvd1+JFpaUpj+5NZNodg=
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68/go.mod h1:OK08xZu8fxXLoQcFIfkBDayo2aRokLfC3vVcXX0MB8E=
|
||||
cosmossdk.io/core v0.9.0 h1:30ScAOHDIUOCg1DKAwqkho9wuQJnu7GUrMcg0XLioic=
|
||||
cosmossdk.io/core v0.9.0/go.mod h1:NFgl5r41Q36+RixTvyrfsS6qQ65agCbZ1FTpnN7/G1Y=
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9 h1:djIIHB7INVUMGDpaM02Js6iCA7CzlJo9KG4GYZCtsqI=
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY=
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc=
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU=
|
||||
cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04=
|
||||
|
||||
@ -5,7 +5,7 @@ go 1.20
|
||||
require (
|
||||
cosmossdk.io/api v0.7.0
|
||||
cosmossdk.io/client/v2 v2.0.0-20230630094428-02b760776860
|
||||
cosmossdk.io/core v0.9.0
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4
|
||||
cosmossdk.io/log v1.2.0
|
||||
cosmossdk.io/math v1.0.1
|
||||
|
||||
@ -191,8 +191,8 @@ cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4=
|
||||
cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M=
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68 h1:aFHpJtJgdqBH8kRvD86Rl92rvd1+JFpaUpj+5NZNodg=
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68/go.mod h1:OK08xZu8fxXLoQcFIfkBDayo2aRokLfC3vVcXX0MB8E=
|
||||
cosmossdk.io/core v0.9.0 h1:30ScAOHDIUOCg1DKAwqkho9wuQJnu7GUrMcg0XLioic=
|
||||
cosmossdk.io/core v0.9.0/go.mod h1:NFgl5r41Q36+RixTvyrfsS6qQ65agCbZ1FTpnN7/G1Y=
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9 h1:djIIHB7INVUMGDpaM02Js6iCA7CzlJo9KG4GYZCtsqI=
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY=
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc=
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU=
|
||||
cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04=
|
||||
|
||||
@ -23,8 +23,8 @@ schema = 3
|
||||
version = "v0.3.1-0.20230808102719-f04fefdc7a68"
|
||||
hash = "sha256-YnT8xyA06uI9zg583bIkbmZKh/Db+xy3dbGyOS7eBtc="
|
||||
[mod."cosmossdk.io/core"]
|
||||
version = "v0.9.0"
|
||||
hash = "sha256-NrBNg+nJjVLZnyjaSzKw0L6gp3ubam0ODbPl8uJwwW0="
|
||||
version = "v0.9.1-0.20230814191920-98b67a87e5c9"
|
||||
hash = "sha256-FvRTQ+RGCVhq7PepJ9Pv8VFv0gHZbKLCzXlhC2ZmZQc="
|
||||
[mod."cosmossdk.io/depinject"]
|
||||
version = "v1.0.0-alpha.4"
|
||||
hash = "sha256-xpLH0K6ivQznFrLw2hmhWIIyYgqjstV47OhTEj/c1oQ="
|
||||
|
||||
@ -5,7 +5,7 @@ go 1.20
|
||||
require (
|
||||
cosmossdk.io/api v0.7.0
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68
|
||||
cosmossdk.io/core v0.9.0
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4
|
||||
cosmossdk.io/errors v1.0.0
|
||||
cosmossdk.io/log v1.2.0
|
||||
|
||||
@ -191,8 +191,8 @@ cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4=
|
||||
cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M=
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68 h1:aFHpJtJgdqBH8kRvD86Rl92rvd1+JFpaUpj+5NZNodg=
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68/go.mod h1:OK08xZu8fxXLoQcFIfkBDayo2aRokLfC3vVcXX0MB8E=
|
||||
cosmossdk.io/core v0.9.0 h1:30ScAOHDIUOCg1DKAwqkho9wuQJnu7GUrMcg0XLioic=
|
||||
cosmossdk.io/core v0.9.0/go.mod h1:NFgl5r41Q36+RixTvyrfsS6qQ65agCbZ1FTpnN7/G1Y=
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9 h1:djIIHB7INVUMGDpaM02Js6iCA7CzlJo9KG4GYZCtsqI=
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY=
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc=
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU=
|
||||
cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04=
|
||||
|
||||
@ -50,7 +50,7 @@ require (
|
||||
cosmossdk.io/api v0.7.0 // indirect
|
||||
cosmossdk.io/client/v2 v2.0.0-20230630094428-02b760776860 // indirect
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68 // indirect
|
||||
cosmossdk.io/core v0.9.0 // indirect
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9 // indirect
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4 // indirect
|
||||
cosmossdk.io/errors v1.0.0 // indirect
|
||||
cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982 // indirect
|
||||
|
||||
@ -361,39 +361,173 @@ func (mr *MockCoreAppModuleMockRecorder) ValidateGenesis(arg0 interface{}) *gomo
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateGenesis", reflect.TypeOf((*MockCoreAppModule)(nil).ValidateGenesis), arg0)
|
||||
}
|
||||
|
||||
// MockUpgradeModule is a mock of UpgradeModule interface.
|
||||
type MockUpgradeModule struct {
|
||||
*MockCoreAppModule
|
||||
recorder *MockUpgradeModuleMockRecorder
|
||||
// MockCoreUpgradeAppModule is a mock of CoreUpgradeAppModule interface.
|
||||
type MockCoreUpgradeAppModule struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockCoreUpgradeAppModuleMockRecorder
|
||||
}
|
||||
|
||||
// MockUpgradeModuleMockRecorder is the mock recorder for MockUpgradeModule.
|
||||
type MockUpgradeModuleMockRecorder struct {
|
||||
*MockCoreAppModuleMockRecorder
|
||||
// MockCoreUpgradeAppModuleMockRecorder is the mock recorder for MockCoreUpgradeAppModule.
|
||||
type MockCoreUpgradeAppModuleMockRecorder struct {
|
||||
mock *MockCoreUpgradeAppModule
|
||||
}
|
||||
|
||||
// NewMockUpgradeModule creates a new mock instance.
|
||||
func NewMockUpgradeModule(ctrl *gomock.Controller) *MockUpgradeModule {
|
||||
mock := &MockUpgradeModule{
|
||||
MockCoreAppModule: NewMockCoreAppModule(ctrl),
|
||||
}
|
||||
mock.recorder = &MockUpgradeModuleMockRecorder{mock.MockCoreAppModule.recorder}
|
||||
// NewMockCoreUpgradeAppModule creates a new mock instance.
|
||||
func NewMockCoreUpgradeAppModule(ctrl *gomock.Controller) *MockCoreUpgradeAppModule {
|
||||
mock := &MockCoreUpgradeAppModule{ctrl: ctrl}
|
||||
mock.recorder = &MockCoreUpgradeAppModuleMockRecorder{mock}
|
||||
return mock
|
||||
}
|
||||
|
||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
||||
func (m *MockUpgradeModule) EXPECT() *MockUpgradeModuleMockRecorder {
|
||||
func (m *MockCoreUpgradeAppModule) EXPECT() *MockCoreUpgradeAppModuleMockRecorder {
|
||||
return m.recorder
|
||||
}
|
||||
|
||||
// BeginBlock mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) BeginBlock(arg0 context.Context) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "BeginBlock", arg0)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// BeginBlock indicates an expected call of BeginBlock.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) BeginBlock(arg0 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BeginBlock", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).BeginBlock), arg0)
|
||||
}
|
||||
|
||||
// DefaultGenesis mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) DefaultGenesis(arg0 appmodule.GenesisTarget) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "DefaultGenesis", arg0)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// DefaultGenesis indicates an expected call of DefaultGenesis.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) DefaultGenesis(arg0 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DefaultGenesis", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).DefaultGenesis), arg0)
|
||||
}
|
||||
|
||||
// EndBlock mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) EndBlock(arg0 context.Context) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "EndBlock", arg0)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// EndBlock indicates an expected call of EndBlock.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) EndBlock(arg0 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EndBlock", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).EndBlock), arg0)
|
||||
}
|
||||
|
||||
// ExportGenesis mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) ExportGenesis(arg0 context.Context, arg1 appmodule.GenesisTarget) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "ExportGenesis", arg0, arg1)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// ExportGenesis indicates an expected call of ExportGenesis.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) ExportGenesis(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExportGenesis", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).ExportGenesis), arg0, arg1)
|
||||
}
|
||||
|
||||
// InitGenesis mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) InitGenesis(arg0 context.Context, arg1 appmodule.GenesisSource) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "InitGenesis", arg0, arg1)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// InitGenesis indicates an expected call of InitGenesis.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) InitGenesis(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitGenesis", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).InitGenesis), arg0, arg1)
|
||||
}
|
||||
|
||||
// IsAppModule mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) IsAppModule() {
|
||||
m.ctrl.T.Helper()
|
||||
m.ctrl.Call(m, "IsAppModule")
|
||||
}
|
||||
|
||||
// IsAppModule indicates an expected call of IsAppModule.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) IsAppModule() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsAppModule", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).IsAppModule))
|
||||
}
|
||||
|
||||
// IsOnePerModuleType mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) IsOnePerModuleType() {
|
||||
m.ctrl.T.Helper()
|
||||
m.ctrl.Call(m, "IsOnePerModuleType")
|
||||
}
|
||||
|
||||
// IsOnePerModuleType indicates an expected call of IsOnePerModuleType.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) IsOnePerModuleType() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsOnePerModuleType", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).IsOnePerModuleType))
|
||||
}
|
||||
|
||||
// IsUpgradeModule mocks base method.
|
||||
func (m *MockUpgradeModule) IsUpgradeModule() {
|
||||
func (m *MockCoreUpgradeAppModule) IsUpgradeModule() {
|
||||
m.ctrl.T.Helper()
|
||||
m.ctrl.Call(m, "IsUpgradeModule")
|
||||
}
|
||||
|
||||
// IsUpgradeModule indicates an expected call of IsUpgradeModule.
|
||||
func (mr *MockUpgradeModuleMockRecorder) IsUpgradeModule() *gomock.Call {
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) IsUpgradeModule() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsUpgradeModule", reflect.TypeOf((*MockUpgradeModule)(nil).IsUpgradeModule))
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsUpgradeModule", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).IsUpgradeModule))
|
||||
}
|
||||
|
||||
// Precommit mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) Precommit(arg0 context.Context) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "Precommit", arg0)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// Precommit indicates an expected call of Precommit.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) Precommit(arg0 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Precommit", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).Precommit), arg0)
|
||||
}
|
||||
|
||||
// PrepareCheckState mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) PrepareCheckState(arg0 context.Context) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "PrepareCheckState", arg0)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// PrepareCheckState indicates an expected call of PrepareCheckState.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) PrepareCheckState(arg0 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PrepareCheckState", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).PrepareCheckState), arg0)
|
||||
}
|
||||
|
||||
// ValidateGenesis mocks base method.
|
||||
func (m *MockCoreUpgradeAppModule) ValidateGenesis(arg0 appmodule.GenesisSource) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "ValidateGenesis", arg0)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// ValidateGenesis indicates an expected call of ValidateGenesis.
|
||||
func (mr *MockCoreUpgradeAppModuleMockRecorder) ValidateGenesis(arg0 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateGenesis", reflect.TypeOf((*MockCoreUpgradeAppModule)(nil).ValidateGenesis), arg0)
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ type AppModuleWithAllExtensions interface {
|
||||
module.HasInvariants
|
||||
module.HasConsensusVersion
|
||||
module.HasABCIEndblock
|
||||
module.HasName
|
||||
}
|
||||
|
||||
// CoreAppModule is solely here for the purpose of generating
|
||||
@ -27,3 +28,8 @@ type CoreAppModule interface {
|
||||
appmodule.HasPrecommit
|
||||
appmodule.HasPrepareCheckState
|
||||
}
|
||||
|
||||
type CoreUpgradeAppModule interface {
|
||||
CoreAppModule
|
||||
appmodule.UpgradeModule
|
||||
}
|
||||
|
||||
@ -36,7 +36,7 @@ import (
|
||||
"sort"
|
||||
|
||||
abci "github.com/cometbft/cometbft/abci/types"
|
||||
gwruntime "github.com/grpc-ecosystem/grpc-gateway/runtime"
|
||||
"github.com/grpc-ecosystem/grpc-gateway/runtime"
|
||||
"github.com/spf13/cobra"
|
||||
"golang.org/x/exp/maps"
|
||||
|
||||
@ -57,7 +57,7 @@ type AppModuleBasic interface {
|
||||
HasName
|
||||
RegisterLegacyAminoCodec(*codec.LegacyAmino)
|
||||
RegisterInterfaces(types.InterfaceRegistry)
|
||||
RegisterGRPCGatewayRoutes(client.Context, *gwruntime.ServeMux)
|
||||
RegisterGRPCGatewayRoutes(client.Context, *runtime.ServeMux)
|
||||
}
|
||||
|
||||
// HasName allows the module to provide its own name for legacy purposes.
|
||||
@ -67,13 +67,6 @@ type HasName interface {
|
||||
Name() string
|
||||
}
|
||||
|
||||
// UpgradeModule is the extension interface that upgrade module should implement to differentiate
|
||||
// it from other modules, migration handler need ensure the upgrade module's migration is executed
|
||||
// before the rest of the modules.
|
||||
type UpgradeModule interface {
|
||||
IsUpgradeModule()
|
||||
}
|
||||
|
||||
// HasGenesisBasics is the legacy interface for stateless genesis methods.
|
||||
type HasGenesisBasics interface {
|
||||
DefaultGenesis(codec.JSONCodec) json.RawMessage
|
||||
@ -157,7 +150,7 @@ func (bm BasicManager) ValidateGenesis(cdc codec.JSONCodec, txEncCfg client.TxEn
|
||||
}
|
||||
|
||||
// RegisterGRPCGatewayRoutes registers all module rest routes
|
||||
func (bm BasicManager) RegisterGRPCGatewayRoutes(clientCtx client.Context, rtr *gwruntime.ServeMux) {
|
||||
func (bm BasicManager) RegisterGRPCGatewayRoutes(clientCtx client.Context, rtr *runtime.ServeMux) {
|
||||
for _, b := range bm {
|
||||
b.RegisterGRPCGatewayRoutes(clientCtx, rtr)
|
||||
}
|
||||
@ -709,7 +702,7 @@ func (m Manager) RunMigrations(ctx context.Context, cfg Configurator, fromVM Ver
|
||||
func (m *Manager) RunMigrationBeginBlock(ctx sdk.Context) (bool, error) {
|
||||
for _, moduleName := range m.OrderBeginBlockers {
|
||||
if mod, ok := m.Modules[moduleName].(appmodule.HasBeginBlocker); ok {
|
||||
if _, ok := mod.(UpgradeModule); ok {
|
||||
if _, ok := mod.(appmodule.UpgradeModule); ok {
|
||||
err := mod.BeginBlock(ctx)
|
||||
return err == nil, err
|
||||
}
|
||||
@ -725,7 +718,7 @@ func (m *Manager) BeginBlock(ctx sdk.Context) (sdk.BeginBlock, error) {
|
||||
ctx = ctx.WithEventManager(sdk.NewEventManager())
|
||||
for _, moduleName := range m.OrderBeginBlockers {
|
||||
if module, ok := m.Modules[moduleName].(appmodule.HasBeginBlocker); ok {
|
||||
if _, ok := module.(UpgradeModule); !ok {
|
||||
if _, ok := module.(appmodule.UpgradeModule); !ok {
|
||||
if err := module.BeginBlock(ctx); err != nil {
|
||||
return sdk.BeginBlock{}, err
|
||||
}
|
||||
|
||||
@ -472,7 +472,7 @@ func TestCoreAPIManager_RunMigrationBeginBlock(t *testing.T) {
|
||||
t.Cleanup(mockCtrl.Finish)
|
||||
|
||||
mockAppModule1 := mock.NewMockCoreAppModule(mockCtrl)
|
||||
mockAppModule2 := mock.NewMockUpgradeModule(mockCtrl)
|
||||
mockAppModule2 := mock.NewMockCoreUpgradeAppModule(mockCtrl)
|
||||
mm := module.NewManagerFromMap(map[string]appmodule.AppModule{
|
||||
"module1": mockAppModule1,
|
||||
"module2": mockAppModule2,
|
||||
|
||||
@ -5,7 +5,7 @@ go 1.20
|
||||
require (
|
||||
cosmossdk.io/api v0.7.0
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68
|
||||
cosmossdk.io/core v0.9.0
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4
|
||||
cosmossdk.io/errors v1.0.0
|
||||
cosmossdk.io/log v1.2.0
|
||||
|
||||
@ -39,8 +39,8 @@ cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4=
|
||||
cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M=
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68 h1:aFHpJtJgdqBH8kRvD86Rl92rvd1+JFpaUpj+5NZNodg=
|
||||
cosmossdk.io/collections v0.3.1-0.20230808102719-f04fefdc7a68/go.mod h1:OK08xZu8fxXLoQcFIfkBDayo2aRokLfC3vVcXX0MB8E=
|
||||
cosmossdk.io/core v0.9.0 h1:30ScAOHDIUOCg1DKAwqkho9wuQJnu7GUrMcg0XLioic=
|
||||
cosmossdk.io/core v0.9.0/go.mod h1:NFgl5r41Q36+RixTvyrfsS6qQ65agCbZ1FTpnN7/G1Y=
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9 h1:djIIHB7INVUMGDpaM02Js6iCA7CzlJo9KG4GYZCtsqI=
|
||||
cosmossdk.io/core v0.9.1-0.20230814191920-98b67a87e5c9/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY=
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc=
|
||||
cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU=
|
||||
cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04=
|
||||
|
||||
@ -9,8 +9,8 @@ import (
|
||||
reflect "reflect"
|
||||
time "time"
|
||||
|
||||
address "cosmossdk.io/core/address"
|
||||
stakingv1beta1 "cosmossdk.io/api/cosmos/staking/v1beta1"
|
||||
address "cosmossdk.io/core/address"
|
||||
comet "cosmossdk.io/core/comet"
|
||||
math "cosmossdk.io/math"
|
||||
types "github.com/cosmos/cosmos-sdk/crypto/types"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user