8
"github.com/fbsobreira/gotron-sdk/pkg/client"9
"google.golang.org/grpc"10
"google.golang.org/grpc/credentials"19
var token = "YOUR_TOKEN"20
var endpoint = "YOUR_ENDPOINT:50051"26
func (a *auth) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {27
return map[string]string{32
func (a *auth) RequireTransportSecurity() bool {38
opts := []grpc.DialOption{39
grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),40
grpc.WithPerRPCCredentials(&auth{token}),42
conn := client.NewGrpcClient(endpoint)43
if err := conn.Start(opts...); err != nil {46
defer conn.Conn.Close()48
contractAddress := "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"49
fmt.Printf("Fetching ABI for contract: %s\n", contractAddress)50
contractABI, err := conn.GetContractABI(contractAddress)52
log.Fatalf("Error getting contract ABI: %v\n", err)55
fmt.Println("\nContract ABI Information:")56
abiJSON, err := json.MarshalIndent(contractABI, "", " ")58
log.Printf("Error marshaling ABI to JSON: %v\n", err)60
fmt.Println(string(abiJSON))63
if contractABI.Entrys != nil && len(contractABI.Entrys) > 0 {64
fmt.Printf("\nContract has %d function entries\n", len(contractABI.Entrys))66
if len(contractABI.Entrys) < maxFunctions {67
maxFunctions = len(contractABI.Entrys)70
fmt.Println("\nFunction Overview:")71
for i := 0; i < maxFunctions; i++ {72
entry := contractABI.Entrys[i]73
fmt.Printf("%d. Name: %s, Type: %s\n", i+1, entry.Name, entry.Type)74
if len(entry.Inputs) > 0 {75
fmt.Print(" Parameters: ")76
for j, input := range entry.Inputs {77
fmt.Printf("%s (%s)", input.Name, input.Type)78
if j < len(entry.Inputs)-1 {84
if len(entry.Outputs) > 0 {85
fmt.Print(" Returns: ")86
for j, output := range entry.Outputs {87
fmt.Printf("%s (%s)", output.Name, output.Type)88
if j < len(entry.Outputs)-1 {96
if len(contractABI.Entrys) > maxFunctions {97
fmt.Printf("\n... and %d more functions\n", len(contractABI.Entrys)-maxFunctions)100
fmt.Println("No function entries found in this contract's ABI.")
8
"github.com/fbsobreira/gotron-sdk/pkg/client"9
"google.golang.org/grpc"10
"google.golang.org/grpc/credentials"19
var token = "YOUR_TOKEN"20
var endpoint = "YOUR_ENDPOINT:50051"26
func (a *auth) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {27
return map[string]string{32
func (a *auth) RequireTransportSecurity() bool {38
opts := []grpc.DialOption{39
grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),40
grpc.WithPerRPCCredentials(&auth{token}),42
conn := client.NewGrpcClient(endpoint)43
if err := conn.Start(opts...); err != nil {46
defer conn.Conn.Close()48
contractAddress := "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"49
fmt.Printf("Fetching ABI for contract: %s\n", contractAddress)50
contractABI, err := conn.GetContractABI(contractAddress)52
log.Fatalf("Error getting contract ABI: %v\n", err)55
fmt.Println("\nContract ABI Information:")56
abiJSON, err := json.MarshalIndent(contractABI, "", " ")58
log.Printf("Error marshaling ABI to JSON: %v\n", err)60
fmt.Println(string(abiJSON))63
if contractABI.Entrys != nil && len(contractABI.Entrys) > 0 {64
fmt.Printf("\nContract has %d function entries\n", len(contractABI.Entrys))66
if len(contractABI.Entrys) < maxFunctions {67
maxFunctions = len(contractABI.Entrys)70
fmt.Println("\nFunction Overview:")71
for i := 0; i < maxFunctions; i++ {72
entry := contractABI.Entrys[i]73
fmt.Printf("%d. Name: %s, Type: %s\n", i+1, entry.Name, entry.Type)74
if len(entry.Inputs) > 0 {75
fmt.Print(" Parameters: ")76
for j, input := range entry.Inputs {77
fmt.Printf("%s (%s)", input.Name, input.Type)78
if j < len(entry.Inputs)-1 {84
if len(entry.Outputs) > 0 {85
fmt.Print(" Returns: ")86
for j, output := range entry.Outputs {87
fmt.Printf("%s (%s)", output.Name, output.Type)88
if j < len(entry.Outputs)-1 {96
if len(contractABI.Entrys) > maxFunctions {97
fmt.Printf("\n... and %d more functions\n", len(contractABI.Entrys)-maxFunctions)100
fmt.Println("No function entries found in this contract's ABI.")