-
Notifications
You must be signed in to change notification settings - Fork 105
/
balances.go
41 lines (34 loc) · 882 Bytes
/
balances.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package node
import (
"context"
"fmt"
"github.com/rocket-pool/smartnode/shared/services"
"github.com/rocket-pool/smartnode/shared/types/api"
"github.com/urfave/cli"
)
func getNodeEthBalance(c *cli.Context) (*api.NodeEthBalanceResponse, error) {
// Get services
if err := services.RequireNodeWallet(c); err != nil {
return nil, err
}
w, err := services.GetWallet(c)
if err != nil {
return nil, err
}
ec, err := services.GetEthClient(c)
if err != nil {
return nil, err
}
// Response
response := api.NodeEthBalanceResponse{}
// Get node account
nodeAccount, err := w.GetNodeAccount()
if err != nil {
return nil, err
}
response.Balance, err = ec.BalanceAt(context.Background(), nodeAccount.Address, nil)
if err != nil {
return nil, fmt.Errorf("error getting ETH balance of node %s: %w", nodeAccount.Address.Hex(), err)
}
return &response, nil
}