github.com/cosmos/cosmos-sdk@v0.50.10/client/grpc/node/service.go (about) 1 package node 2 3 import ( 4 context "context" 5 6 gogogrpc "github.com/cosmos/gogoproto/grpc" 7 "github.com/grpc-ecosystem/grpc-gateway/runtime" 8 9 "github.com/cosmos/cosmos-sdk/client" 10 "github.com/cosmos/cosmos-sdk/server/config" 11 sdk "github.com/cosmos/cosmos-sdk/types" 12 ) 13 14 // RegisterNodeService registers the node gRPC service on the provided gRPC router. 15 func RegisterNodeService(clientCtx client.Context, server gogogrpc.Server, cfg config.Config) { 16 RegisterServiceServer(server, NewQueryServer(clientCtx, cfg)) 17 } 18 19 // RegisterGRPCGatewayRoutes mounts the node gRPC service's GRPC-gateway routes 20 // on the given mux object. 21 func RegisterGRPCGatewayRoutes(clientConn gogogrpc.ClientConn, mux *runtime.ServeMux) { 22 _ = RegisterServiceHandlerClient(context.Background(), mux, NewServiceClient(clientConn)) 23 } 24 25 var _ ServiceServer = queryServer{} 26 27 type queryServer struct { 28 clientCtx client.Context 29 cfg config.Config 30 } 31 32 func NewQueryServer(clientCtx client.Context, cfg config.Config) ServiceServer { 33 return queryServer{ 34 clientCtx: clientCtx, 35 cfg: cfg, 36 } 37 } 38 39 func (s queryServer) Config(ctx context.Context, _ *ConfigRequest) (*ConfigResponse, error) { 40 sdkCtx := sdk.UnwrapSDKContext(ctx) 41 42 return &ConfigResponse{ 43 MinimumGasPrice: sdkCtx.MinGasPrices().String(), 44 PruningKeepRecent: s.cfg.PruningKeepRecent, 45 PruningInterval: s.cfg.PruningInterval, 46 HaltHeight: s.cfg.HaltHeight, 47 }, nil 48 } 49 50 func (s queryServer) Status(ctx context.Context, _ *StatusRequest) (*StatusResponse, error) { 51 sdkCtx := sdk.UnwrapSDKContext(ctx) 52 53 blockTime := sdkCtx.BlockTime() 54 55 return &StatusResponse{ 56 // TODO: Get earliest version from store. 57 // 58 // Ref: ... 59 // EarliestStoreHeight: sdkCtx.MultiStore(), 60 Height: uint64(sdkCtx.BlockHeight()), 61 Timestamp: &blockTime, 62 AppHash: sdkCtx.BlockHeader().AppHash, 63 ValidatorHash: sdkCtx.BlockHeader().NextValidatorsHash, 64 }, nil 65 }