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"20
var punto final = "TU_PUNTO_DE_ACceso:50051"22
tipo autenticación estructura {26
func (a *auth) GetRequestMetadata(ctx contexto.Context, uri ...cadena) (mapa[cadena]cadena, error) {27
volver mapa[cadena]cadena{32
func (a *auth) RequireTransportSecurity() bool {37
func sunToTrx(sun int64) float64 {38
return float64(sun) / 1000000.043
opts := []grpc.DialOption{44
grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),45
grpc.WithPerRPCCredentials(&auth{token}),47
conn := cliente.NewGrpcClient(punto de conexión)48
if err := conn.Start(opts...); err != nil {51
aplazar conn.Conn.Cerrar()53
from := "TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g"55
resource := core.ResourceCode_BANDWIDTH 56
frozenBalance := int64(10000000)58
resourceName := "BANDWIDTH"59
if resource == core.ResourceCode_ENERGY {60
resourceName = "ENERGY"63
fmt.Printf("Checking balance for account %s...\n", from)64
account, err := conn.GetAccount(from)66
fmt.Printf("Error getting account: %v\n", err)70
currentBalance := account.GetBalance()71
fmt.Printf("Current balance: %d SUN (%.6f TRX)\n", currentBalance, sunToTrx(currentBalance))73
if currentBalance < frozenBalance {74
fmt.Printf("Error: Insufficient balance. Have: %d SUN (%.6f TRX), Need: %d SUN (%.6f TRX)\n", 75
currentBalance, sunToTrx(currentBalance), frozenBalance, sunToTrx(frozenBalance))76
if currentBalance > 1000000 { 77
suggestedAmount := (currentBalance / 1000000) * 1000000 78
fmt.Printf("\nAdjusting freeze amount to %d SUN (%.0f TRX) based on available balance\n",79
suggestedAmount, sunToTrx(suggestedAmount))80
frozenBalance = suggestedAmount82
fmt.Println("\nYour balance is too low to freeze any meaningful amount of TRX.")83
fmt.Println("Please add more TRX to your account and try again.")89
fmt.Printf("Freezing %d SUN (%.6f TRX) to obtain %s resources for own account\n", 90
frozenBalance, sunToTrx(frozenBalance), resourceName)92
fmt.Printf("Freezing %d SUN (%.6f TRX) to delegate %s resources to account %s\n", 93
frozenBalance, sunToTrx(frozenBalance), resourceName, delegateTo)96
fmt.Println("Creating freeze balance transaction...")98
tx, err := conn.FreezeBalance(106
fmt.Printf("Error creating freeze transaction: %v\n", err)110
fmt.Println("Freeze transaction created successfully. Transaction details:")111
jsonData, _ := json.MarshalIndent(tx, "", " ")112
fmt.Println(string(jsonData))115
fmt.Println("\nBroadcasting transaction to the TRON network...")116
result, err := conn.Broadcast(tx.Transaction)118
fmt.Printf("Error broadcasting transaction: %v\n", err)122
if !result.GetResult() {123
fmt.Printf("Broadcast failed: %s\n", result.GetMessage())127
fmt.Println("TRX frozen successfully! Result:")128
resultJSON, _ := json.MarshalIndent(result, "", " ")129
fmt.Println(cadena(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"20
var punto final = "TU_PUNTO_DE_ACceso:50051"22
tipo autenticación estructura {26
func (a *auth) GetRequestMetadata(ctx contexto.Context, uri ...cadena) (mapa[cadena]cadena, error) {27
volver mapa[cadena]cadena{32
func (a *auth) RequireTransportSecurity() bool {37
func sunToTrx(sun int64) float64 {38
return float64(sun) / 1000000.043
opts := []grpc.DialOption{44
grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),45
grpc.WithPerRPCCredentials(&auth{token}),47
conn := cliente.NewGrpcClient(punto de conexión)48
if err := conn.Start(opts...); err != nil {51
aplazar conn.Conn.Cerrar()53
from := "TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g"55
resource := core.ResourceCode_BANDWIDTH 56
frozenBalance := int64(10000000)58
resourceName := "BANDWIDTH"59
if resource == core.ResourceCode_ENERGY {60
resourceName = "ENERGY"63
fmt.Printf("Checking balance for account %s...\n", from)64
account, err := conn.GetAccount(from)66
fmt.Printf("Error getting account: %v\n", err)70
currentBalance := account.GetBalance()71
fmt.Printf("Current balance: %d SUN (%.6f TRX)\n", currentBalance, sunToTrx(currentBalance))73
if currentBalance < frozenBalance {74
fmt.Printf("Error: Insufficient balance. Have: %d SUN (%.6f TRX), Need: %d SUN (%.6f TRX)\n", 75
currentBalance, sunToTrx(currentBalance), frozenBalance, sunToTrx(frozenBalance))76
if currentBalance > 1000000 { 77
suggestedAmount := (currentBalance / 1000000) * 1000000 78
fmt.Printf("\nAdjusting freeze amount to %d SUN (%.0f TRX) based on available balance\n",79
suggestedAmount, sunToTrx(suggestedAmount))80
frozenBalance = suggestedAmount82
fmt.Println("\nYour balance is too low to freeze any meaningful amount of TRX.")83
fmt.Println("Please add more TRX to your account and try again.")89
fmt.Printf("Freezing %d SUN (%.6f TRX) to obtain %s resources for own account\n", 90
frozenBalance, sunToTrx(frozenBalance), resourceName)92
fmt.Printf("Freezing %d SUN (%.6f TRX) to delegate %s resources to account %s\n", 93
frozenBalance, sunToTrx(frozenBalance), resourceName, delegateTo)96
fmt.Println("Creating freeze balance transaction...")98
tx, err := conn.FreezeBalance(106
fmt.Printf("Error creating freeze transaction: %v\n", err)110
fmt.Println("Freeze transaction created successfully. Transaction details:")111
jsonData, _ := json.MarshalIndent(tx, "", " ")112
fmt.Println(string(jsonData))115
fmt.Println("\nBroadcasting transaction to the TRON network...")116
result, err := conn.Broadcast(tx.Transaction)118
fmt.Printf("Error broadcasting transaction: %v\n", err)122
if !result.GetResult() {123
fmt.Printf("Broadcast failed: %s\n", result.GetMessage())127
fmt.Println("TRX frozen successfully! Result:")128
resultJSON, _ := json.MarshalIndent(result, "", " ")129
fmt.Println(cadena(resultJSON))