@@ -642,7 +642,7 @@ func registerServices[T transaction.Tx](s appmodulev2.AppModule, app *App[T], re
642
642
643
643
// if module implements register msg handlers
644
644
if module , ok := s .(appmodulev2.HasMsgHandlers ); ok {
645
- wrapper := stfRouterWrapper { stfRouter : app .msgRouterBuilder }
645
+ wrapper := newStfRouterWrapper ( app .msgRouterBuilder )
646
646
module .RegisterMsgHandlers (& wrapper )
647
647
if wrapper .error != nil {
648
648
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
651
651
652
652
// if module implements register query handlers
653
653
if module , ok := s .(appmodulev2.HasQueryHandlers ); ok {
654
- wrapper := stfRouterWrapper { stfRouter : app .queryRouterBuilder }
654
+ wrapper := newStfRouterWrapper ( app .queryRouterBuilder )
655
655
module .RegisterQueryHandlers (& wrapper )
656
656
657
657
for path , handler := range wrapper .handlers {
@@ -842,6 +842,13 @@ type stfRouterWrapper struct {
842
842
handlers map [string ]appmodulev2.Handler
843
843
}
844
844
845
+ func newStfRouterWrapper (stfRouterBuilder * stf.MsgRouterBuilder ) stfRouterWrapper {
846
+ wrapper := stfRouterWrapper {stfRouter : stfRouterBuilder }
847
+ wrapper .error = nil
848
+ wrapper .handlers = map [string ]appmodulev2.Handler {}
849
+ return wrapper
850
+ }
851
+
845
852
func (s * stfRouterWrapper ) RegisterHandler (handler appmodulev2.Handler ) {
846
853
req := handler .MakeMsg ()
847
854
requestName := gogoproto .MessageName (req )
@@ -854,7 +861,7 @@ func (s *stfRouterWrapper) RegisterHandler(handler appmodulev2.Handler) {
854
861
s .error = errors .Join (s .error , err )
855
862
856
863
// also make the decoder
857
- if s .error == nil {
864
+ if s .handlers == nil {
858
865
s .handlers = map [string ]appmodulev2.Handler {}
859
866
}
860
867
s .handlers [requestName ] = handler
0 commit comments