Skip to content

Commit a45a6f3

Browse files
committed
AppModuleGenesis seperation
int
1 parent 5c0aa05 commit a45a6f3

File tree

3 files changed

+57
-65
lines changed

3 files changed

+57
-65
lines changed

types/module.go

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,16 @@ func (mbm ModuleBasicManager) ValidateGenesis(genesis map[string]json.RawMessage
7878
}
7979

8080
//_________________________________________________________
81+
// AppModuleGenesis is the standard form for an application module genesis functions
82+
type AppModuleGenesis interface {
83+
AppModuleBasic
84+
InitGenesis(Context, json.RawMessage) []abci.ValidatorUpdate
85+
ExportGenesis(Context) json.RawMessage
86+
}
87+
8188
// AppModule is the standard form for an application module
8289
type AppModule interface {
83-
AppModuleBasic
90+
AppModuleGenesis
8491

8592
// registers
8693
RegisterInvariants(InvariantRouter)
@@ -91,14 +98,49 @@ type AppModule interface {
9198
QuerierRoute() string
9299
NewQuerierHandler() Querier
93100

94-
// genesis
95-
InitGenesis(Context, json.RawMessage) []abci.ValidatorUpdate
96-
ExportGenesis(Context) json.RawMessage
97-
98101
BeginBlock(Context, abci.RequestBeginBlock) Tags
99102
EndBlock(Context, abci.RequestEndBlock) ([]abci.ValidatorUpdate, Tags)
100103
}
101104

105+
//___________________________
106+
// app module
107+
type GenesisOnlyAppModule struct {
108+
AppModuleGenesis
109+
}
110+
111+
// NewGenesisOnlyAppModule creates a new GenesisOnlyAppModule object
112+
func NewGenesisOnlyAppModule(amg AppModuleGenesis) AppModule {
113+
return GenesisOnlyAppModule{
114+
AppModuleGenesis: amg,
115+
}
116+
}
117+
118+
// register invariants
119+
func (GenesisOnlyAppModule) RegisterInvariants(_ InvariantRouter) {}
120+
121+
// module message route ngame
122+
func (GenesisOnlyAppModule) Route() string { return "" }
123+
124+
// module handler
125+
func (GenesisOnlyAppModule) NewHandler() Handler { return nil }
126+
127+
// module querier route ngame
128+
func (GenesisOnlyAppModule) QuerierRoute() string { return "" }
129+
130+
// module querier
131+
func (gam GenesisOnlyAppModule) NewQuerierHandler() Querier { return nil }
132+
133+
// module begin-block
134+
func (gam GenesisOnlyAppModule) BeginBlock(ctx Context, req abci.RequestBeginBlock) Tags {
135+
return EmptyTags()
136+
}
137+
138+
// module end-block
139+
func (GenesisOnlyAppModule) EndBlock(_ Context, _ abci.RequestEndBlock) ([]abci.ValidatorUpdate, Tags) {
140+
return []abci.ValidatorUpdate{}, EmptyTags()
141+
}
142+
143+
//____________________________________________________________________________
102144
// module manager provides the high level utility for managing and executing
103145
// operations for a group of modules
104146
type ModuleManager struct {

x/genaccounts/module.go

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010
)
1111

1212
var (
13-
_ sdk.AppModule = AppModule{}
14-
_ sdk.AppModuleBasic = AppModuleBasic{}
13+
_ sdk.AppModuleGenesis = AppModule{}
14+
_ sdk.AppModuleBasic = AppModuleBasic{}
1515
)
1616

1717
// module name
@@ -66,29 +66,14 @@ type AppModule struct {
6666
}
6767

6868
// NewAppModule creates a new AppModule object
69-
func NewAppModule(accountKeeper AccountKeeper) AppModule {
69+
func NewAppModule(accountKeeper AccountKeeper) sdk.AppModule {
7070

71-
return AppModule{
71+
return sdk.NewGenesisOnlyAppModule(AppModule{
7272
AppModuleBasic: AppModuleBasic{},
7373
accountKeeper: accountKeeper,
74-
}
74+
})
7575
}
7676

77-
// register invariants
78-
func (AppModule) RegisterInvariants(_ sdk.InvariantRouter) {}
79-
80-
// module message route name
81-
func (AppModule) Route() string { return "" }
82-
83-
// module handler
84-
func (AppModule) NewHandler() sdk.Handler { return nil }
85-
86-
// module querier route name
87-
func (AppModule) QuerierRoute() string { return "" }
88-
89-
// module querier
90-
func (am AppModule) NewQuerierHandler() sdk.Querier { return nil }
91-
9277
// module init-genesis
9378
func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate {
9479
var genesisState GenesisState
@@ -102,13 +87,3 @@ func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage {
10287
gs := ExportGenesis(ctx, am.accountKeeper)
10388
return moduleCdc.MustMarshalJSON(gs)
10489
}
105-
106-
// module begin-block
107-
func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) sdk.Tags {
108-
return sdk.EmptyTags()
109-
}
110-
111-
// module end-block
112-
func (AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) ([]abci.ValidatorUpdate, sdk.Tags) {
113-
return []abci.ValidatorUpdate{}, sdk.EmptyTags()
114-
}

x/genutil/module.go

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import (
99
)
1010

1111
var (
12-
_ sdk.AppModule = AppModule{}
13-
_ sdk.AppModuleBasic = AppModuleBasic{}
12+
_ sdk.AppModuleGenesis = AppModule{}
13+
_ sdk.AppModuleBasic = AppModuleBasic{}
1414
)
1515

1616
// module name
@@ -53,31 +53,16 @@ type AppModule struct {
5353

5454
// NewAppModule creates a new AppModule object
5555
func NewAppModule(accountKeeper AccountKeeper,
56-
stakingKeeper StakingKeeper, deliverTx deliverTxfn) AppModule {
56+
stakingKeeper StakingKeeper, deliverTx deliverTxfn) sdk.AppModule {
5757

58-
return AppModule{
58+
return sdk.NewGenesisOnlyAppModule(AppModule{
5959
AppModuleBasic: AppModuleBasic{},
6060
accountKeeper: accountKeeper,
6161
stakingKeeper: stakingKeeper,
6262
deliverTx: deliverTx,
63-
}
63+
})
6464
}
6565

66-
// register invariants
67-
func (AppModule) RegisterInvariants(_ sdk.InvariantRouter) {}
68-
69-
// module message route name
70-
func (AppModule) Route() string { return "" }
71-
72-
// module handler
73-
func (AppModule) NewHandler() sdk.Handler { return nil }
74-
75-
// module querier route name
76-
func (AppModule) QuerierRoute() string { return "" }
77-
78-
// module querier
79-
func (am AppModule) NewQuerierHandler() sdk.Querier { return nil }
80-
8166
// module init-genesis
8267
func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate {
8368
var genesisState GenesisState
@@ -89,13 +74,3 @@ func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.Va
8974
func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage {
9075
return nil
9176
}
92-
93-
// module begin-block
94-
func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) sdk.Tags {
95-
return sdk.EmptyTags()
96-
}
97-
98-
// module end-block
99-
func (AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) ([]abci.ValidatorUpdate, sdk.Tags) {
100-
return []abci.ValidatorUpdate{}, sdk.EmptyTags()
101-
}

0 commit comments

Comments
 (0)