-
Notifications
You must be signed in to change notification settings - Fork 2
/
accounts.go
40 lines (35 loc) · 1014 Bytes
/
accounts.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
package xscan
import "context"
// GetErc20TokenTransfers gets a list of "ERC-20 - Token Transfer Events" by Address
func (c *Client) GetErc20TokenTransfers(ctx context.Context, address string, opts *Erc20TokenTransfersOpts) (*Erc20TokenTransfersRes, int, error) {
module := "account"
action := "tokentx"
var dataRes Erc20TokenTransfersRes
queries := make(map[string]interface{})
queries["address"] = address
if opts != nil {
if opts.StartBlock != "" {
queries["startblock"] = opts.StartBlock
}
if opts.EndBlock != "" {
queries["endblock"] = opts.EndBlock
}
if opts.Sort != "" {
queries["sort"] = opts.Sort
}
if opts.Page != "" {
queries["page"] = opts.Page
}
if opts.Offset != "" {
queries["offset"] = opts.Offset
}
if opts.ContractAddress != "" {
queries["contractaddress"] = opts.ContractAddress
}
}
statusCode, err := c.doRequest(ctx, module, action, &dataRes, queries)
if err != nil {
return nil, statusCode, err
}
return &dataRes, statusCode, nil
}