GetDatatype gRPC Method
Paramètres
package_id
chaîne de caractères
OBLIGATOIRE
Chargement en cours...
module_name
chaîne de caractères
OBLIGATOIRE
Chargement en cours...
nom
chaîne de caractères
OBLIGATOIRE
Chargement en cours...
Retours
datatype
objet
Chargement en cours...
typeName
chaîne de caractères
Chargement en cours...
definingId
chaîne de caractères
Chargement en cours...
module
chaîne de caractères
Chargement en cours...
nom
chaîne de caractères
Chargement en cours...
abilities
tableau
Chargement en cours...
typeParameters
tableau
Chargement en cours...
isPhantom
booléen
Chargement en cours...
kind
chaîne de caractères
Chargement en cours...
fields
tableau
Chargement en cours...
nom
chaîne de caractères
Chargement en cours...
poste
entier
Chargement en cours...
type
objet
Chargement en cours...
type
chaîne de caractères
Chargement en cours...
typeName
chaîne de caractères
Chargement en cours...
typeParameterInstantiation
tableau
Chargement en cours...
type
chaîne de caractères
Chargement en cours...
typeParameter
entier
Chargement en cours...
typeParameter
entier
Chargement en cours...
Demande
1grpcurl \2-import-path . \3-proto sui/rpc/v2/move_package_service.proto \4-H "x-token: abcde123456789" \5-d '{6"package_id": "0x4897ec4008e4f6500880a547c25a6d4a26807c00ec359b4be24e6322fb2b86b5",7"module_name": "master",8"name": "Metadata"9}' \10docs-demo.sui-mainnet.quiknode.pro:9000 \11sui.rpc.v2.MovePackageService/GetDatatype
1grpcurl \2-import-path . \3-proto sui/rpc/v2/move_package_service.proto \4-H "x-token: abcde123456789" \5-d '{6"package_id": "0x4897ec4008e4f6500880a547c25a6d4a26807c00ec359b4be24e6322fb2b86b5",7"module_name": "master",8"name": "Metadata"9}' \10docs-demo.sui-mainnet.quiknode.pro:9000 \11sui.rpc.v2.MovePackageService/GetDatatype
1paquet principal23import (4« contexte »5« crypto/tls »6« encoding/json »7« fmt »8« journal »9« temps »1011« google.golang.grpc »12« google.golang.grpc »13"google.golang.org/protobuf/encoding/protojson"1415pb "sui-grpc/sui/rpc/v2" // Your Generated .pb.go files path16)1718// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token19// For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678920// endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}21// token will be : abcde1234567892223var (24token = "YOUR_TOKEN_NUMBER"25endpoint = "YOUR_QN_ENDPOINT:9000"26)2728// Auth structure for x-token29type auth struct {30jeton chaîne de caractères31}3233func (a *auth) GetRequestMetadata(ctx contexte.Context, uri ...chaîne) (carte[chaîne]chaîne, erreur) {34return map[string]string{"x-token": a.token}, nil35}36func (a *auth) RequireTransportSecurity() bool {37return true38}3940func main() {41creds := credentials.NewTLS(&tls.Config{})42opts := []grpc.DialOption{43grpc.WithTransportCredentials(creds),44grpc.Avec les identifiants RPCC(&auth{token}),45}4647conn, err := grpc.Composer(endpoint, opts...)48si err != nil {49log.Fatalf("Failed to connect: %v", err)50}51reporter conn.Fermer()5253client := pb.NewMovePackageServiceClient(conn)5455packageID := "0x4897ec4008e4f6500880a547c25a6d4a26807c00ec359b4be24e6322fb2b86b5"56moduleName := "master"57datatypeName := "Metadata"5859req := &pb.GetDatatypeRequest{60PackageId: &packageID,61ModuleName: &moduleName,62Name: &datatypeName,63}6465ctx, annuler := context.WithTimeout(contexte.Arrière-plan(), 10*temps.Deuxième)66reporter annuler()6768resp, err := client.GetDatatype(ctx, req)69si err != nil {70log.Fatalf("GetDatatype failed: %v", err)71}7273// Pretty print the response74marshaler := protojson.MarshalOptions{75UseProtoNames: true,76EmitUnpopulated: true,77Indent: " ",78}7980jsonBytes, err := marshaler.Marshal(resp)81si err != nil {82log.Fatalf("Failed to marshal: %v", err)83}8485var pretty map[string]interface{}86if err := json.Unmarshal(jsonBytes, &pretty); err != nil {87log.Fatalf("Failed to parse JSON: %v", err)88}8990out, _ := json.MarshalIndent(pretty, "", " ")91fmt.Println(string(out))92}93
1paquet principal23import (4« contexte »5« crypto/tls »6« encoding/json »7« fmt »8« journal »9« temps »1011« google.golang.grpc »12« google.golang.grpc »13"google.golang.org/protobuf/encoding/protojson"1415pb "sui-grpc/sui/rpc/v2" // Your Generated .pb.go files path16)1718// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token19// For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678920// endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}21// token will be : abcde1234567892223var (24token = "YOUR_TOKEN_NUMBER"25endpoint = "YOUR_QN_ENDPOINT:9000"26)2728// Auth structure for x-token29type auth struct {30jeton chaîne de caractères31}3233func (a *auth) GetRequestMetadata(ctx contexte.Context, uri ...chaîne) (carte[chaîne]chaîne, erreur) {34return map[string]string{"x-token": a.token}, nil35}36func (a *auth) RequireTransportSecurity() bool {37return true38}3940func main() {41creds := credentials.NewTLS(&tls.Config{})42opts := []grpc.DialOption{43grpc.WithTransportCredentials(creds),44grpc.Avec les identifiants RPCC(&auth{token}),45}4647conn, err := grpc.Composer(endpoint, opts...)48si err != nil {49log.Fatalf("Failed to connect: %v", err)50}51reporter conn.Fermer()5253client := pb.NewMovePackageServiceClient(conn)5455packageID := "0x4897ec4008e4f6500880a547c25a6d4a26807c00ec359b4be24e6322fb2b86b5"56moduleName := "master"57datatypeName := "Metadata"5859req := &pb.GetDatatypeRequest{60PackageId: &packageID,61ModuleName: &moduleName,62Name: &datatypeName,63}6465ctx, annuler := context.WithTimeout(contexte.Arrière-plan(), 10*temps.Deuxième)66reporter annuler()6768resp, err := client.GetDatatype(ctx, req)69si err != nil {70log.Fatalf("GetDatatype failed: %v", err)71}7273// Pretty print the response74marshaler := protojson.MarshalOptions{75UseProtoNames: true,76EmitUnpopulated: true,77Indent: " ",78}7980jsonBytes, err := marshaler.Marshal(resp)81si err != nil {82log.Fatalf("Failed to marshal: %v", err)83}8485var pretty map[string]interface{}86if err := json.Unmarshal(jsonBytes, &pretty); err != nil {87log.Fatalf("Failed to parse JSON: %v", err)88}8990out, _ := json.MarshalIndent(pretty, "", " ")91fmt.Println(string(out))92}93
1import * as grpc from '@grpc/grpc-js';2import * as protoLoader from '@grpc/proto-loader';3import * as path from 'path';45// Configuration6const PROTO_PATH = path.join(__dirname, 'protos/proto/sui/rpc/v2/move_package_service.proto');78// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token9// For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678910// endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}11// token will be : abcde1234567891213const endpoint = 'docs-demo.sui-mainnet.quiknode.pro:9000';14const token = 'abcde123456789';1516// Load protobuf definitions17const packageDefinition = protoLoader.loadSync(PROTO_PATH, {18keepCase: true,19longs: String,20enums: String,21defaults: true,22oneofs: true,23includeDirs: [path.join(__dirname, 'protos/proto')],24});2526const proto = grpc.loadPackageDefinition(packageDefinition) as any;27const MovePackageService = proto.sui.rpc.v2.MovePackageService;2829// Create secure client30const client = new MovePackageService(endpoint, grpc.credentials.createSsl());3132// Add token metadata33const metadata = new grpc.Metadata();34metadata.add('x-token', token);3536// Request payload37const request = {38package_id: '0x2',39module_name: 'coin',40name: 'Coin',41};4243// Perform gRPC call44client.GetDatatype(request, metadata, (err: grpc.ServiceError | null, response: any) => {45if (err) {46console.error('gRPC Error:', {47code: err.code,48message: err.message,49details: err.details,50});51} else {52console.log('GetDatatype Response:');53console.log(JSON.stringify(response, null, 2));54}55});56
1import * as grpc from '@grpc/grpc-js';2import * as protoLoader from '@grpc/proto-loader';3import * as path from 'path';45// Configuration6const PROTO_PATH = path.join(__dirname, 'protos/proto/sui/rpc/v2/move_package_service.proto');78// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token9// For eg: QN Endpoint: https://docs-demo.sui-mainnet.quiknode.pro/abcde12345678910// endpoint will be: docs-demo.sui-mainnet.quiknode.pro:9000 {9000 is the port number for Sui gRPC}11// token will be : abcde1234567891213const endpoint = 'docs-demo.sui-mainnet.quiknode.pro:9000';14const token = 'abcde123456789';1516// Load protobuf definitions17const packageDefinition = protoLoader.loadSync(PROTO_PATH, {18keepCase: true,19longs: String,20enums: String,21defaults: true,22oneofs: true,23includeDirs: [path.join(__dirname, 'protos/proto')],24});2526const proto = grpc.loadPackageDefinition(packageDefinition) as any;27const MovePackageService = proto.sui.rpc.v2.MovePackageService;2829// Create secure client30const client = new MovePackageService(endpoint, grpc.credentials.createSsl());3132// Add token metadata33const metadata = new grpc.Metadata();34metadata.add('x-token', token);3536// Request payload37const request = {38package_id: '0x2',39module_name: 'coin',40name: 'Coin',41};4243// Perform gRPC call44client.GetDatatype(request, metadata, (err: grpc.ServiceError | null, response: any) => {45if (err) {46console.error('gRPC Error:', {47code: err.code,48message: err.message,49details: err.details,50});51} else {52console.log('GetDatatype Response:');53console.log(JSON.stringify(response, null, 2));54}55});56
1import grpc2import json3from google.protobuf.json_format import MessageToDict4from sui.rpc.v2 import move_package_service_pb2, move_package_service_pb2_grpc567def get_datatype():89# 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 = move_package_service_pb2_grpc.MovePackageServiceStub(channel)1920package_id = "0x2"21module_name = "coin"22name = "Coin"2324request = move_package_service_pb2.GetDatatypeRequest(25package_id=package_id,26module_name=module_name,27name=name28)2930metadata = [("x-token", token)]3132return stub.GetDatatype(request, metadata=metadata)333435def parse_response_to_json(response):36return json.dumps(37MessageToDict(response, preserving_proto_field_name=True),38indent=239)404142def main():43try:44response = get_datatype()45print(parse_response_to_json(response))46except grpc.RpcError as e:47print(f"{e.code().name}: {e.details()}")4849if __name__ == "__main__":50main()51
1import grpc2import json3from google.protobuf.json_format import MessageToDict4from sui.rpc.v2 import move_package_service_pb2, move_package_service_pb2_grpc567def get_datatype():89# 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 = move_package_service_pb2_grpc.MovePackageServiceStub(channel)1920package_id = "0x2"21module_name = "coin"22name = "Coin"2324request = move_package_service_pb2.GetDatatypeRequest(25package_id=package_id,26module_name=module_name,27name=name28)2930metadata = [("x-token", token)]3132return stub.GetDatatype(request, metadata=metadata)333435def parse_response_to_json(response):36return json.dumps(37MessageToDict(response, preserving_proto_field_name=True),38indent=239)404142def main():43try:44response = get_datatype()45print(parse_response_to_json(response))46except grpc.RpcError as e:47print(f"{e.code().name}: {e.details()}")4849if __name__ == "__main__":50main()51
Vous n'avez pas encore de compte ?
Créez votreendpoint Quicknode endpoint quelques secondes et commencez à développer
Commencez gratuitement