okcoin-ruby 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +41 -5
- data/lib/okcoin/rest.rb +49 -17
- data/lib/okcoin/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 830387957a835f4427a3c83b5b9a51b540147328
|
4
|
+
data.tar.gz: 7716a827c6d2fa7d61ac8ad47cd9a9a1028d6cb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07fbdae8dfb02cea01f431ce8f115cda92e5a445abb847eaa166ef5790f8fdf139d80cac712f5691d7fccd7ed9927580950171db6b41ce4d9d3f4c9b84982f5f
|
7
|
+
data.tar.gz: cccbd09133e4ccc261f76bb6abf459db736062540b5aa0050574b57414606c61cf48df42fcd869bee316aebb54d70d2eeb97579296f61a98b6d5a147e3bbf6fb
|
data/README.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Okcoin API Ruby Wrapper
|
2
|
-
|
2
|
+
Unofficial ruby library for Okcoin Bitcoin Exchange
|
3
|
+
|
4
|
+
If you feel it's helpful and would like to donate, send coins to
|
5
|
+
|
6
|
+
```
|
7
|
+
BTC 15y2a3FKLW89qoDniDMRwsdhrZeHJA1Det
|
8
|
+
```
|
3
9
|
|
4
10
|
## Installation
|
5
11
|
|
@@ -17,15 +23,45 @@ And then execute:
|
|
17
23
|
## Usage
|
18
24
|
|
19
25
|
### 1. REST Example
|
20
|
-
|
26
|
+
Initialize client
|
27
|
+
```ruby
|
21
28
|
okcoin = Okcoin::Rest.new api_key: ENV['OKCOIN_APIKEY'], secret_key: ENV['OKCOIN_SECRET']
|
22
|
-
puts okcoin.userinfo
|
23
|
-
puts okcoin.orderbook(pair: "btcusd", items_no: 50)
|
24
29
|
```
|
25
30
|
|
26
|
-
|
31
|
+
Make requests
|
27
32
|
|
33
|
+
Spot Price
|
34
|
+
```ruby
|
35
|
+
okcoin.spot_ticker(pair: "btc_usd")
|
36
|
+
okcoin.spot_orderbook(pair: "btc_usd", items_no: 50, merge: 0)
|
37
|
+
okcoin.spot_trades(pair: "btc_usd", since: nil)
|
38
|
+
okcoin.spot_kandlestick(pair: "btc_usd", type: "30min", size: 50, since: nil)
|
39
|
+
okcoin.spot_swaps_orderbook(pair: "btc_usd")
|
40
|
+
```
|
41
|
+
|
42
|
+
Spot Trade
|
43
|
+
```ruby
|
44
|
+
okcoin.spot_userinfo
|
45
|
+
okcoin.spot_trade(pair: "btc_usd", type: "buy", price:240, amount:1)
|
28
46
|
```
|
47
|
+
|
48
|
+
Futures Price
|
49
|
+
```ruby
|
50
|
+
okcoin.futures_orderbook(pair: "btc_usd", contract: "this_week", items_no: 50)
|
51
|
+
```
|
52
|
+
|
53
|
+
Futures Trade
|
54
|
+
```ruby
|
55
|
+
okcoin.futures_userinfo
|
56
|
+
okcoin.futures_trade(pair: "btc_usd", amount: 1, type: 1, contract_type: "this_week", match_price: 1, price: nil, lever_rate: 10)
|
57
|
+
okcoin.futures_cancel(pair: "btc_usd", contract_type: "this_week", order_id: 12345)
|
58
|
+
okcoin.futures_order_info(order_id: 12345, symbol: "btc_usd", contract_type: "this_week", status: nil, current_page: nil, page_length: nil)
|
59
|
+
okcoin.futures_position(pair: "btc_usd", contract_type: "this_week")
|
60
|
+
```
|
61
|
+
|
62
|
+
### 2. WebSocket Example
|
63
|
+
|
64
|
+
```ruby
|
29
65
|
okcoin = Okcoin::WS.new api_key: ENV['OKCOIN_APIKEY'], secret_key: ENV['OKCOIN_SECRET']
|
30
66
|
okcoin.userinfo
|
31
67
|
okcoin.pingpong
|
data/lib/okcoin/rest.rb
CHANGED
@@ -9,28 +9,63 @@ class Okcoin
|
|
9
9
|
end
|
10
10
|
|
11
11
|
public
|
12
|
+
# Spot Price API
|
13
|
+
def spot_ticker(pair: "btc_usd")
|
14
|
+
query = { "symbol" => pair }
|
15
|
+
get_request(url: "/v1/ticker.do", query: query)
|
16
|
+
end
|
12
17
|
|
13
|
-
def
|
14
|
-
query = { "
|
15
|
-
get_request(url: "/depth.do", query: query)
|
18
|
+
def spot_orderbook(pair: "btc_usd", items_no: 50, merge: 0)
|
19
|
+
query = { "symbol" => pair, "size" => items_no, "merge" => merge }
|
20
|
+
get_request(url: "/v1/depth.do", query: query)
|
16
21
|
end
|
17
22
|
|
18
|
-
def
|
23
|
+
def spot_trades(pair: "btc_usd", since: nil)
|
24
|
+
query = { "symbol" => pair, "since" => since }
|
25
|
+
get_request(url: "/v1/trades.do", query: query)
|
26
|
+
end
|
27
|
+
|
28
|
+
def spot_kandlestick(pair: "btc_usd", type: "30min", size: 50, since: nil)
|
29
|
+
query = { "symbol" => pair, "type" => type, "size" => size, "since" => since }
|
30
|
+
get_request(url: "/v1/kline.do", query: query)
|
31
|
+
end
|
32
|
+
|
33
|
+
def spot_swaps_orderbook(pair: "btc_usd")
|
34
|
+
query = { "symbol" => pair }
|
35
|
+
get_request(url: "/v1/lend_depth.do", query: query)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Spot Trading API
|
39
|
+
|
40
|
+
def spot_userinfo
|
19
41
|
post_data = initial_post_data
|
20
|
-
post_request post_data: post_data, action: "/v1/
|
42
|
+
post_request post_data: post_data, action: "/v1/userinfo.do"
|
21
43
|
end
|
22
44
|
|
23
|
-
def
|
45
|
+
def spot_trade(pair:, type:, price:, amount:)
|
24
46
|
post_data = initial_post_data
|
25
|
-
|
47
|
+
|
48
|
+
post_data["symbol"] = pair
|
49
|
+
post_data["type"] = type
|
50
|
+
post_data["amount"] = amount
|
51
|
+
post_data["price"] = price
|
52
|
+
|
53
|
+
post_request post_data: post_data, action: "/v1/trade.do"
|
26
54
|
end
|
27
55
|
|
56
|
+
# Futures Price API
|
28
57
|
def futures_orderbook(pair:, contract:, items_no: 50)
|
29
58
|
query = { "symbol" => pair, "contractType" => contract, "size" => items_no }
|
30
59
|
get_request(url: "/future_depth.do", query: query)
|
31
60
|
end
|
32
61
|
|
33
|
-
|
62
|
+
# Futures Trading API
|
63
|
+
def futures_userinfo
|
64
|
+
post_data = initial_post_data
|
65
|
+
post_request post_data: post_data, action: "/v1/future_userinfo.do"
|
66
|
+
end
|
67
|
+
|
68
|
+
def futures_trade(pair:, amount:, type:, contract_type:, match_price:, price: nil, lever_rate: 10)
|
34
69
|
post_data = initial_post_data
|
35
70
|
|
36
71
|
post_data["symbol"] = pair
|
@@ -45,7 +80,7 @@ class Okcoin
|
|
45
80
|
post_request post_data: post_data, action: "/v1/future_trade.do"
|
46
81
|
end
|
47
82
|
|
48
|
-
def
|
83
|
+
def futures_cancel(pair:, contract_type:, order_id:)
|
49
84
|
post_data = initial_post_data
|
50
85
|
|
51
86
|
post_data["symbol"] = pair
|
@@ -55,13 +90,16 @@ class Okcoin
|
|
55
90
|
post_request post_data: post_data, action: "/v1/future_cancel.do"
|
56
91
|
end
|
57
92
|
|
58
|
-
def
|
93
|
+
def futures_order_info(order_id:, symbol:, contract_type:, status: nil, current_page: nil, page_length: nil)
|
59
94
|
post_data = initial_post_data
|
60
95
|
post_data["symbol"] = symbol
|
61
96
|
post_data["contract_type"] = contract_type
|
62
97
|
post_data["order_id"] = order_id
|
98
|
+
post_data["status"] = status
|
99
|
+
post_data["current_page"] = current_page
|
100
|
+
post_data["page_length"] = page_length
|
63
101
|
|
64
|
-
post_request post_data: post_data, action: "/v1/
|
102
|
+
post_request post_data: post_data, action: "/v1/future_order_info.do"
|
65
103
|
end
|
66
104
|
|
67
105
|
def futures_position(pair:, contract_type:)
|
@@ -71,12 +109,6 @@ class Okcoin
|
|
71
109
|
post_request post_data: post_data, action: "/v1/future_position.do"
|
72
110
|
end
|
73
111
|
|
74
|
-
|
75
|
-
def userinfo
|
76
|
-
post_data = initial_post_data
|
77
|
-
post_request post_data: post_data, action: "/v1/userinfo.do"
|
78
|
-
end
|
79
|
-
|
80
112
|
private
|
81
113
|
|
82
114
|
def handle_timeouts
|
data/lib/okcoin/version.rb
CHANGED