GetServiceInfo gRPC Method
參數
此方法不接受任何參數
退貨
chainId
字串
載入中...
鏈條
字串
載入中...
時代
字串
載入中...
checkpointHeight
字串
載入中...
時間戳記
字串
載入中...
lowestAvailableCheckpoint
字串
載入中...
lowestAvailableCheckpointObjects
字串
載入中...
server
字串
載入中...
請求
1grpcurl \2-import-path . \3-proto sui/rpc/v2/ledger_service.proto \4-H "x-token: YOUR_TOKEN_VALUE" \5-d '{}' \6docs-demo.sui-mainnet.quiknode.pro:9000 \7sui.rpc.v2.LedgerService/GetServiceInfo8
1grpcurl \2-import-path . \3-proto sui/rpc/v2/ledger_service.proto \4-H "x-token: YOUR_TOKEN_VALUE" \5-d '{}' \6docs-demo.sui-mainnet.quiknode.pro:9000 \7sui.rpc.v2.LedgerService/GetServiceInfo8
1套件 主函式23匯入 (4"上下文"5"crypto/tls"6"encoding/json"7"fmt"8"log"9「時間」1011"google.golang.grpc"12"google.golang.grpc"13"google.golang.org/grpc/metadata"14"google.golang.org/protobuf/encoding/protojson"1516pb "sui-grpc/sui/rpc/v2" // Your Generated .pb.go files path17)1819// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token20// For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678921// endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}22// token will be : abcde1234567892324var (25token = "YOUR_TOKEN_NUMBER"26endpoint = "YOUR_QN_ENDPOINT:9000"27)2829func main() {30creds := credentials.NewTLS(&tls.Config{})31conn, err := grpc.Dial(endpoint, grpc.WithTransportCredentials(creds))32如果 err != nil {33log.Fatalf("Failed to connect: %v", err)34}35延後 延遲連接.關閉()3637client := pb.NewLedgerServiceClient(conn)3839ctx, 取消 := context.WithTimeout(context.背景(), 10*時間.第二)40延後 延後()41ctx = metadata.AppendToOutgoingContext(ctx, "x-token", token)4243req := &pb.GetServiceInfoRequest{}4445resp, err := client.GetServiceInfo(ctx, req)46如果 err != nil {47log.Fatalf("GetServiceInfo failed: %v", err)48}4950marshaler := protojson.MarshalOptions{51UseProtoNames: true,52EmitUnpopulated: true,53Indent: " ",54}5556jsonBytes, err := marshaler.Marshal(resp)57如果 err != nil {58log.Fatalf("Failed to marshal response to JSON: %v", err)59}6061var prettyJSON map[string]interface{}62if err := json.Unmarshal(jsonBytes, &prettyJSON); err != nil {63log.Fatalf("Failed to unmarshal JSON: %v", err)64}6566prettyJSONBytes, err := json.MarshalIndent(prettyJSON, "", " ")67如果 err != nil {68log.Fatalf("Failed to format JSON: %v", err)69}7071fmt.Println(string(prettyJSONBytes))72}73
1套件 主函式23匯入 (4"上下文"5"crypto/tls"6"encoding/json"7"fmt"8"log"9「時間」1011"google.golang.grpc"12"google.golang.grpc"13"google.golang.org/grpc/metadata"14"google.golang.org/protobuf/encoding/protojson"1516pb "sui-grpc/sui/rpc/v2" // Your Generated .pb.go files path17)1819// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token20// For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678921// endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}22// token will be : abcde1234567892324var (25token = "YOUR_TOKEN_NUMBER"26endpoint = "YOUR_QN_ENDPOINT:9000"27)2829func main() {30creds := credentials.NewTLS(&tls.Config{})31conn, err := grpc.Dial(endpoint, grpc.WithTransportCredentials(creds))32如果 err != nil {33log.Fatalf("Failed to connect: %v", err)34}35延後 延遲連接.關閉()3637client := pb.NewLedgerServiceClient(conn)3839ctx, 取消 := context.WithTimeout(context.背景(), 10*時間.第二)40延後 延後()41ctx = metadata.AppendToOutgoingContext(ctx, "x-token", token)4243req := &pb.GetServiceInfoRequest{}4445resp, err := client.GetServiceInfo(ctx, req)46如果 err != nil {47log.Fatalf("GetServiceInfo failed: %v", err)48}4950marshaler := protojson.MarshalOptions{51UseProtoNames: true,52EmitUnpopulated: true,53Indent: " ",54}5556jsonBytes, err := marshaler.Marshal(resp)57如果 err != nil {58log.Fatalf("Failed to marshal response to JSON: %v", err)59}6061var prettyJSON map[string]interface{}62if err := json.Unmarshal(jsonBytes, &prettyJSON); err != nil {63log.Fatalf("Failed to unmarshal JSON: %v", err)64}6566prettyJSONBytes, err := json.MarshalIndent(prettyJSON, "", " ")67如果 err != nil {68log.Fatalf("Failed to format JSON: %v", err)69}7071fmt.Println(string(prettyJSONBytes))72}73
1import * as grpc from '@grpc/grpc-js';2import * as protoLoader from '@grpc/proto-loader';3import * as path from 'path';45// Path to proto file6const PROTO_PATH = path.join(__dirname, 'protos/proto/sui/rpc/v2/ledger_service.proto');78// Load proto definitions9const packageDefinition = protoLoader.loadSync(PROTO_PATH, {10keepCase: true,11longs: String,12enums: String,13defaults: true,14oneofs: true,15includeDirs: [path.join(__dirname, 'protos/proto')],16});1718const proto = grpc.loadPackageDefinition(packageDefinition) as any;19const LedgerService = proto.sui.rpc.v2.LedgerService;2021// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token22// For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678923// endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}24// token will be : abcde1234567892526const endpoint = 'docs-demo.sui-mainnet.quiknode.pro:9000';27const token = 'abcde123456789';2829// Create gRPC client with TLS30const client = new LedgerService(endpoint, grpc.credentials.createSsl());3132// Metadata with token33const metadata = new grpc.Metadata();34metadata.add('x-token', token);3536// Empty request for GetServiceInfo37const request = {};3839// Make the gRPC call40client.GetServiceInfo({}, metadata, (err: grpc.ServiceError | null, response: any) => {41if (err) {42console.error('gRPC Error:', {43code: err.code,44message: err.message,45details: err.details,46});47return;48}49console.log('Service Info:');50console.log(JSON.stringify(response, null, 2));51});
1import * as grpc from '@grpc/grpc-js';2import * as protoLoader from '@grpc/proto-loader';3import * as path from 'path';45// Path to proto file6const PROTO_PATH = path.join(__dirname, 'protos/proto/sui/rpc/v2/ledger_service.proto');78// Load proto definitions9const packageDefinition = protoLoader.loadSync(PROTO_PATH, {10keepCase: true,11longs: String,12enums: String,13defaults: true,14oneofs: true,15includeDirs: [path.join(__dirname, 'protos/proto')],16});1718const proto = grpc.loadPackageDefinition(packageDefinition) as any;19const LedgerService = proto.sui.rpc.v2.LedgerService;2021// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token22// For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678923// endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}24// token will be : abcde1234567892526const endpoint = 'docs-demo.sui-mainnet.quiknode.pro:9000';27const token = 'abcde123456789';2829// Create gRPC client with TLS30const client = new LedgerService(endpoint, grpc.credentials.createSsl());3132// Metadata with token33const metadata = new grpc.Metadata();34metadata.add('x-token', token);3536// Empty request for GetServiceInfo37const request = {};3839// Make the gRPC call40client.GetServiceInfo({}, metadata, (err: grpc.ServiceError | null, response: any) => {41if (err) {42console.error('gRPC Error:', {43code: err.code,44message: err.message,45details: err.details,46});47return;48}49console.log('Service Info:');50console.log(JSON.stringify(response, null, 2));51});
1import grpc2匯入 json3from google.protobuf.field_mask_pb2 import FieldMask4from google.protobuf.json_format import MessageToDict5from sui.rpc.v2 import ledger_service_pb2, ledger_service_pb2_grpc678def get_service_info():9# Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token10# For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678911# endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}12# token will be: abcde1234567891314endpoint = 'docs-demo.sui-mainnet.quiknode.pro:9000';15token = 'abcde123456789';1617channel = grpc.secure_channel(endpoint, grpc.ssl_channel_credentials())18stub = ledger_service_pb2_grpc.LedgerServiceStub(channel)1920# GetServiceInfo doesn't require any specific parameters21request = ledger_service_pb2.GetServiceInfoRequest()2223metadata = [("x-token", token)]2425return stub.GetServiceInfo(request, metadata=metadata)262728def parse_response_to_json(response):29return json.dumps(30MessageToDict(response, preserving_proto_field_name=True),31indent=232)333435def main():36try:37response = get_service_info()38print(parse_response_to_json(response))39except grpc.RpcError as e:40print(f"{e.code().name}: {e.details()}")414243if __name__ == "__main__":44main()45
1import grpc2匯入 json3from google.protobuf.field_mask_pb2 import FieldMask4from google.protobuf.json_format import MessageToDict5from sui.rpc.v2 import ledger_service_pb2, ledger_service_pb2_grpc678def get_service_info():9# Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token10# For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678911# endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}12# token will be: abcde1234567891314endpoint = 'docs-demo.sui-mainnet.quiknode.pro:9000';15token = 'abcde123456789';1617channel = grpc.secure_channel(endpoint, grpc.ssl_channel_credentials())18stub = ledger_service_pb2_grpc.LedgerServiceStub(channel)1920# GetServiceInfo doesn't require any specific parameters21request = ledger_service_pb2.GetServiceInfoRequest()2223metadata = [("x-token", token)]2425return stub.GetServiceInfo(request, metadata=metadata)262728def parse_response_to_json(response):29return json.dumps(30MessageToDict(response, preserving_proto_field_name=True),31indent=232)333435def main():36try:37response = get_service_info()38print(parse_response_to_json(response))39except grpc.RpcError as e:40print(f"{e.code().name}: {e.details()}")414243if __name__ == "__main__":44main()45