feat(stf): change router service to extract the router at runtime rather than build time (#20724)
Co-authored-by: unknown unknown <unknown@unknown>
This commit is contained in:
co-authored by
unknown unknown
parent
7b5d3e53fe
commit
11b8f1108c
+9
-13
@@ -96,21 +96,12 @@ func (a *AppBuilder) Build(opts ...AppBuilderOption) (*App, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
stfMsgHandler, err := a.app.msgRouterBuilder.Build()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to build STF message handler: %w", err)
|
||||
}
|
||||
|
||||
stfQueryHandler, err := a.app.queryRouterBuilder.Build()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to build query handler: %w", err)
|
||||
}
|
||||
|
||||
endBlocker, valUpdate := a.app.moduleManager.EndBlock()
|
||||
|
||||
a.app.stf = stf.NewSTF[transaction.Tx](
|
||||
stfMsgHandler,
|
||||
stfQueryHandler,
|
||||
stf, err := stf.NewSTF[transaction.Tx](
|
||||
a.app.logger.With("module", "stf"),
|
||||
a.app.msgRouterBuilder,
|
||||
a.app.queryRouterBuilder,
|
||||
a.app.moduleManager.PreBlocker(),
|
||||
a.app.moduleManager.BeginBlock(),
|
||||
endBlocker,
|
||||
@@ -119,6 +110,11 @@ func (a *AppBuilder) Build(opts ...AppBuilderOption) (*App, error) {
|
||||
a.postTxExec,
|
||||
a.branch,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create STF: %w", err)
|
||||
}
|
||||
|
||||
a.app.stf = stf
|
||||
|
||||
rs, err := rootstore.CreateRootStore(a.storeOptions)
|
||||
if err != nil {
|
||||
|
||||
@@ -212,8 +212,8 @@ func ProvideEnvironment(logger log.Logger, config *runtimev2.Module, key depinje
|
||||
EventService: stf.NewEventService(),
|
||||
GasService: stf.NewGasMeterService(),
|
||||
HeaderService: stf.HeaderService{},
|
||||
QueryRouterService: stf.NewQueryRouterService(appBuilder.app.queryRouterBuilder),
|
||||
MsgRouterService: stf.NewMsgRouterService(appBuilder.app.msgRouterBuilder),
|
||||
QueryRouterService: stf.NewQueryRouterService(),
|
||||
MsgRouterService: stf.NewMsgRouterService([]byte(key.Name())),
|
||||
TransactionService: services.NewContextAwareTransactionService(),
|
||||
KVStoreService: kvService,
|
||||
MemStoreService: memKvService,
|
||||
|
||||
Reference in New Issue
Block a user