/
wallets.go
126 lines (93 loc) · 3.53 KB
/
wallets.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// This file is part of Ark Go Client.
//
// (c) Ark Ecosystem <info@ark.io>
//
// For the full copyright and license information, please view the LICENSE
// file that was distributed with this source code.
package client
import (
"context"
"fmt"
"net/http"
)
// WalletsService handles communication with the wallets related
// methods of the Ark Core API - Version 2.
type WalletsService Service
// Get all wallets.
func (s *WalletsService) List(ctx context.Context, query *Pagination) (*Wallets, *http.Response, error) {
var responseStruct *Wallets
resp, err := s.client.SendRequest(ctx, "GET", "wallets", query, nil, &responseStruct)
if err != nil {
return nil, resp, err
}
return responseStruct, resp, err
}
// Get all wallets sorted by balance in descending order.
func (s *WalletsService) Top(ctx context.Context, query *Pagination) (*Wallets, *http.Response, error) {
var responseStruct *Wallets
resp, err := s.client.SendRequest(ctx, "GET", "wallets/top", query, nil, &responseStruct)
if err != nil {
return nil, resp, err
}
return responseStruct, resp, err
}
// Get a wallet by the given id. (address, publicKey and username are valid)
func (s *WalletsService) Get(ctx context.Context, id string) (*GetWallet, *http.Response, error) {
uri := fmt.Sprintf("wallets/%v", id)
var responseStruct *GetWallet
resp, err := s.client.SendRequest(ctx, "GET", uri, nil, nil, &responseStruct)
if err != nil {
return nil, resp, err
}
return responseStruct, resp, err
}
// Get all locks for the given wallet.
func (s *WalletsService) Locks(ctx context.Context, id string, query *Pagination) (*Locks, *http.Response, error) {
uri := fmt.Sprintf("wallets/%v/locks", id)
var responseStruct *Locks
resp, err := s.client.SendRequest(ctx, "GET", uri, query, nil, &responseStruct)
if err != nil {
return nil, resp, err
}
return responseStruct, resp, err
}
// Get all transactions for the given wallet.
func (s *WalletsService) Transactions(ctx context.Context, id string, query *Pagination) (*Transactions, *http.Response, error) {
uri := fmt.Sprintf("wallets/%v/transactions", id)
var responseStruct *Transactions
resp, err := s.client.SendRequest(ctx, "GET", uri, query, nil, &responseStruct)
if err != nil {
return nil, resp, err
}
return responseStruct, resp, err
}
// Get all transactions sent by the given wallet.
func (s *WalletsService) SentTransactions(ctx context.Context, id string, query *Pagination) (*Transactions, *http.Response, error) {
uri := fmt.Sprintf("wallets/%v/transactions/sent", id)
var responseStruct *Transactions
resp, err := s.client.SendRequest(ctx, "GET", uri, query, nil, &responseStruct)
if err != nil {
return nil, resp, err
}
return responseStruct, resp, err
}
// Get all transactions received by the given wallet.
func (s *WalletsService) ReceivedTransactions(ctx context.Context, id string, query *Pagination) (*Transactions, *http.Response, error) {
uri := fmt.Sprintf("wallets/%v/transactions/received", id)
var responseStruct *Transactions
resp, err := s.client.SendRequest(ctx, "GET", uri, query, nil, &responseStruct)
if err != nil {
return nil, resp, err
}
return responseStruct, resp, err
}
// Get all votes by the given wallet.
func (s *WalletsService) Votes(ctx context.Context, id string, query *Pagination) (*Transactions, *http.Response, error) {
uri := fmt.Sprintf("wallets/%v/votes", id)
var responseStruct *Transactions
resp, err := s.client.SendRequest(ctx, "GET", uri, query, nil, &responseStruct)
if err != nil {
return nil, resp, err
}
return responseStruct, resp, err
}