@@ -18,13 +18,20 @@ import (
18
18
"github.com/cosmos/cosmos-sdk/x/auth"
19
19
"github.com/cosmos/cosmos-sdk/x/auth/vesting"
20
20
"github.com/cosmos/cosmos-sdk/x/bank"
21
+ "github.com/cosmos/cosmos-sdk/x/crisis"
21
22
distr "github.com/cosmos/cosmos-sdk/x/distribution"
23
+ "github.com/cosmos/cosmos-sdk/x/evidence"
22
24
"github.com/cosmos/cosmos-sdk/x/genutil"
25
+ "github.com/cosmos/cosmos-sdk/x/gov"
23
26
"github.com/cosmos/cosmos-sdk/x/params"
27
+ paramsclient "github.com/cosmos/cosmos-sdk/x/params/client"
24
28
"github.com/cosmos/cosmos-sdk/x/slashing"
25
29
"github.com/cosmos/cosmos-sdk/x/staking"
26
30
"github.com/cosmos/cosmos-sdk/x/supply"
31
+ "github.com/cosmos/cosmos-sdk/x/upgrade"
32
+ upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
27
33
"github.com/mesg-foundation/engine/protobuf/types"
34
+ "github.com/mesg-foundation/engine/x/credit"
28
35
"github.com/mesg-foundation/engine/x/execution"
29
36
"github.com/mesg-foundation/engine/x/instance"
30
37
"github.com/mesg-foundation/engine/x/ownership"
54
61
params.AppModuleBasic {},
55
62
slashing.AppModuleBasic {},
56
63
supply.AppModuleBasic {},
64
+ gov .NewAppModuleBasic (paramsclient .ProposalHandler , distr .ProposalHandler , upgradeclient .ProposalHandler ),
65
+ upgrade.AppModuleBasic {},
66
+ evidence.AppModuleBasic {},
67
+ crisis.AppModuleBasic {},
57
68
58
69
// Engine's AppModuleBasic
70
+ credit.AppModuleBasic {},
59
71
ownership.AppModuleBasic {},
60
72
instance.AppModuleBasic {},
61
73
process.AppModuleBasic {},
70
82
distr .ModuleName : nil ,
71
83
staking .BondedPoolName : {supply .Burner , supply .Staking },
72
84
staking .NotBondedPoolName : {supply .Burner , supply .Staking },
85
+ gov .ModuleName : {supply .Burner },
73
86
}
74
87
)
75
88
@@ -109,8 +122,13 @@ type NewApp struct {
109
122
distrKeeper distr.Keeper
110
123
supplyKeeper supply.Keeper
111
124
paramsKeeper params.Keeper
125
+ govKeeper gov.Keeper
126
+ upgradeKeeper upgrade.Keeper
127
+ evidenceKeeper evidence.Keeper
128
+ crisisKeeper crisis.Keeper
112
129
113
130
// Engine's keepers
131
+ creditKeeper credit.Keeper
114
132
ownershipKeeper ownership.Keeper
115
133
instanceKeeper instance.Keeper
116
134
processKeeper process.Keeper
@@ -131,7 +149,7 @@ var _ simapp.App = (*NewApp)(nil)
131
149
// NewInitApp is a constructor function for engineApp
132
150
func NewInitApp (
133
151
logger log.Logger , db dbm.DB , traceStore io.Writer , loadLatest bool ,
134
- invCheckPeriod uint , baseAppOptions ... func (* bam.BaseApp ),
152
+ invCheckPeriod uint , skipUpgradeHeights map [ int64 ] bool , baseAppOptions ... func (* bam.BaseApp ),
135
153
) (* NewApp , error ) {
136
154
// First define the top level codec that will be shared by the different modules
137
155
cdc := MakeCodec ()
@@ -149,8 +167,12 @@ func NewInitApp(
149
167
distr .StoreKey ,
150
168
slashing .StoreKey ,
151
169
params .StoreKey ,
170
+ gov .StoreKey ,
171
+ upgrade .StoreKey ,
172
+ evidence .StoreKey ,
152
173
153
174
// Engine's module keys
175
+ credit .ModuleName ,
154
176
ownership .ModuleName ,
155
177
instance .ModuleName ,
156
178
process .ModuleName ,
@@ -179,7 +201,10 @@ func NewInitApp(
179
201
app .subspaces [staking .ModuleName ] = app .paramsKeeper .Subspace (staking .DefaultParamspace )
180
202
app .subspaces [distr .ModuleName ] = app .paramsKeeper .Subspace (distr .DefaultParamspace )
181
203
app .subspaces [slashing .ModuleName ] = app .paramsKeeper .Subspace (slashing .DefaultParamspace )
182
- app .subspaces [execution .ModuleName ] = app .paramsKeeper .Subspace (execution .DefaultParamspace )
204
+ app .subspaces [gov .ModuleName ] = app .paramsKeeper .Subspace (gov .DefaultParamspace )
205
+ app .subspaces [evidence .ModuleName ] = app .paramsKeeper .Subspace (evidence .DefaultParamspace )
206
+ app .subspaces [crisis .ModuleName ] = app .paramsKeeper .Subspace (crisis .DefaultParamspace )
207
+ app .subspaces [credit .ModuleName ] = app .paramsKeeper .Subspace (credit .DefaultParamspace )
183
208
184
209
// The AccountKeeper handles address -> account lookups
185
210
app .accountKeeper = auth .NewAccountKeeper (
@@ -230,6 +255,48 @@ func NewInitApp(
230
255
app .subspaces [slashing .ModuleName ],
231
256
)
232
257
258
+ app .crisisKeeper = crisis .NewKeeper (
259
+ app .subspaces [crisis .ModuleName ],
260
+ invCheckPeriod ,
261
+ app .supplyKeeper ,
262
+ auth .FeeCollectorName ,
263
+ )
264
+
265
+ app .upgradeKeeper = upgrade .NewKeeper (
266
+ skipUpgradeHeights ,
267
+ keys [upgrade .StoreKey ],
268
+ app .cdc ,
269
+ )
270
+
271
+ // create evidence keeper with evidence router
272
+ evidenceKeeper := evidence .NewKeeper (
273
+ app .cdc ,
274
+ keys [evidence .StoreKey ],
275
+ app .subspaces [evidence .ModuleName ],
276
+ & stakingKeeper ,
277
+ app .slashingKeeper ,
278
+ )
279
+ evidenceRouter := evidence .NewRouter ()
280
+ // register evidence routes
281
+ evidenceKeeper .SetRouter (evidenceRouter )
282
+ app .evidenceKeeper = * evidenceKeeper
283
+
284
+ // register the proposal types
285
+ govRouter := gov .NewRouter ()
286
+ govRouter .
287
+ AddRoute (gov .RouterKey , gov .ProposalHandler ).
288
+ AddRoute (params .RouterKey , params .NewParamChangeProposalHandler (app .paramsKeeper )).
289
+ AddRoute (distr .RouterKey , distr .NewCommunityPoolSpendProposalHandler (app .distrKeeper )).
290
+ AddRoute (upgrade .RouterKey , upgrade .NewSoftwareUpgradeProposalHandler (app .upgradeKeeper ))
291
+ app .govKeeper = gov .NewKeeper (
292
+ app .cdc ,
293
+ keys [gov .StoreKey ],
294
+ app .subspaces [gov .ModuleName ].WithKeyTable (gov .ParamKeyTable ()),
295
+ app .supplyKeeper ,
296
+ & stakingKeeper ,
297
+ govRouter ,
298
+ )
299
+
233
300
// register the staking hooks
234
301
// NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks
235
302
app .stakingKeeper = * stakingKeeper .SetHooks (
@@ -239,20 +306,20 @@ func NewInitApp(
239
306
)
240
307
241
308
// Engine's module keepers
309
+ app .creditKeeper = credit .NewKeeper (app .cdc , app .accountKeeper , keys [credit .StoreKey ], app .subspaces [credit .ModuleName ])
242
310
app .ownershipKeeper = ownership .NewKeeper (app .cdc , keys [ownership .StoreKey ], app .bankKeeper )
243
- app .instanceKeeper = instance .NewKeeper (app .cdc , keys [instance .StoreKey ])
244
- app .processKeeper = process .NewKeeper (app .cdc , keys [process .StoreKey ], app .instanceKeeper , app .ownershipKeeper , app .bankKeeper )
245
311
app .serviceKeeper = service .NewKeeper (app .cdc , keys [service .StoreKey ], app .ownershipKeeper )
312
+ app .instanceKeeper = instance .NewKeeper (app .cdc , keys [instance .StoreKey ], app .serviceKeeper )
313
+ app .processKeeper = process .NewKeeper (app .cdc , keys [process .StoreKey ], app .instanceKeeper , app .ownershipKeeper )
246
314
app .runnerKeeper = runner .NewKeeper (app .cdc , keys [runner .StoreKey ], app .instanceKeeper , app .ownershipKeeper )
247
315
app .executionKeeper = execution .NewKeeper (
248
316
app .cdc ,
249
317
keys [execution .StoreKey ],
250
- app .bankKeeper ,
251
318
app .serviceKeeper ,
252
319
app .instanceKeeper ,
253
320
app .runnerKeeper ,
254
321
app .processKeeper ,
255
- app .subspaces [ execution . ModuleName ] ,
322
+ app .creditKeeper ,
256
323
)
257
324
258
325
// NOTE: Any module instantiated in the module manager that is later modified
@@ -261,11 +328,14 @@ func NewInitApp(
261
328
genutil .NewAppModule (app .accountKeeper , app .stakingKeeper , app .BaseApp .DeliverTx ),
262
329
auth .NewAppModule (app .accountKeeper ),
263
330
bank .NewAppModule (app .bankKeeper , app .accountKeeper ),
331
+ crisis .NewAppModule (& app .crisisKeeper ),
264
332
supply .NewAppModule (app .supplyKeeper , app .accountKeeper ),
333
+ gov .NewAppModule (app .govKeeper , app .accountKeeper , app .supplyKeeper ),
265
334
distr .NewAppModule (app .distrKeeper , app .accountKeeper , app .supplyKeeper , app .stakingKeeper ),
266
335
slashing .NewAppModule (app .slashingKeeper , app .accountKeeper , app .stakingKeeper ),
267
336
268
337
// Engine's modules
338
+ credit .NewAppModule (app .creditKeeper ),
269
339
ownership .NewAppModule (app .ownershipKeeper ),
270
340
instance .NewAppModule (app .instanceKeeper ),
271
341
process .NewAppModule (app .processKeeper ),
@@ -274,13 +344,15 @@ func NewInitApp(
274
344
execution .NewAppModule (app .executionKeeper ),
275
345
276
346
staking .NewAppModule (app .stakingKeeper , app .accountKeeper , app .supplyKeeper ),
347
+ upgrade .NewAppModule (app .upgradeKeeper ),
348
+ evidence .NewAppModule (app .evidenceKeeper ),
277
349
)
278
350
// During begin block slashing happens after distr.BeginBlocker so that
279
351
// there is nothing left over in the validator fee pool, so as to keep the
280
352
// CanWithdrawInvariant invariant.
281
353
282
- app .mm .SetOrderBeginBlockers (distr .ModuleName , slashing .ModuleName )
283
- app .mm .SetOrderEndBlockers (staking .ModuleName )
354
+ app .mm .SetOrderBeginBlockers (upgrade . ModuleName , distr .ModuleName , slashing .ModuleName )
355
+ app .mm .SetOrderEndBlockers (crisis . ModuleName , gov . ModuleName , staking .ModuleName )
284
356
285
357
// Sets the order of Genesis - Order matters, genutil is to always come last
286
358
// NOTE: The genutils module must occur after staking so that pools are
@@ -291,8 +363,10 @@ func NewInitApp(
291
363
auth .ModuleName ,
292
364
bank .ModuleName ,
293
365
slashing .ModuleName ,
366
+ gov .ModuleName ,
294
367
295
368
// Engine's modules
369
+ credit .ModuleName ,
296
370
ownership .ModuleName ,
297
371
instance .ModuleName ,
298
372
process .ModuleName ,
@@ -301,7 +375,9 @@ func NewInitApp(
301
375
execution .ModuleName ,
302
376
303
377
supply .ModuleName ,
378
+ crisis .ModuleName ,
304
379
genutil .ModuleName ,
380
+ evidence .ModuleName ,
305
381
)
306
382
307
383
// register all module routes and module queriers
0 commit comments