/
buyoffer.go
146 lines (124 loc) · 5.76 KB
/
buyoffer.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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
package atomicasset
import (
"fmt"
"github.com/eosswedenorg-go/unixtime"
)
// Types
type BuyOffer struct {
ID string `json:"buyoffer_id"`
MarketContract string `json:"market_contract"`
AssetsContract string `json:"assets_contract"`
Seller string `json:"seller"`
Buyer string `json:"buyer"`
Price Token `json:"price"`
Assets []Asset `json:"assets"`
MakerMarketplace string `json:"maker_marketplace,omitempty"`
TakerMarketplace string `json:"taker_marketplace,omitempty"`
Collection Collection `json:"collection"`
State SalesState `json:"state"`
Memo string `json:"memo"`
DeclineMemo string `json:"decline_memo"`
UpdatedAtBlock string `json:"updated_at_block"`
UpdatedAtTime unixtime.Time `json:"updated_at_time"`
CreatedAtBlock string `json:"created_at_block"`
CreatedAtTime unixtime.Time `json:"created_at_time"`
}
// Request Parameters
type BuyOfferSortColumn string
const (
BuyOfferSortCreated = BuyOfferSortColumn("created")
BuyOfferSortUpdated = BuyOfferSortColumn("updated")
BuyOfferSortID = BuyOfferSortColumn("buyoffer_id")
BuyOfferSortPrice = BuyOfferSortColumn("price")
BuyOfferSortTemplateMint = BuyOfferSortColumn("template_mint")
BuyOfferSortName = BuyOfferSortColumn("name")
)
type BuyOffersRequestParams struct {
State SalesState `qs:"state,omitempty"`
MaxAssets int `qs:"max_assets,omitempty"`
MinAssets int `qs:"min_assets,omitempty"`
ShowSellerContract string `qs:"show_seller_contract,omitempty"`
ContractBlacklist ReqList[string] `qs:"contract_blacklist,omitempty"`
ContractWhitelist ReqList[string] `qs:"contract_whitelist,omitempty"`
SellerBlacklist ReqList[string] `qs:"seller_blacklist,omitempty"`
BuyerBlacklist ReqList[string] `qs:"buyer_blacklist,omitempty"`
AssetId int `qs:"asset_id,omitempty"`
Marketplace ReqList[string] `qs:"marketplace,omitempty"`
MakerMarketplace ReqList[string] `qs:"maker_marketplace,omitempty"`
TakerMarketplace ReqList[string] `qs:"taker_marketplace,omitempty"`
Symbol string `qs:"symbol,omitempty"`
Account string `qs:"account,omitempty"`
Seller ReqList[string] `qs:"seller,omitempty"`
Buyer ReqList[string] `qs:"buyer,omitempty"`
MinPrice int `qs:"min_price,omitempty"`
MaxPrice int `qs:"max_price,omitempty"`
MinTemplateMint int `qs:"min_template_mint,omitempty"`
MaxTemplateMint int `qs:"max_template_mint,omitempty"`
CollectionName string `qs:"collection_name,omitempty"`
CollectionBlacklist ReqList[string] `qs:"collection_blacklist,omitempty"`
CollectionWhitelist ReqList[string] `qs:"collection_whitelist,omitempty"`
SchemaName string `qs:"schema_name,omitempty"`
TemplateID int `qs:"template_id,omitempty"`
Burned bool `qs:"burned,omitempty"`
Owner string `qs:"owner,omitempty"`
Match string `qs:"match,omitempty"`
Search string `qs:"search,omitempty"`
MatchImmutableName string `qs:"match_immutable_name,omitempty"`
MatchMutableName string `qs:"match_mutable_name,omitempty"`
IsTransferable bool `qs:"is_transferable,omitempty"`
IsBurnable bool `qs:"is_burnable,omitempty"`
Minter string `qs:"minter,omitempty"`
Burner string `qs:"burner,omitempty"`
InitialReceiver string `qs:"initial_receiver,omitempty"`
IDs ReqList[int] `qs:"ids,omitempty"`
LowerBound string `qs:"lower_bound,omitempty"`
UpperBound string `qs:"upper_bound,omitempty"`
Before int `qs:"before,omitempty"`
After int `qs:"after,omitempty"`
Page int `qs:"page,omitempty"`
Limit int `qs:"limit,omitempty"`
Order SortOrder `qs:"order,omitempty"`
Sort BuyOfferSortColumn `qs:"sort,omitempty"`
}
// Responses
type BuyOfferResponse struct {
APIResponse
Data BuyOffer
}
type BuyOffersResponse struct {
APIResponse
Data []BuyOffer
}
// API Client functions
// GetBuyOffer fetches "/atomicassets/v1/buyoffers/{buyoffer_id}" from API
func (c *Client) GetBuyOffer(buyoffer_id int) (BuyOfferResponse, error) {
var resp BuyOfferResponse
r, err := c.fetch("GET", fmt.Sprintf("/atomicmarket/v1/buyoffers/%d", buyoffer_id), nil, &resp.APIResponse)
if err == nil {
// Parse json
err = r.Unmarshal(&resp)
}
return resp, err
}
// GetBuyOfferLogs fetches "/atomicassets/v1/buyoffers/{buyoffer_id}/logs" from API
func (c *Client) GetBuyOfferLogs(buyoffer_id int, params LogRequestParams) (LogsResponse, error) {
var resp LogsResponse
r, err := c.fetch("GET", fmt.Sprintf("/atomicmarket/v1/buyoffers/%d/logs", buyoffer_id), params, &resp.APIResponse)
if err == nil {
// Set HTTPStatusCode
resp.HTTPStatusCode = r.StatusCode
// Parse json
err = r.Unmarshal(&resp)
}
return resp, err
}
// GetBuyOffers fetches "/atomicassets/v1/buyoffers" from API
func (c *Client) GetBuyOffers(params AuctionsRequestParams) (BuyOffersResponse, error) {
var resp BuyOffersResponse
r, err := c.fetch("GET", "/atomicmarket/v1/buyoffers", params, &resp.APIResponse)
if err == nil {
// Parse json
err = r.Unmarshal(&resp)
}
return resp, err
}