8
"github.com/fbsobreira/gotron-sdk/pkg/client"9
"github.com/fbsobreira/gotron-sdk/pkg/proto/core"10
"google.golang.org/grpc"11
"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 {37
func sunToTrx(sun int64) float64 {38
return float64(sun) / 1000000.051
opts := []grpc.DialOption{52
grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),53
grpc.WithPerRPCCredentials(&auth{token}),55
conn := client.NewGrpcClient(endpoint)56
if err := conn.Start(opts...); err != nil {59
defer conn.Conn.Close()61
from := "TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g" 62
resource := core.ResourceCode_BANDWIDTH 63
frozenBalance := int64(10000000) 65
resourceName := "BANDWIDTH"66
if resource == core.ResourceCode_ENERGY {67
resourceName = "ENERGY"70
fmt.Printf("Checking balance for account %s...\n", from)71
account, err := conn.GetAccount(from)73
fmt.Printf("Error getting account: %v\n", err)77
currentBalance := account.GetBalance()78
fmt.Printf("Current balance: %d SUN (%.6f TRX)\n", currentBalance, sunToTrx(currentBalance))80
if currentBalance < frozenBalance {81
fmt.Printf("Error: Insufficient balance. Have: %d SUN (%.6f TRX), Need: %d SUN (%.6f TRX)\n", 82
currentBalance, sunToTrx(currentBalance), frozenBalance, sunToTrx(frozenBalance))83
if currentBalance > 1000000 { 84
suggestedAmount := (currentBalance / 1000000) * 1000000 85
fmt.Printf("\nAdjusting freeze amount to %d SUN (%.0f TRX) based on available balance\n",86
suggestedAmount, sunToTrx(suggestedAmount))87
frozenBalance = suggestedAmount89
fmt.Println("\nYour balance is too low to freeze any meaningful amount of TRX.")90
fmt.Println("Please add more TRX to your account and try again.")95
fmt.Printf("Freezing %d SUN (%.6f TRX) to obtain %s resources\n", 96
frozenBalance, sunToTrx(frozenBalance), resourceName)98
fmt.Println("Creating freeze balance V2 transaction...")100
tx, err := conn.FreezeBalanceV2(107
fmt.Printf("Error creating freeze transaction: %v\n", err)111
fmt.Println("Freeze transaction created successfully. Transaction details:")112
jsonData, _ := json.MarshalIndent(tx, "", " ")113
fmt.Println(string(jsonData))116
fmt.Println("\nBroadcasting transaction to the TRON network...")117
result, err := conn.Broadcast(tx.Transaction)119
fmt.Printf("Error broadcasting transaction: %v\n", err)123
if !result.GetResult() {124
fmt.Printf("Broadcast failed: %s\n", result.GetMessage())128
fmt.Println("TRX frozen successfully using V2! Result:")129
resultJSON, _ := json.MarshalIndent(result, "", " ")130
fmt.Println(string(resultJSON))
8
"github.com/fbsobreira/gotron-sdk/pkg/client"9
"github.com/fbsobreira/gotron-sdk/pkg/proto/core"10
"google.golang.org/grpc"11
"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 {37
func sunToTrx(sun int64) float64 {38
return float64(sun) / 1000000.051
opts := []grpc.DialOption{52
grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),53
grpc.WithPerRPCCredentials(&auth{token}),55
conn := client.NewGrpcClient(endpoint)56
if err := conn.Start(opts...); err != nil {59
defer conn.Conn.Close()61
from := "TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g" 62
resource := core.ResourceCode_BANDWIDTH 63
frozenBalance := int64(10000000) 65
resourceName := "BANDWIDTH"66
if resource == core.ResourceCode_ENERGY {67
resourceName = "ENERGY"70
fmt.Printf("Checking balance for account %s...\n", from)71
account, err := conn.GetAccount(from)73
fmt.Printf("Error getting account: %v\n", err)77
currentBalance := account.GetBalance()78
fmt.Printf("Current balance: %d SUN (%.6f TRX)\n", currentBalance, sunToTrx(currentBalance))80
if currentBalance < frozenBalance {81
fmt.Printf("Error: Insufficient balance. Have: %d SUN (%.6f TRX), Need: %d SUN (%.6f TRX)\n", 82
currentBalance, sunToTrx(currentBalance), frozenBalance, sunToTrx(frozenBalance))83
if currentBalance > 1000000 { 84
suggestedAmount := (currentBalance / 1000000) * 1000000 85
fmt.Printf("\nAdjusting freeze amount to %d SUN (%.0f TRX) based on available balance\n",86
suggestedAmount, sunToTrx(suggestedAmount))87
frozenBalance = suggestedAmount89
fmt.Println("\nYour balance is too low to freeze any meaningful amount of TRX.")90
fmt.Println("Please add more TRX to your account and try again.")95
fmt.Printf("Freezing %d SUN (%.6f TRX) to obtain %s resources\n", 96
frozenBalance, sunToTrx(frozenBalance), resourceName)98
fmt.Println("Creating freeze balance V2 transaction...")100
tx, err := conn.FreezeBalanceV2(107
fmt.Printf("Error creating freeze transaction: %v\n", err)111
fmt.Println("Freeze transaction created successfully. Transaction details:")112
jsonData, _ := json.MarshalIndent(tx, "", " ")113
fmt.Println(string(jsonData))116
fmt.Println("\nBroadcasting transaction to the TRON network...")117
result, err := conn.Broadcast(tx.Transaction)119
fmt.Printf("Error broadcasting transaction: %v\n", err)123
if !result.GetResult() {124
fmt.Printf("Broadcast failed: %s\n", result.GetMessage())128
fmt.Println("TRX frozen successfully using V2! Result:")129
resultJSON, _ := json.MarshalIndent(result, "", " ")130
fmt.Println(string(resultJSON))