refactor(serevr/v2/cometbft): update RegisterQueryHandlers and GRPC queries (#22403)

This commit is contained in:
Hieu Vu
2024-11-05 07:39:32 +00:00
committed by GitHub
parent e9436a6a1b
commit 55f7cfceba
2 changed files with 16 additions and 6 deletions
+10 -3
View File
@@ -642,7 +642,7 @@ func registerServices[T transaction.Tx](s appmodulev2.AppModule, app *App[T], re
// if module implements register msg handlers
if module, ok := s.(appmodulev2.HasMsgHandlers); ok {
wrapper := stfRouterWrapper{stfRouter: app.msgRouterBuilder}
wrapper := newStfRouterWrapper(app.msgRouterBuilder)
module.RegisterMsgHandlers(&wrapper)
if wrapper.error != nil {
return fmt.Errorf("unable to register handlers: %w", wrapper.error)
@@ -651,7 +651,7 @@ func registerServices[T transaction.Tx](s appmodulev2.AppModule, app *App[T], re
// if module implements register query handlers
if module, ok := s.(appmodulev2.HasQueryHandlers); ok {
wrapper := stfRouterWrapper{stfRouter: app.queryRouterBuilder}
wrapper := newStfRouterWrapper(app.queryRouterBuilder)
module.RegisterQueryHandlers(&wrapper)
for path, handler := range wrapper.handlers {
@@ -842,6 +842,13 @@ type stfRouterWrapper struct {
handlers map[string]appmodulev2.Handler
}
func newStfRouterWrapper(stfRouterBuilder *stf.MsgRouterBuilder) stfRouterWrapper {
wrapper := stfRouterWrapper{stfRouter: stfRouterBuilder}
wrapper.error = nil
wrapper.handlers = map[string]appmodulev2.Handler{}
return wrapper
}
func (s *stfRouterWrapper) RegisterHandler(handler appmodulev2.Handler) {
req := handler.MakeMsg()
requestName := gogoproto.MessageName(req)
@@ -854,7 +861,7 @@ func (s *stfRouterWrapper) RegisterHandler(handler appmodulev2.Handler) {
s.error = errors.Join(s.error, err)
// also make the decoder
if s.error == nil {
if s.handlers == nil {
s.handlers = map[string]appmodulev2.Handler{}
}
s.handlers[requestName] = handler