github.com/cosmos/cosmos-sdk@v0.50.10/runtime/services/reflection.go (about)

     1  package services
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/cosmos/gogoproto/proto"
     7  	"google.golang.org/protobuf/types/descriptorpb"
     8  
     9  	reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1"
    10  )
    11  
    12  // ReflectionService implements the cosmos.reflection.v1 service.
    13  type ReflectionService struct {
    14  	reflectionv1.UnimplementedReflectionServiceServer
    15  	files *descriptorpb.FileDescriptorSet
    16  }
    17  
    18  func NewReflectionService() (*ReflectionService, error) {
    19  	fds, err := proto.MergedGlobalFileDescriptors()
    20  	if err != nil {
    21  		return nil, err
    22  	}
    23  
    24  	return &ReflectionService{files: fds}, nil
    25  }
    26  
    27  func (r ReflectionService) FileDescriptors(_ context.Context, _ *reflectionv1.FileDescriptorsRequest) (*reflectionv1.FileDescriptorsResponse, error) {
    28  	return &reflectionv1.FileDescriptorsResponse{
    29  		Files: r.files.File,
    30  	}, nil
    31  }
    32  
    33  var _ reflectionv1.ReflectionServiceServer = &ReflectionService{}