GetContractABI gRPC Method
Parâmetros
contractAddress
cadeia de caracteres
OBRIGATÓRIO
Carregando...
Devoluções
entrys
matriz
Carregando...
anonymous
booleano
Carregando...
constant
booleano
Carregando...
nome
cadeia de caracteres
Carregando...
inputs
matriz
Carregando...
indexado
booleano
Carregando...
nome
cadeia de caracteres
Carregando...
tipo
cadeia de caracteres
Carregando...
outputs
matriz
Carregando...
indexado
booleano
Carregando...
nome
cadeia de caracteres
Carregando...
tipo
cadeia de caracteres
Carregando...
tipo
cadeia de caracteres
Carregando...
payable
booleano
Carregando...
stateMutability
cadeia de caracteres
Carregando...
Pedido
1pacote principal23importar (4"contexto"5"crypto/tls"6"encoding/json"7"fmt"8"github.com/fbsobreira/gotron-sdk/pkg/client"9"google.golang.grpc"10"google.golang.grpc"11"registo"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 = "O_SEU_TOKEN"20var endpoint = "YOUR_ENDPOINT:50051"2122tipo auth estrutura {23token cadeia de caracteres24}2526func (a *auth) GetRequestMetadata(ctx contexto.Context, uri ...string) (mapa[string]cadeia de caracteres, erro) {27retornar mapa[string]string{28«x-token»: um.token,29}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33retornar false34}3536func main() {3738opts := []grpc.DialOption{39grpc.WithTransportCredentials(credenciais.NewTLS(&tls.Config{})),40grpc.WithPerRPCCredentials(&auth{token}),41}42conn := client.NewGrpcClient(endpoint)43if err := conn.Start(opts...); err != nil {44panic(err)45}46defer conn.Conn.Close()4748contractAddress := "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"49fmt.Printf("Fetching ABI for contract: %s\n", contractAddress)50contractABI, err := conn.GetContractABI(contractAddress)51se err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57se err != nil {58log.Printf("Error marshaling ABI to JSON: %v\n", err)59} caso contrário {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} caso contrário {100fmt.Println("No function entries found in this contract's ABI.")101}102}
1pacote principal23importar (4"contexto"5"crypto/tls"6"encoding/json"7"fmt"8"github.com/fbsobreira/gotron-sdk/pkg/client"9"google.golang.grpc"10"google.golang.grpc"11"registo"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 = "O_SEU_TOKEN"20var endpoint = "YOUR_ENDPOINT:50051"2122tipo auth estrutura {23token cadeia de caracteres24}2526func (a *auth) GetRequestMetadata(ctx contexto.Context, uri ...string) (mapa[string]cadeia de caracteres, erro) {27retornar mapa[string]string{28«x-token»: um.token,29}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33retornar false34}3536func main() {3738opts := []grpc.DialOption{39grpc.WithTransportCredentials(credenciais.NewTLS(&tls.Config{})),40grpc.WithPerRPCCredentials(&auth{token}),41}42conn := client.NewGrpcClient(endpoint)43if err := conn.Start(opts...); err != nil {44panic(err)45}46defer conn.Conn.Close()4748contractAddress := "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"49fmt.Printf("Fetching ABI for contract: %s\n", contractAddress)50contractABI, err := conn.GetContractABI(contractAddress)51se err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57se err != nil {58log.Printf("Error marshaling ABI to JSON: %v\n", err)59} caso contrário {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} caso contrário {100fmt.Println("No function entries found in this contract's ABI.")101}102}
Ainda não tem uma conta?
Crieendpoint seuendpoint Quicknode endpoint segundos e comece a desenvolver
Comece gratuitamente