Skip to main content

GetNextMaintenanceTime gRPC Method

Loading...

Updated on
May 13, 2025

GetNextMaintenanceTime gRPC Method

Parameters

This method does not accept any parameters

Returns

num
integer
Loading...
Request
1
package main
2
3
import (
4
"context"
5
"crypto/tls"
6
"fmt"
7
"github.com/fbsobreira/gotron-sdk/pkg/client"
8
"google.golang.org/grpc"
9
"google.golang.org/grpc/credentials"
10
"log"
11
"time"
12
)
13
14
// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token
15
// For eg: QN Endpoint: https://docs-demo.tron-mainnet.quiknode.pro/abcde123456789
16
// endpoint will be: docs-demo.tron-mainnet.quiknode.pro:50051 {50051 is the port number for Tron gRPC}
17
// token will be : abcde123456789
18
19
var token = "YOUR_TOKEN"
20
var endpoint = "YOUR_ENDPOINT:50051"
21
22
type auth struct {
23
token string
24
}
25
26
func (a *auth) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) {
27
return map[string]string{
28
"x-token": a.token,
29
}, nil
30
}
31
32
func (a *auth) RequireTransportSecurity() bool {
33
return false
34
}
35
36
func main() {
37
38
opts := []grpc.DialOption{
39
grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),
40
grpc.WithPerRPCCredentials(&auth{token}),
41
}
42
conn := client.NewGrpcClient(endpoint)
43
if err := conn.Start(opts...); err != nil {
44
panic(err)
45
}
46
defer conn.Conn.Close()
47
48
fmt.Println("Fetching next maintenance time information...")
49
maintenanceTimeInfo, err := conn.GetNextMaintenanceTime()
50
if err != nil {
51
log.Fatalf("Error getting next maintenance time: %v\n", err)
52
}
53
nextMaintenanceTime := maintenanceTimeInfo.GetNum()
54
if nextMaintenanceTime > 0 {
55
// TRON timestamps are in milliseconds
56
maintenanceDate := time.Unix(nextMaintenanceTime/1000, 0)
57
fmt.Println("\nNext Maintenance Time Information:")
58
fmt.Printf("Timestamp: %d\n", nextMaintenanceTime)
59
fmt.Printf("Date and Time: %s\n", maintenanceDate.Format(time.RFC1123))
60
// Calculate time until maintenance
61
62
now := time.Now()
63
timeUntil := maintenanceDate.Sub(now)
64
if timeUntil > 0 {
65
days := int(timeUntil.Hours() / 24)
66
hours := int(timeUntil.Hours()) % 24
67
minutes := int(timeUntil.Minutes()) % 60
68
fmt.Printf("Time until maintenance: %d days, %d hours, %d minutes\n", days, hours, minutes)
69
} else {
70
fmt.Println("Maintenance time has already passed. The next maintenance time may not be updated yet.")
71
}
72
} else {
73
fmt.Println("No maintenance time information available.")
74
}
75
fmt.Println("\nNote: TRON network conducts regular maintenance to implement updates and improvements.")
76
}
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free