bitmex-api 0.1.2 → 0.1.3
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/.ruby-version +1 -1
- data/.travis.yml +2 -2
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +22 -23
- data/TODOs.org +11 -0
- data/lib/bitmex.rb +10 -6
- data/lib/bitmex/rest.rb +8 -8
- data/lib/bitmex/version.rb +1 -1
- data/lib/bitmex/websocket.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cbbaf029bcd6fbb70b9a1890f1c0b22bf21e3ec23092dd39d584ebd79b8de2f0
|
|
4
|
+
data.tar.gz: ee2b4d48711fa63618c859a08a2ab5026097c32c26d468752f0db7cadc82ec7f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fe7911b8cbf14ed395470c6d0648974f58fd88a4c466bbd3e3116f7e288252824d119bf77d909158d7bd4b67ecc5377bbcc569eca7f33c088763a8eab745ce11
|
|
7
|
+
data.tar.gz: 88a68b130ea052d4cd0986a9b75694b3e71cb8777625843d42f8a58b3325def6382a057757107af3eea8b991042a428cda1bcd01ed698861994235caa4224594
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.6.3
|
data/.travis.yml
CHANGED
|
@@ -3,14 +3,14 @@ sudo: false
|
|
|
3
3
|
language: ruby
|
|
4
4
|
cache: bundler
|
|
5
5
|
rvm:
|
|
6
|
-
- 2.
|
|
6
|
+
- 2.6.3
|
|
7
7
|
|
|
8
8
|
env:
|
|
9
9
|
global:
|
|
10
10
|
- CC_TEST_REPORTER_ID=62a2cea238cf89f14f968d9a91fe41af7a11f414f6cc9194df7abc7887e61f6e
|
|
11
11
|
|
|
12
12
|
before_install:
|
|
13
|
-
- gem install bundler
|
|
13
|
+
- gem install bundler
|
|
14
14
|
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
|
15
15
|
- chmod +x ./cc-test-reporter
|
|
16
16
|
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,13 @@
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.1.3] - 2019-07-03
|
|
9
|
+
### Changed
|
|
10
|
+
- update Ruby to 2.6.3
|
|
11
|
+
- update all gems
|
|
12
|
+
### Fixed
|
|
13
|
+
- query params for filtering in GET requests
|
|
14
|
+
|
|
8
15
|
## [0.1.2] - 2019-04-17
|
|
9
16
|
### Changed
|
|
10
17
|
- update gems
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
bitmex-api (0.1.
|
|
4
|
+
bitmex-api (0.1.3)
|
|
5
5
|
eventmachine
|
|
6
6
|
faye-websocket
|
|
7
7
|
hashie
|
|
@@ -24,19 +24,19 @@ GEM
|
|
|
24
24
|
descendants_tracker (0.0.4)
|
|
25
25
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
26
26
|
diff-lcs (1.3)
|
|
27
|
-
docile (1.3.
|
|
28
|
-
dotenv (2.7.
|
|
27
|
+
docile (1.3.2)
|
|
28
|
+
dotenv (2.7.4)
|
|
29
29
|
equalizer (0.0.11)
|
|
30
30
|
eventmachine (1.2.7)
|
|
31
|
-
faye-websocket (0.10.
|
|
31
|
+
faye-websocket (0.10.9)
|
|
32
32
|
eventmachine (>= 0.12.0)
|
|
33
33
|
websocket-driver (>= 0.5.1)
|
|
34
34
|
hashie (3.6.0)
|
|
35
|
-
httparty (0.
|
|
35
|
+
httparty (0.17.0)
|
|
36
36
|
mime-types (~> 3.0)
|
|
37
37
|
multi_xml (>= 0.5.2)
|
|
38
38
|
ice_nine (0.11.2)
|
|
39
|
-
jaro_winkler (1.5.
|
|
39
|
+
jaro_winkler (1.5.3)
|
|
40
40
|
json (2.2.0)
|
|
41
41
|
kwalify (0.7.2)
|
|
42
42
|
method_source (0.9.2)
|
|
@@ -45,7 +45,7 @@ GEM
|
|
|
45
45
|
mime-types-data (3.2019.0331)
|
|
46
46
|
multi_xml (0.6.0)
|
|
47
47
|
parallel (1.17.0)
|
|
48
|
-
parser (2.6.
|
|
48
|
+
parser (2.6.3.0)
|
|
49
49
|
ast (~> 2.4.0)
|
|
50
50
|
pry (0.12.2)
|
|
51
51
|
coderay (~> 1.1.0)
|
|
@@ -56,7 +56,7 @@ GEM
|
|
|
56
56
|
psych (3.1.0)
|
|
57
57
|
rainbow (3.0.0)
|
|
58
58
|
rake (12.3.2)
|
|
59
|
-
reek (5.
|
|
59
|
+
reek (5.4.0)
|
|
60
60
|
codeclimate-engine-rb (~> 0.4.0)
|
|
61
61
|
kwalify (~> 0.7.0)
|
|
62
62
|
parser (>= 2.5.0.0, < 2.7, != 2.5.1.1)
|
|
@@ -66,40 +66,39 @@ GEM
|
|
|
66
66
|
rspec-core (~> 3.8.0)
|
|
67
67
|
rspec-expectations (~> 3.8.0)
|
|
68
68
|
rspec-mocks (~> 3.8.0)
|
|
69
|
-
rspec-core (3.8.
|
|
69
|
+
rspec-core (3.8.2)
|
|
70
70
|
rspec-support (~> 3.8.0)
|
|
71
|
-
rspec-expectations (3.8.
|
|
71
|
+
rspec-expectations (3.8.4)
|
|
72
72
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
73
73
|
rspec-support (~> 3.8.0)
|
|
74
|
-
rspec-mocks (3.8.
|
|
74
|
+
rspec-mocks (3.8.1)
|
|
75
75
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
76
76
|
rspec-support (~> 3.8.0)
|
|
77
|
-
rspec-support (3.8.
|
|
78
|
-
rubocop (0.
|
|
77
|
+
rspec-support (3.8.2)
|
|
78
|
+
rubocop (0.72.0)
|
|
79
79
|
jaro_winkler (~> 1.5.1)
|
|
80
80
|
parallel (~> 1.10)
|
|
81
|
-
parser (>= 2.
|
|
82
|
-
psych (>= 3.1.0)
|
|
81
|
+
parser (>= 2.6)
|
|
83
82
|
rainbow (>= 2.2.2, < 4.0)
|
|
84
83
|
ruby-progressbar (~> 1.7)
|
|
85
|
-
unicode-display_width (>= 1.4.0, < 1.
|
|
86
|
-
ruby-progressbar (1.10.
|
|
87
|
-
simplecov (0.
|
|
84
|
+
unicode-display_width (>= 1.4.0, < 1.7)
|
|
85
|
+
ruby-progressbar (1.10.1)
|
|
86
|
+
simplecov (0.17.0)
|
|
88
87
|
docile (~> 1.1)
|
|
89
88
|
json (>= 1.8, < 3)
|
|
90
89
|
simplecov-html (~> 0.10.0)
|
|
91
90
|
simplecov-html (0.10.2)
|
|
92
91
|
thread_safe (0.3.6)
|
|
93
|
-
unicode-display_width (1.
|
|
92
|
+
unicode-display_width (1.6.0)
|
|
94
93
|
virtus (1.0.5)
|
|
95
94
|
axiom-types (~> 0.1)
|
|
96
95
|
coercible (~> 1.0)
|
|
97
96
|
descendants_tracker (~> 0.0, >= 0.0.3)
|
|
98
97
|
equalizer (~> 0.0, >= 0.0.9)
|
|
99
|
-
websocket-driver (0.7.
|
|
98
|
+
websocket-driver (0.7.1)
|
|
100
99
|
websocket-extensions (>= 0.1.0)
|
|
101
|
-
websocket-extensions (0.1.
|
|
102
|
-
yard (0.9.
|
|
100
|
+
websocket-extensions (0.1.4)
|
|
101
|
+
yard (0.9.20)
|
|
103
102
|
|
|
104
103
|
PLATFORMS
|
|
105
104
|
ruby
|
|
@@ -118,4 +117,4 @@ DEPENDENCIES
|
|
|
118
117
|
simplecov
|
|
119
118
|
|
|
120
119
|
BUNDLED WITH
|
|
121
|
-
|
|
120
|
+
2.0.2
|
data/TODOs.org
CHANGED
|
@@ -18,6 +18,11 @@
|
|
|
18
18
|
CLOSED: [2019-01-29 Tue] SCHEDULED: <2019-01-29 Tue>
|
|
19
19
|
** refactoring: use class methods when working with multiple entities
|
|
20
20
|
** bug: {"error":{"message":"Signature not valid.","name":"HTTPError"}} in user#executions
|
|
21
|
+
** DONE bug: handle query in websocket and skip in POST/PUT/DELETE operations
|
|
22
|
+
CLOSED: [2019-07-03 Wed 18:06]
|
|
23
|
+
:LOGBOOK:
|
|
24
|
+
CLOCK: [2019-07-03 Wed 17:55]--[2019-07-03 Wed 18:06] => 0:11
|
|
25
|
+
:END:
|
|
21
26
|
** DONE liquidation, leaderboard, insurance, instrument, funding, execution, chat, announcement
|
|
22
27
|
CLOSED: [2019-01-30 Wed] SCHEDULED: <2019-01-30 Wed>
|
|
23
28
|
** DONE refactoring: extract websocket common logic
|
|
@@ -33,3 +38,9 @@
|
|
|
33
38
|
CLOSED: [2019-02-13 Wed] SCHEDULED: <2019-02-13 Wed>
|
|
34
39
|
** DONE release 0.1.1
|
|
35
40
|
CLOSED: [2019-03-06 Wed] SCHEDULED: <2019-03-06 Wed>
|
|
41
|
+
** TODO bitmex-api-ruby maintenance
|
|
42
|
+
SCHEDULED: <2019-08-02 Fri +1m>
|
|
43
|
+
:PROPERTIES:
|
|
44
|
+
:LAST_REPEAT: [2019-07-03 Wed 18:52]
|
|
45
|
+
:END:
|
|
46
|
+
- State "DONE" from "TODO" [2019-07-03 Wed 18:52]
|
data/lib/bitmex.rb
CHANGED
|
@@ -28,22 +28,26 @@ module Bitmex
|
|
|
28
28
|
TESTNET_HOST = 'testnet.bitmex.com'.freeze
|
|
29
29
|
MAINNET_HOST = 'www.bitmex.com'.freeze
|
|
30
30
|
|
|
31
|
-
def self.signature(api_secret, verb, path, expires,
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
def self.signature(api_secret, verb, path, expires, body, query)
|
|
32
|
+
body = '' if body.nil?
|
|
33
|
+
body = body.to_s unless body.is_a? String
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
if query != nil && query.is_a?(Hash) && !query.empty?
|
|
36
|
+
path += "?#{URI.encode_www_form(query)}"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
data = verb + path + expires.to_s + body
|
|
36
40
|
OpenSSL::HMAC.hexdigest 'SHA256', api_secret, data
|
|
37
41
|
end
|
|
38
42
|
|
|
39
|
-
def self.headers(api_key, api_secret, verb, path, body)
|
|
43
|
+
def self.headers(api_key, api_secret, verb, path, body, query)
|
|
40
44
|
return {} unless api_key || api_secret
|
|
41
45
|
|
|
42
46
|
expires = Time.now.utc.to_i + 60
|
|
43
47
|
{
|
|
44
48
|
'api-expires' => expires.to_s,
|
|
45
49
|
'api-key' => api_key,
|
|
46
|
-
'api-signature' => Bitmex.signature(api_secret, verb, path, expires, body)
|
|
50
|
+
'api-signature' => Bitmex.signature(api_secret, verb, path, expires, body, query)
|
|
47
51
|
}
|
|
48
52
|
end
|
|
49
53
|
end
|
data/lib/bitmex/rest.rb
CHANGED
|
@@ -29,7 +29,7 @@ module Bitmex
|
|
|
29
29
|
|
|
30
30
|
options = {}
|
|
31
31
|
options[:query] = params unless params.empty?
|
|
32
|
-
options[:headers] = rest_headers 'GET', path, '' if auth
|
|
32
|
+
options[:headers] = rest_headers 'GET', path, '', params if auth
|
|
33
33
|
|
|
34
34
|
response = self.class.get "#{domain_url}#{path}", options
|
|
35
35
|
block_given? ? yield(response) : response_handler(response)
|
|
@@ -40,7 +40,7 @@ module Bitmex
|
|
|
40
40
|
|
|
41
41
|
options = {}
|
|
42
42
|
options[:body] = body
|
|
43
|
-
options[:headers] = rest_headers 'PUT', path, body, json: json if auth
|
|
43
|
+
options[:headers] = rest_headers 'PUT', path, body, nil, json: json if auth
|
|
44
44
|
|
|
45
45
|
response = self.class.put "#{domain_url}#{path}", options
|
|
46
46
|
block_given? ? yield(response) : response_handler(response)
|
|
@@ -51,7 +51,7 @@ module Bitmex
|
|
|
51
51
|
|
|
52
52
|
options = {}
|
|
53
53
|
options[:body] = body
|
|
54
|
-
options[:headers] = rest_headers 'POST', path, body, json: json if auth
|
|
54
|
+
options[:headers] = rest_headers 'POST', path, body, nil, json: json if auth
|
|
55
55
|
|
|
56
56
|
response = self.class.post "#{domain_url}#{path}", options
|
|
57
57
|
block_given? ? yield(response) : response_handler(response)
|
|
@@ -62,7 +62,7 @@ module Bitmex
|
|
|
62
62
|
|
|
63
63
|
options = {}
|
|
64
64
|
options[:body] = body
|
|
65
|
-
options[:headers] = rest_headers 'DELETE', path, body, json: json if auth
|
|
65
|
+
options[:headers] = rest_headers 'DELETE', path, body, nil, json: json if auth
|
|
66
66
|
|
|
67
67
|
response = self.class.delete "#{domain_url}#{path}", options
|
|
68
68
|
block_given? ? yield(response) : response_handler(response)
|
|
@@ -72,8 +72,8 @@ module Bitmex
|
|
|
72
72
|
"/api/v1/#{resource}/#{action}"
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
def rest_headers(verb, path, body, json: true)
|
|
76
|
-
headers = headers verb, path, body
|
|
75
|
+
def rest_headers(verb, path, body, query, json: true)
|
|
76
|
+
headers = headers verb, path, body, query
|
|
77
77
|
if json
|
|
78
78
|
headers['Content-Type'] = 'application/json'
|
|
79
79
|
else
|
|
@@ -82,8 +82,8 @@ module Bitmex
|
|
|
82
82
|
headers
|
|
83
83
|
end
|
|
84
84
|
|
|
85
|
-
def headers(verb, path, body)
|
|
86
|
-
Bitmex.headers api_key, api_secret, verb, path, body
|
|
85
|
+
def headers(verb, path, body, query)
|
|
86
|
+
Bitmex.headers api_key, api_secret, verb, path, body, query
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
def response_handler(response)
|
data/lib/bitmex/version.rb
CHANGED
data/lib/bitmex/websocket.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bitmex-api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Iulian Costan
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-
|
|
11
|
+
date: 2019-07-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: eventmachine
|
|
@@ -270,8 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
270
270
|
- !ruby/object:Gem::Version
|
|
271
271
|
version: '0'
|
|
272
272
|
requirements: []
|
|
273
|
-
|
|
274
|
-
rubygems_version: 2.7.6
|
|
273
|
+
rubygems_version: 3.0.4
|
|
275
274
|
signing_key:
|
|
276
275
|
specification_version: 4
|
|
277
276
|
summary: Fully-featured, idiomatic Ruby library for BitMEX API
|