From abae2567cbcf14a559cc2cc31ec787b41b8a1654 Mon Sep 17 00:00:00 2001 From: Carlos Santiago Yanzon <27785807+bizk@users.noreply.github.com> Date: Tue, 20 Jun 2023 11:43:38 -0300 Subject: [PATCH] fix(hubl): malformed msgName and error handling (#16601) Co-authored-by: Julien Robert --- tools/hubl/internal/compat.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tools/hubl/internal/compat.go b/tools/hubl/internal/compat.go index 553e72a665..5be1f08ca9 100644 --- a/tools/hubl/internal/compat.go +++ b/tools/hubl/internal/compat.go @@ -30,7 +30,7 @@ func loadFileDescriptorsGRPCReflection(ctx context.Context, client *grpc.ClientC InterfaceName: iface, }) if err == nil { - interfaceImplNames = append(interfaceImplNames, implRes.ImplementationMessageNames...) + interfaceImplNames = append(interfaceImplNames, implMsgNameCleanup(implRes.ImplementationMessageNames)...) } } } @@ -56,6 +56,8 @@ func loadFileDescriptorsGRPCReflection(ctx context.Context, client *grpc.ClientC } switch res := in.MessageResponse.(type) { + case *grpc_reflection_v1alpha.ServerReflectionResponse_ErrorResponse: + panic(err) case *grpc_reflection_v1alpha.ServerReflectionResponse_ListServicesResponse: waitListServiceRes <- res.ListServicesResponse //nolint:staticcheck // SA1019: we want to keep using v1alpha case *grpc_reflection_v1alpha.ServerReflectionResponse_FileDescriptorResponse: @@ -261,6 +263,19 @@ func guessAutocli(files *protoregistry.Files) *autocliv1.AppOptionsResponse { return &autocliv1.AppOptionsResponse{ModuleOptions: res} } +// Removes the first character "/" from the received name +func implMsgNameCleanup(implMessages []string) (cleanImplMessages []string) { + for _, implMessage := range implMessages { + if len(implMessage) >= 1 && implMessage[0] == '/' { + cleanImplMessages = append(cleanImplMessages, implMessage[1:]) + } else { + cleanImplMessages = append(cleanImplMessages, implMessage) + } + } + + return cleanImplMessages +} + var defaultAutocliMappings = map[protoreflect.FullName]string{ "cosmos.auth.v1beta1.Query": "auth query", "cosmos.authz.v1beta1.Query": "authz query",