GetContractABI gRPC Method
매개변수
contractAddress
문자열
필수
로딩 중...
반품
entrys
배열
로딩 중...
anonymous
부울
로딩 중...
constant
부울
로딩 중...
이름
문자열
로딩 중...
입력값
배열
로딩 중...
indexed
부울
로딩 중...
이름
문자열
로딩 중...
유형
문자열
로딩 중...
outputs
배열
로딩 중...
indexed
부울
로딩 중...
이름
문자열
로딩 중...
유형
문자열
로딩 중...
유형
문자열
로딩 중...
payable
부울
로딩 중...
stateMutability
문자열
로딩 중...
요청
1패키지 main23import (4"문맥"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"로그"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)51만약 err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57만약 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}
1패키지 main23import (4"문맥"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"로그"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)51만약 err != nil {52log.Fatalf("Error getting contract ABI: %v\n", err)53}5455fmt.Println("\nContract ABI Information:")56abiJSON, err := json.MarshalIndent(contractABI, "", " ")57만약 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}