-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAddress.go
84 lines (73 loc) · 1.95 KB
/
Address.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
package blockchain
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
)
type Address struct {
apiV1URL string
logger func(string)
}
func NewAddress(config SDKConfig) *Address {
return &Address{
apiV1URL: config.BaseAPIURL,
logger: func(arg string) { log.Println(arg) },
}
}
func (a *Address) GetAddressBalance(address string) (*AddressBalance, error) {
url := fmt.Sprintf("%s/address/state/%s", a.apiV1URL, address)
data, err := a.get(url)
if err != nil {
return nil, err
}
// Parse the data into AddressBalance struct if needed
return &AddressBalance{}, nil
}
func (a *Address) GetAddressTransactions(address string) (*AddressTransactions, error) {
url := fmt.Sprintf("%s/address/transactions/%s", a.apiV1URL, address)
data, err := a.get(url)
if err != nil {
return nil, err
}
// Parse the data into AddressTransactions struct if needed
return &AddressTransactions{}, nil
}
func (a *Address) GetUnconfirmedAddressTransactions(address string) (*AddressTransactions, error) {
url := fmt.Sprintf("%s/address/unconfirmed/transactions/%s", a.apiV1URL, address)
data, err := a.get(url)
if err != nil {
return nil, err
}
// Parse the data into AddressTransactions struct if needed
return &AddressTransactions{}, nil
}
func (a *Address) GetAddressUTXO(address string) (*AddressUTXOs, error) {
url := fmt.Sprintf("%s/address/unconfirmed/transactions/%s", a.apiV1URL, address)
data, err := a.get(url)
if err != nil {
return nil, err
}
// Parse the data into AddressUTXOs struct if needed
return &AddressUTXOs{}, nil
}
func (a *Address) get(url string) (interface{}, error) {
resp, err := http.Get(url)
if err != nil {
a.logger(err.Error())
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
a.logger(err.Error())
return nil, err
}
var data interface{}
if err := json.Unmarshal(body, &data); err != nil {
a.logger(err.Error())
return nil, err
}
return data, nil
}