orderBeginBlockers returns the order of BeginBlockers, by module name. the original order for reference upgradetypes.ModuleName, banktypes.ModuleName, paramstypes.ModuleName, deploymenttypes.ModuleName, govtypes.ModuleName, providertypes.ModuleName, certtypes.ModuleName, markettypes.ModuleN
(modules []string)
| 325 | // // wasm after ibc transfer |
| 326 | // wasmtypes.ModuleName, |
| 327 | func orderBeginBlockers(modules []string) []string { |
| 328 | ord := partialord.NewPartialOrdering(modules) |
| 329 | ord.FirstElements(epochstypes.ModuleName) |
| 330 | |
| 331 | // Staking ordering |
| 332 | // TODO: Perhaps this can be relaxed, left to future work to analyze. |
| 333 | ord.Sequence(distrtypes.ModuleName, slashingtypes.ModuleName, evidencetypes.ModuleName, stakingtypes.ModuleName) |
| 334 | // TODO: This can almost certainly be un-constrained, but we keep the constraint to match prior functionality. |
| 335 | // IBChost came after staking, before superfluid. |
| 336 | // TODO: Come back and delete this line after testing the base change. |
| 337 | ord.Sequence(stakingtypes.ModuleName, ibchost.ModuleName) |
| 338 | |
| 339 | // oracle must come up prior bme |
| 340 | ord.Before(oracle.ModuleName, bme.ModuleName) |
| 341 | |
| 342 | // escrow must come up after bme |
| 343 | ord.Before(bme.ModuleName, escrow.ModuleName) |
| 344 | |
| 345 | // akash wasm module must be prior wasm |
| 346 | ord.Before(awasm.ModuleName, wasmtypes.ModuleName) |
| 347 | // wasm after ibc transfer |
| 348 | ord.Before(transfertypes.ModuleName, wasmtypes.ModuleName) |
| 349 | |
| 350 | // We leave downtime-detector un-constrained. |
| 351 | // every remaining module's begin block is a no-op. |
| 352 | |
| 353 | return ord.TotalOrdering() |
| 354 | } |
| 355 | |
| 356 | // orderEndBlockers returns EndBlockers (crisis, govtypes, staking) with no relative order. |
| 357 | // original ordering for reference |
no test coverage detected