Skip to content
This repository was archived by the owner on Dec 11, 2024. It is now read-only.

Commit 9b4605d

Browse files
authored
Merge pull request #19 from Kucoin/dev
Update API For August
2 parents a4c561e + f19b383 commit 9b4605d

File tree

13 files changed

+172
-33
lines changed

13 files changed

+172
-33
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,9 @@ if err != nil {
164164
return
165165
}
166166

167-
ch1 := kumex.NewSubscribeMessage("/contractMarket/ticker:XBTUSDM", false)
168-
ch2 := kumex.NewSubscribeMessage("/contractMarket/ticker:XBTUSDM", false)
169-
uch := kumex.NewUnsubscribeMessage("/contractMarket/ticker:XBTUSDM", false)
167+
ch1 := kumex.NewSubscribeMessage("/contractMarket/ticker:XBTUSDTM", false)
168+
ch2 := kumex.NewSubscribeMessage("/contractMarket/ticker:XBTUSDTM", false)
169+
uch := kumex.NewUnsubscribeMessage("/contractMarket/ticker:XBTUSDTM", false)
170170

171171
if err := c.Subscribe(ch1, ch2); err != nil {
172172
// Handle error
@@ -191,15 +191,15 @@ for {
191191
log.Printf("Ticker: %s, %s, %s, %s", msg.Topic, t.Sequence, t.Price, t.Size)
192192
i++
193193
if i == 5 {
194-
log.Println("Unsubscribe XBTUSDM")
194+
log.Println("Unsubscribe XBTUSDTM")
195195
if err = c.Unsubscribe(uch); err != nil {
196196
log.Printf("Error: %s", err.Error())
197197
// Handle error
198198
return
199199
}
200200
}
201201
if i == 10 {
202-
log.Println("Subscribe XBTUSDM")
202+
log.Println("Subscribe XBTUSDTM")
203203
if err = c.Subscribe(ch2); err != nil {
204204
log.Printf("Error: %s", err.Error())
205205
// Handle error

contracts_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func TestApiService_Contracts(t *testing.T) {
3636
t.SkipNow()
3737

3838
s := NewApiServiceFromEnv()
39-
rsp, err := s.Contracts("XBTUSDM")
39+
rsp, err := s.Contracts("XBTUSDTM")
4040
if err != nil {
4141
t.Fatal(err)
4242
}

examples/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,9 @@ func publicWebsocket(s *kumex.ApiService) {
9595
return
9696
}
9797

98-
ch1 := kumex.NewSubscribeMessage("/contract/instrument:XBTUSDM", false)
99-
ch2 := kumex.NewSubscribeMessage("/contractMarket/level3:XBTUSDM", false)
100-
//uch := kumex.NewUnsubscribeMessage("/contractMarket/ticker:XBTUSDM", false)
98+
ch1 := kumex.NewSubscribeMessage("/contract/instrument:XBTUSDTM", false)
99+
ch2 := kumex.NewSubscribeMessage("/contractMarket/level3:XBTUSDTM", false)
100+
//uch := kumex.NewUnsubscribeMessage("/contractMarket/ticker:XBTUSDTM", false)
101101

102102
if err := c.Subscribe(ch1, ch2); err != nil {
103103
// Handle error
@@ -138,7 +138,7 @@ func privateWebsocket(s *kumex.ApiService) {
138138
return
139139
}
140140

141-
ch1 := kumex.NewSubscribeMessage("/contract/position:XBTUSDM", false)
141+
ch1 := kumex.NewSubscribeMessage("/contract/position:XBTUSDTM", false)
142142
ch2 := kumex.NewSubscribeMessage("/contractAccount/wallet", false)
143143

144144
log.Println(kumex.ToJsonString(ch1))

fill_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func TestApiService_OpenOrderStatistics(t *testing.T) {
6969
t.SkipNow()
7070

7171
s := NewApiServiceFromEnv()
72-
rsp, err := s.OpenOrderStatistics("XBTUSDM")
72+
rsp, err := s.OpenOrderStatistics("XBTUSDTM")
7373
if err != nil {
7474
t.Fatal(err)
7575
}

funding_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import "testing"
44

55
func TestApiService_FundingHistory(t *testing.T) {
66
s := NewApiServiceFromEnv()
7-
rsp, err := s.FundingHistory(map[string]string{"symbol": "XBTUSDM"})
7+
rsp, err := s.FundingHistory(map[string]string{"symbol": "XBTUSDTM"})
88
if err != nil {
99
t.Fatal(err)
1010
}

kline_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
func TestApiService_KLines(t *testing.T) {
99
s := NewApiServiceFromEnv()
10-
rsp, err := s.KLines("XBTUSDM", "5", time.Now().UnixNano()/1e6-7*24*3600, time.Now().UnixNano()/1e6)
10+
rsp, err := s.KLines("XBTUSDTM", "5", time.Now().UnixNano()/1e6-7*24*3600, time.Now().UnixNano()/1e6)
1111
if err != nil {
1212
t.Fatal(err)
1313
}

market.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,3 +238,25 @@ func (as *ApiService) TradeStatistics() (*ApiResponse, error) {
238238
req := NewRequest(http.MethodGet, "/api/v1/trade-statistics", nil)
239239
return as.Call(req)
240240
}
241+
242+
type AllTickersModel []TickerItem
243+
244+
type TickerItem struct {
245+
Sequence int64 `json:"sequence"`
246+
Symbol string `json:"symbol"`
247+
Side string `json:"side"`
248+
Size int `json:"size"`
249+
TradeID string `json:"tradeId"`
250+
Price string `json:"price"`
251+
BestBidPrice string `json:"bestBidPrice"`
252+
BestBidSize int `json:"bestBidSize"`
253+
BestAskPrice string `json:"bestAskPrice"`
254+
BestAskSize int `json:"bestAskSize"`
255+
Timestamp int64 `json:"ts"`
256+
}
257+
258+
// AllTickers Get Latest Ticker for All Contracts
259+
func (as *ApiService) AllTickers() (*ApiResponse, error) {
260+
req := NewRequest(http.MethodGet, "/api/v1/allTickers", nil)
261+
return as.Call(req)
262+
}

market_test.go

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66

77
func TestApiService_TickerLevel1(t *testing.T) {
88
s := NewApiServiceFromEnv()
9-
rsp, err := s.Ticker("XBTUSDM")
9+
rsp, err := s.Ticker("XBTUSDTM")
1010
if err != nil {
1111
t.Fatal(err)
1212
}
@@ -35,7 +35,7 @@ func TestApiService_TickerLevel1(t *testing.T) {
3535

3636
func TestApiService_Level2Snapshot(t *testing.T) {
3737
s := NewApiServiceFromEnv()
38-
rsp, err := s.Level2Snapshot("XBTUSDM")
38+
rsp, err := s.Level2Snapshot("XBTUSDTM")
3939
if err != nil {
4040
t.Fatal(err)
4141
}
@@ -62,7 +62,7 @@ func TestApiService_Level2Snapshot(t *testing.T) {
6262

6363
func TestApiService_Level2MessageQuery(t *testing.T) {
6464
s := NewApiServiceFromEnv()
65-
rsp, err := s.Level2MessageQuery("XBTUSDM", 1, 20)
65+
rsp, err := s.Level2MessageQuery("XBTUSDTM", 1, 20)
6666
if err != nil {
6767
t.Fatal(err)
6868
}
@@ -85,7 +85,7 @@ func TestApiService_Level2MessageQuery(t *testing.T) {
8585

8686
func TestApiService_Level3Snapshot(t *testing.T) {
8787
s := NewApiServiceFromEnv()
88-
rsp, err := s.Level3Snapshot("XBTUSDM")
88+
rsp, err := s.Level3Snapshot("XBTUSDTM")
8989
if err != nil {
9090
t.Fatal(err)
9191
}
@@ -116,7 +116,7 @@ func TestApiService_Level3Snapshot(t *testing.T) {
116116

117117
func TestApiService_Level3SnapshotV2(t *testing.T) {
118118
s := NewApiServiceFromEnv()
119-
rsp, err := s.Level3SnapshotV2("XBTUSDM")
119+
rsp, err := s.Level3SnapshotV2("XBTUSDTM")
120120
if err != nil {
121121
t.Fatal(err)
122122
}
@@ -133,7 +133,7 @@ func TestApiService_Level3SnapshotV2(t *testing.T) {
133133

134134
func TestApiService_Level3MessageQuery(t *testing.T) {
135135
s := NewApiServiceFromEnv()
136-
rsp, err := s.Level3MessageQuery("XBTUSDM", 1, 20)
136+
rsp, err := s.Level3MessageQuery("XBTUSDTM", 1, 20)
137137
if err != nil {
138138
t.Fatal(err)
139139
}
@@ -156,7 +156,7 @@ func TestApiService_Level3MessageQuery(t *testing.T) {
156156

157157
func TestApiService_TradeHistory(t *testing.T) {
158158
s := NewApiServiceFromEnv()
159-
rsp, err := s.TradeHistory("XBTUSDM")
159+
rsp, err := s.TradeHistory("XBTUSDTM")
160160
if err != nil {
161161
t.Fatal(err)
162162
}
@@ -213,7 +213,7 @@ func TestApiService_InterestQuery(t *testing.T) {
213213
func TestApiService_IndexQuery(t *testing.T) {
214214
s := NewApiServiceFromEnv()
215215
p := map[string]string{}
216-
p["symbol"] = "XBTUSDM"
216+
p["symbol"] = "XBTUSDTM"
217217
pp := &PaginationParam{CurrentPage: 1, PageSize: 10}
218218
rsp, err := s.IndexQuery(p, pp)
219219
if err != nil {
@@ -240,7 +240,7 @@ func TestApiService_IndexQuery(t *testing.T) {
240240

241241
func TestApiService_MarkPrice(t *testing.T) {
242242
s := NewApiServiceFromEnv()
243-
rsp, err := s.MarkPrice("XBTUSDM")
243+
rsp, err := s.MarkPrice("XBTUSDTM")
244244
if err != nil {
245245
t.Fatal(err)
246246
}
@@ -264,7 +264,7 @@ func TestApiService_MarkPrice(t *testing.T) {
264264
func TestApiService_PremiumQuery(t *testing.T) {
265265
s := NewApiServiceFromEnv()
266266
p := map[string]string{}
267-
p["symbol"] = "XBTUSDM"
267+
p["symbol"] = "XBTUSDTM"
268268
pp := &PaginationParam{CurrentPage: 1, PageSize: 10}
269269
rsp, err := s.PremiumQuery(p, pp)
270270
if err != nil {
@@ -291,7 +291,7 @@ func TestApiService_PremiumQuery(t *testing.T) {
291291

292292
func TestApiService_FundingRate(t *testing.T) {
293293
s := NewApiServiceFromEnv()
294-
rsp, err := s.FundingRate(".XBTUSDMFPI8H")
294+
rsp, err := s.FundingRate(".XBTUSDTMFPI8H")
295295
if err != nil {
296296
t.Fatal(err)
297297
}
@@ -324,3 +324,16 @@ func TestApiService_TradeStatistics(t *testing.T) {
324324
}
325325
t.Log(ToJsonString(tk))
326326
}
327+
328+
func TestApiService_AllTickers(t *testing.T) {
329+
s := NewApiServiceFromEnv()
330+
resp, err := s.AllTickers()
331+
if err != nil {
332+
t.Fatal(err)
333+
}
334+
m := &AllTickersModel{}
335+
if err := resp.ReadData(m); err != nil {
336+
t.Fatal(err)
337+
}
338+
t.Log(ToJsonString(m))
339+
}

order.go

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import "net/http"
44

55
// A CreateOrderResultModel represents the result of CreateOrder().
66
type CreateOrderResultModel struct {
7-
OrderId string `json:"orderId"`
7+
OrderId string `json:"orderId"`
8+
ClientOid string `json:"clientOid"`
89
}
910

1011
// CreateOrder places a new order.
@@ -181,3 +182,38 @@ func (as *ApiService) CreateMultiOrders(p []*CreateOrderReq) (*ApiResponse, erro
181182
req := NewRequest(http.MethodPost, "/api/v1/orders/multi", p)
182183
return as.Call(req)
183184
}
185+
186+
type STOrderReq struct {
187+
ClientOid string `json:"clientOid"`
188+
Side string `json:"side"`
189+
Symbol string `json:"symbol"`
190+
Leverage string `json:"leverage"`
191+
Type string `json:"type"`
192+
Remark string `json:"remark"`
193+
TriggerStopUpPrice string `json:"triggerStopUpPrice"`
194+
StopPriceType string `json:"stopPriceType"`
195+
TriggerStopDownPrice string `json:"triggerStopDownPrice"`
196+
ReduceOnly bool `json:"reduceOnly"`
197+
CloseOrder bool `json:"closeOrder"`
198+
ForceHold bool `json:"forceHold"`
199+
Stp string `json:"stp"`
200+
Price string `json:"price"`
201+
Size int `json:"size"`
202+
TimeInForce string `json:"timeInForce"`
203+
PostOnly bool `json:"postOnly"`
204+
Hidden bool `json:"hidden"`
205+
Iceberg bool `json:"iceberg"`
206+
VisibleSize int `json:"visibleSize"`
207+
MarginMode string `json:"marginMode"`
208+
}
209+
210+
type STOrderRes struct {
211+
OrderId string `json:"orderId"`
212+
ClientOid string `json:"clientOid"`
213+
}
214+
215+
// CreateSTOrder Place take profit and stop loss order
216+
func (as *ApiService) CreateSTOrder(p *STOrderReq) (*ApiResponse, error) {
217+
req := NewRequest(http.MethodPost, "/api/v1/st-orders", p)
218+
return as.Call(req)
219+
}

order_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,3 +293,30 @@ func TestApiService_CreateMultiOrders(t *testing.T) {
293293
}
294294
t.Log(ToJsonString(o))
295295
}
296+
297+
func TestApiService_CreateSTOrders(t *testing.T) {
298+
s := NewApiServiceFromEnv()
299+
req := STOrderReq{
300+
ClientOid: IntToString(time.Now().UnixNano()),
301+
Side: "buy",
302+
Symbol: "XBTUSDM",
303+
Leverage: "20",
304+
Type: "limit",
305+
Price: "8000",
306+
Size: 1,
307+
StopPriceType: "TP",
308+
MarginMode: "ISOLATED",
309+
TriggerStopUpPrice: "9000",
310+
TriggerStopDownPrice: "8000",
311+
TimeInForce: "GTC",
312+
}
313+
rsp, err := s.CreateSTOrder(&req)
314+
if err != nil {
315+
t.Fatal(err)
316+
}
317+
o := &STOrderRes{}
318+
if err := rsp.ReadData(o); err != nil {
319+
t.Fatal(err)
320+
}
321+
t.Log(ToJsonString(o))
322+
}

0 commit comments

Comments
 (0)