GetContractABI gRPC Method
Parameter
contractAddress
Zeichenkette
ERFORDERLICH
Wird geladen...
Rücksendungen
entrys
Array
Wird geladen...
anonymous
boolesch
Wird geladen...
constant
boolesch
Wird geladen...
Name
Zeichenkette
Wird geladen...
inputs
Array
Wird geladen...
indexed
boolesch
Wird geladen...
Name
Zeichenkette
Wird geladen...
Typ
Zeichenkette
Wird geladen...
outputs
Array
Wird geladen...
indexed
boolesch
Wird geladen...
Name
Zeichenkette
Wird geladen...
Typ
Zeichenkette
Wird geladen...
Typ
Zeichenkette
Wird geladen...
payable
boolesch
Wird geladen...
stateMutability
Zeichenkette
Wird geladen...
Anfrage
1Paket Hauptteil23import (4„Kontext“5„crypto/tls“6"encoding/json"7„fmt“8"github.com/fbsobreira/gotron-sdk/pkg/client"9"google.golang.org/grpc"10"google.golang.org/grpc/credentials"11„log“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 Token = "YOUR_TOKEN"20var Endpunkt = "YOUR_ENDPOINT:50051"2122Typ auth Struktur {23Token Zeichenkette24}2526func (a *auth) GetRequestMetadata(ctx Kontext.Context, uri ...Zeichenkette) (map[Zeichenkette]Zeichenkette, Fehler) {27Zurück map[Zeichenkette]Zeichenkette{28„x-token“: ein.Token,29}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33Zurück false34}3536func main() {3738opts := []grpc.DialOption{39grpc.WithTransportCredentials(Anmeldedaten.NewTLS(&tls.Config{})),40grpc.Mit RPCC-Anmeldedaten(&auth{Token}),41}42conn := Client.NewGrpcClient(Endpunkt)43if err := conn.Start(opts...); err != nil {44Panik(ähm)45}46aufschieben conn.Conn.Schließen()4748contractAddress := "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"49fmt.Printf("Fetching ABI for contract: %s\n", contractAddress)50contractABI, err := conn.GetContractABI(contractAddress)51wenn err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57wenn err != nil {58log.Printf("Error marshaling ABI to JSON: %v\n", err)59} else {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} else {100fmt.Println("No function entries found in this contract's ABI.")101}102}
1Paket Hauptteil23import (4„Kontext“5„crypto/tls“6"encoding/json"7„fmt“8"github.com/fbsobreira/gotron-sdk/pkg/client"9"google.golang.org/grpc"10"google.golang.org/grpc/credentials"11„log“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 Token = "YOUR_TOKEN"20var Endpunkt = "YOUR_ENDPOINT:50051"2122Typ auth Struktur {23Token Zeichenkette24}2526func (a *auth) GetRequestMetadata(ctx Kontext.Context, uri ...Zeichenkette) (map[Zeichenkette]Zeichenkette, Fehler) {27Zurück map[Zeichenkette]Zeichenkette{28„x-token“: ein.Token,29}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33Zurück false34}3536func main() {3738opts := []grpc.DialOption{39grpc.WithTransportCredentials(Anmeldedaten.NewTLS(&tls.Config{})),40grpc.Mit RPCC-Anmeldedaten(&auth{Token}),41}42conn := Client.NewGrpcClient(Endpunkt)43if err := conn.Start(opts...); err != nil {44Panik(ähm)45}46aufschieben conn.Conn.Schließen()4748contractAddress := "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"49fmt.Printf("Fetching ABI for contract: %s\n", contractAddress)50contractABI, err := conn.GetContractABI(contractAddress)51wenn err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57wenn err != nil {58log.Printf("Error marshaling ABI to JSON: %v\n", err)59} else {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} else {100fmt.Println("No function entries found in this contract's ABI.")101}102}
Haben Sie noch kein Konto?
Erstellen Sie Ihren Quicknode-Endpunkt in Sekundenschnelle und legen Sie los
Kostenlos loslegen