GetContractABI gRPC Method
Paramètres
contractAddress
chaîne de caractères
OBLIGATOIRE
Chargement en cours...
Retours
entrys
tableau
Chargement en cours...
anonymous
booléen
Chargement en cours...
constant
booléen
Chargement en cours...
nom
chaîne de caractères
Chargement en cours...
inputs
tableau
Chargement en cours...
indexed
booléen
Chargement en cours...
nom
chaîne de caractères
Chargement en cours...
type
chaîne de caractères
Chargement en cours...
outputs
tableau
Chargement en cours...
indexed
booléen
Chargement en cours...
nom
chaîne de caractères
Chargement en cours...
type
chaîne de caractères
Chargement en cours...
type
chaîne de caractères
Chargement en cours...
payable
booléen
Chargement en cours...
stateMutability
chaîne de caractères
Chargement en cours...
Demande
1paquet principal23import (4« contexte »5« crypto/tls »6« encoding/json »7« fmt »8« github.sdk »9« google.golang.grpc »10« google.golang.grpc »11« journal »12)1314// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token15// For eg: QN Endpoint: https://docs-demo.tron-mainnet.quiknode.pro/abcde12345678916// endpoint will be: docs-demo.tron-mainnet.quiknode.pro:50051 {50051 is the port number for Tron gRPC}17// token will be : abcde1234567891819var jeton = "VOTRE_TOKEN"20var endpoint = "VOTRE_POINT_DE_FIN :50051"2122type auth struct {23jeton chaîne de caractères24}2526func (a *auth) GetRequestMetadata(ctx contexte.Context, uri ...chaîne) (carte[chaîne]chaîne, erreur) {27retour carte[chaîne]chaîne{28« x-token »: un.jeton,29}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33retour false34}3536func main() {3738opts := []grpc.DialOption{39grpc.WithTransportCredentials(informations d'authentification.NewTLS(&tls.Config{})),40grpc.Avec les identifiants RPCC(&auth{token}),41}42conn := client.NewGrpcClient(endpoint)43if err := conn.Start(opts...); err != nil {44panique(erreur)45}46reporter conn.Conn.Fermer()4748contractAddress := "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"49fmt.Printf("Fetching ABI for contract: %s\n", contractAddress)50contractABI, err := conn.GetContractABI(contractAddress)51si err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57si err != nil {58log.Printf("Error marshaling ABI to JSON: %v\n", err)59} sinon {60fmt.Println(string(abiJSON))61}6263if contractABI.Entrys != nil && len(contractABI.Entrys) > 0 {64fmt.Printf("\nContract has %d function entries\n", len(contractABI.Entrys))65maxFunctions := 566if len(contractABI.Entrys) < maxFunctions {67maxFunctions = len(contractABI.Entrys)68}6970fmt.Println("\nFunction Overview:")71for i := 0; i < maxFunctions; i++ {72entry := contractABI.Entrys[i]73fmt.Printf("%d. Name: %s, Type: %s\n", i+1, entry.Name, entry.Type)74if len(entry.Inputs) > 0 {75fmt.Print(" Parameters: ")76for j, input := range entry.Inputs {77fmt.Printf("%s (%s)", input.Name, input.Type)78if j < len(entry.Inputs)-1 {79fmt.Print(", ")80}81}82fmt.Println()83}84if len(entry.Outputs) > 0 {85fmt.Print(" Returns: ")86for j, output := range entry.Outputs {87fmt.Printf("%s (%s)", output.Name, output.Type)88if j < len(entry.Outputs)-1 {89fmt.Print(", ")90}91}92fmt.Println()93}94}9596if len(contractABI.Entrys) > maxFunctions {97fmt.Printf("\n... and %d more functions\n", len(contractABI.Entrys)-maxFunctions)98}99} sinon {100fmt.Println("No function entries found in this contract's ABI.")101}102}
1paquet principal23import (4« contexte »5« crypto/tls »6« encoding/json »7« fmt »8« github.sdk »9« google.golang.grpc »10« google.golang.grpc »11« journal »12)1314// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token15// For eg: QN Endpoint: https://docs-demo.tron-mainnet.quiknode.pro/abcde12345678916// endpoint will be: docs-demo.tron-mainnet.quiknode.pro:50051 {50051 is the port number for Tron gRPC}17// token will be : abcde1234567891819var jeton = "VOTRE_TOKEN"20var endpoint = "VOTRE_POINT_DE_FIN :50051"2122type auth struct {23jeton chaîne de caractères24}2526func (a *auth) GetRequestMetadata(ctx contexte.Context, uri ...chaîne) (carte[chaîne]chaîne, erreur) {27retour carte[chaîne]chaîne{28« x-token »: un.jeton,29}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33retour false34}3536func main() {3738opts := []grpc.DialOption{39grpc.WithTransportCredentials(informations d'authentification.NewTLS(&tls.Config{})),40grpc.Avec les identifiants RPCC(&auth{token}),41}42conn := client.NewGrpcClient(endpoint)43if err := conn.Start(opts...); err != nil {44panique(erreur)45}46reporter conn.Conn.Fermer()4748contractAddress := "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"49fmt.Printf("Fetching ABI for contract: %s\n", contractAddress)50contractABI, err := conn.GetContractABI(contractAddress)51si err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57si err != nil {58log.Printf("Error marshaling ABI to JSON: %v\n", err)59} sinon {60fmt.Println(string(abiJSON))61}6263if contractABI.Entrys != nil && len(contractABI.Entrys) > 0 {64fmt.Printf("\nContract has %d function entries\n", len(contractABI.Entrys))65maxFunctions := 566if len(contractABI.Entrys) < maxFunctions {67maxFunctions = len(contractABI.Entrys)68}6970fmt.Println("\nFunction Overview:")71for i := 0; i < maxFunctions; i++ {72entry := contractABI.Entrys[i]73fmt.Printf("%d. Name: %s, Type: %s\n", i+1, entry.Name, entry.Type)74if len(entry.Inputs) > 0 {75fmt.Print(" Parameters: ")76for j, input := range entry.Inputs {77fmt.Printf("%s (%s)", input.Name, input.Type)78if j < len(entry.Inputs)-1 {79fmt.Print(", ")80}81}82fmt.Println()83}84if len(entry.Outputs) > 0 {85fmt.Print(" Returns: ")86for j, output := range entry.Outputs {87fmt.Printf("%s (%s)", output.Name, output.Type)88if j < len(entry.Outputs)-1 {89fmt.Print(", ")90}91}92fmt.Println()93}94}9596if len(contractABI.Entrys) > maxFunctions {97fmt.Printf("\n... and %d more functions\n", len(contractABI.Entrys)-maxFunctions)98}99} sinon {100fmt.Println("No function entries found in this contract's ABI.")101}102}
Vous n'avez pas encore de compte ?
Créez votreendpoint Quicknode endpoint quelques secondes et commencez à développer
Commencez gratuitement