GetContractABI gRPC Method
Parameters
contractAddress
string
REQUIRED
Loading...
Returns
entrys
array
Loading...
anonymous
boolean
Loading...
constant
boolean
Loading...
name
string
Loading...
inputs
array
Loading...
indexed
boolean
Loading...
name
string
Loading...
type
string
Loading...
outputs
array
Loading...
indexed
boolean
Loading...
name
string
Loading...
type
string
Loading...
type
string
Loading...
payable
boolean
Loading...
stateMutability
string
Loading...
Request
1package main23import (4"context"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 endpoint = "YOUR_ENDPOINT:50051"2122type auth struct {23token string24}2526func (a *auth) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {27return map[string]string{28"x-token": a.token,29}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33return false34}3536func main() {3738opts := []grpc.DialOption{39grpc.WithTransportCredentials(credentials.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)51if err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57if 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}
1package main23import (4"context"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 endpoint = "YOUR_ENDPOINT:50051"2122type auth struct {23token string24}2526func (a *auth) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {27return map[string]string{28"x-token": a.token,29}, nil30}3132func (a *auth) RequireTransportSecurity() bool {33return false34}3536func main() {3738opts := []grpc.DialOption{39grpc.WithTransportCredentials(credentials.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)51if err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57if 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}
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free