quadrigacx 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +50 -0
- data/README.md +6 -1
- data/lib/quadrigacx/client/private.rb +22 -0
- data/lib/quadrigacx/client/public.rb +3 -4
- data/lib/quadrigacx/request.rb +19 -6
- data/lib/quadrigacx/version.rb +1 -1
- data/spec/client_spec.rb +37 -0
- data/spec/fixtures/vcr_cassettes/balance.yml +13 -13
- data/spec/fixtures/vcr_cassettes/cancel_order.yml +101 -0
- data/spec/fixtures/vcr_cassettes/limit_buy.yml +55 -0
- data/spec/fixtures/vcr_cassettes/market_buy.yml +53 -0
- data/spec/fixtures/vcr_cassettes/order_book.yml +54 -59
- metadata +8 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6ee8bdb0b5c8b603cf66c928e21630744007e99
|
4
|
+
data.tar.gz: 3d030a7bb3406b05eaa44852a1ce31b85638a938
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71869c0d09ccfaef240033e6845c2e5aa3c31b0904b40c50091f7808bd34b814e1615183f19ea906590f59a8a1aa47a72e1b3de611b651f2cbc5c1072925b6e7
|
7
|
+
data.tar.gz: 2c2d6e085b26a8a2caf3524a8742248bcd1bf3c09bd585edab1307c625a8e636a3b7b649f379093d01146f12c62d2f653d9b413e8770b5fdc3fa343fa1ba8555
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
quadrigacx (0.0.3)
|
5
|
+
hashie (~> 3.3)
|
6
|
+
json (~> 1.8)
|
7
|
+
rest-client (~> 1.7)
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: https://rubygems.org/
|
11
|
+
specs:
|
12
|
+
addressable (2.3.6)
|
13
|
+
crack (0.4.2)
|
14
|
+
safe_yaml (~> 1.0.0)
|
15
|
+
diff-lcs (1.2.5)
|
16
|
+
dotenv (1.0.2)
|
17
|
+
hashie (3.3.2)
|
18
|
+
json (1.8.2)
|
19
|
+
mime-types (2.4.3)
|
20
|
+
netrc (0.10.2)
|
21
|
+
rest-client (1.7.2)
|
22
|
+
mime-types (>= 1.16, < 3.0)
|
23
|
+
netrc (~> 0.7)
|
24
|
+
rspec (3.1.0)
|
25
|
+
rspec-core (~> 3.1.0)
|
26
|
+
rspec-expectations (~> 3.1.0)
|
27
|
+
rspec-mocks (~> 3.1.0)
|
28
|
+
rspec-core (3.1.7)
|
29
|
+
rspec-support (~> 3.1.0)
|
30
|
+
rspec-expectations (3.1.2)
|
31
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
32
|
+
rspec-support (~> 3.1.0)
|
33
|
+
rspec-mocks (3.1.3)
|
34
|
+
rspec-support (~> 3.1.0)
|
35
|
+
rspec-support (3.1.2)
|
36
|
+
safe_yaml (1.0.4)
|
37
|
+
vcr (2.9.3)
|
38
|
+
webmock (1.20.4)
|
39
|
+
addressable (>= 2.3.6)
|
40
|
+
crack (>= 0.3.2)
|
41
|
+
|
42
|
+
PLATFORMS
|
43
|
+
ruby
|
44
|
+
|
45
|
+
DEPENDENCIES
|
46
|
+
dotenv (~> 1.0)
|
47
|
+
quadrigacx!
|
48
|
+
rspec (~> 3.1)
|
49
|
+
vcr (~> 2.9)
|
50
|
+
webmock (~> 1.20)
|
data/README.md
CHANGED
@@ -5,7 +5,12 @@ Ruby wrapper for the QuadrigaCX API
|
|
5
5
|
`gem install quadrigacx`
|
6
6
|
|
7
7
|
```
|
8
|
-
client = QuadrigaCX::Client.new(
|
8
|
+
client = QuadrigaCX::Client.new(
|
9
|
+
api_key: 'API_KEY',
|
10
|
+
api_secret: 'API_SECRET',
|
11
|
+
client_id: 'CLIENT_ID',
|
12
|
+
)
|
13
|
+
|
9
14
|
client.balance
|
10
15
|
```
|
11
16
|
|
@@ -5,5 +5,27 @@ module QuadrigaCX
|
|
5
5
|
def balance
|
6
6
|
request(:post, '/balance')
|
7
7
|
end
|
8
|
+
|
9
|
+
# Places a limit order. Returns JSON describing the order
|
10
|
+
#
|
11
|
+
# amount - amount of major currency
|
12
|
+
# price - price to buy at
|
13
|
+
# book - optional, if not specified, will default to btc_cad
|
14
|
+
def limit_buy params={}
|
15
|
+
raise ConfigurationError.new('No price specified for limit buy') unless params[:price]
|
16
|
+
request(:post, '/buy', params)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Places a market order. Returns JSON describing the order
|
20
|
+
#
|
21
|
+
# amount - amount of minor currency to spend
|
22
|
+
# book - optional, if not specified, will default to btc_cad
|
23
|
+
def market_buy params={}
|
24
|
+
request(:post, '/buy', params)
|
25
|
+
end
|
26
|
+
|
27
|
+
def cancel params={}
|
28
|
+
request(:post, '/cancel_order', params)
|
29
|
+
end
|
8
30
|
end
|
9
31
|
end
|
@@ -2,10 +2,9 @@ module QuadrigaCX
|
|
2
2
|
module Public
|
3
3
|
# List all open orders
|
4
4
|
#
|
5
|
-
# -
|
6
|
-
#
|
7
|
-
|
8
|
-
def order_book(params={})
|
5
|
+
# book - optional, book to return orders for. Default btc_cad.
|
6
|
+
# group - optional, group orders with the same price (0 - false; 1 - true). Default: 1.
|
7
|
+
def order_book params={}
|
9
8
|
request(:get, '/order_book', params)
|
10
9
|
end
|
11
10
|
end
|
data/lib/quadrigacx/request.rb
CHANGED
@@ -15,9 +15,17 @@ module QuadrigaCX
|
|
15
15
|
def request(*args)
|
16
16
|
resp = @use_hmac ? self.hmac_request(*args) : self.oauth_request(*args)
|
17
17
|
|
18
|
-
|
18
|
+
begin
|
19
|
+
hash = Hashie::Mash.new(JSON.parse(resp.body))
|
20
|
+
|
21
|
+
# The `/cancel_order` route returns `"true"` instead of valid JSON.
|
22
|
+
rescue JSON::ParserError
|
23
|
+
return resp.body
|
24
|
+
end
|
25
|
+
|
19
26
|
raise Error.new(hash.error) if hash.error
|
20
27
|
raise Error.new(hash.errors.join(',')) if hash.errors
|
28
|
+
|
21
29
|
hash
|
22
30
|
end
|
23
31
|
|
@@ -37,11 +45,16 @@ module QuadrigaCX
|
|
37
45
|
signature: signature,
|
38
46
|
})
|
39
47
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
48
|
+
RestClient::Request.execute(
|
49
|
+
url: url,
|
50
|
+
method: http_method,
|
51
|
+
payload: body.to_json,
|
52
|
+
verify_ssl: false,
|
53
|
+
headers: {
|
54
|
+
content_type: :json,
|
55
|
+
accept: :json,
|
56
|
+
}
|
57
|
+
)
|
45
58
|
end
|
46
59
|
|
47
60
|
# Perform an OAuth API request. The client must be initialized
|
data/lib/quadrigacx/version.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -32,5 +32,42 @@ describe QuadrigaCX::Client do
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
35
|
+
|
36
|
+
describe '#limit_buy' do
|
37
|
+
it 'throws an error when no price is provided' do
|
38
|
+
expect { client.limit_buy }.to raise_error(QuadrigaCX::ConfigurationError)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'places a limit buy order' do
|
42
|
+
VCR.use_cassette('limit_buy') do
|
43
|
+
response = client.limit_buy(price: '240', amount: '0.01') # 0.01 BTC
|
44
|
+
|
45
|
+
expect(response.datetime).not_to be_nil
|
46
|
+
expect(response.id).not_to be_nil
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe '#market_buy' do
|
52
|
+
it 'places a market buy order' do
|
53
|
+
VCR.use_cassette('market_buy') do
|
54
|
+
response = client.market_buy(amount: '5.00') # 5 CAD
|
55
|
+
|
56
|
+
expect(response.amount).not_to be_nil
|
57
|
+
expect(response.orders_matched.first.price).not_to be_nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe '#cancel_order' do
|
63
|
+
let(:order) { client.limit_buy(price: '240', amount: '0.01') }
|
64
|
+
|
65
|
+
it 'cancels an order' do
|
66
|
+
VCR.use_cassette('cancel_order') do
|
67
|
+
response = client.cancel(id: order.id)
|
68
|
+
expect(response).to eq('"true"')
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
35
72
|
end
|
36
73
|
end
|
@@ -5,7 +5,7 @@ http_interactions:
|
|
5
5
|
uri: https://api.quadrigacx.com/v2/balance
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"key":"kOnVDjfPPh","nonce":"
|
8
|
+
string: '{"key":"kOnVDjfPPh","nonce":"1421644644278","signature":"d88822c118a38470fa7e9cc302403d5b45305ecb0460a6e1ff3fd179622c4335"}'
|
9
9
|
headers:
|
10
10
|
Accept:
|
11
11
|
- application/json
|
@@ -25,7 +25,7 @@ http_interactions:
|
|
25
25
|
Server:
|
26
26
|
- cloudflare-nginx
|
27
27
|
Date:
|
28
|
-
-
|
28
|
+
- Mon, 19 Jan 2015 05:17:24 GMT
|
29
29
|
Content-Type:
|
30
30
|
- application/json; charset=utf-8
|
31
31
|
Transfer-Encoding:
|
@@ -33,23 +33,23 @@ http_interactions:
|
|
33
33
|
Connection:
|
34
34
|
- keep-alive
|
35
35
|
Set-Cookie:
|
36
|
-
- __cfduid=
|
37
|
-
|
38
|
-
- ci_session=
|
39
|
-
expires=
|
36
|
+
- __cfduid=d325fe5d9ad06403f8a9097b8bd74db9e1421644644; expires=Tue, 19-Jan-16
|
37
|
+
05:17:24 GMT; path=/; domain=.quadrigacx.com; HttpOnly
|
38
|
+
- ci_session=X2YBNVM3BD4FKg9wXzoAMQZiUW4IKlZwUzYFclJwAjwLOFBvVggMalpmVHgBawBzAG4NMlY7AjgEcgxvCDpQZAJhBTEBM1cxWj8AMFI2ADxfPwE%2FU2QEPAVmDzpfNgA4BmFRbAg5VmZTZQU2UjYCNAtgUDlWYQwzWjZUeAFrAHMAbg0wVjkCOARyDGAIeFBaAmMFZQE0V3JaYwAiUiAALV88AXxTOAQ1BWIPOV8iADEGZVFsCCZWNVNgBS9SMgJhC3lQM1ZmDDVaIFRhASMAOgBlDTFWMwIgBCUMeghtUHcCXQVgATdXZVpoACVScQA0X3QBNVM2BD4Fcw9RX3UAYgYrUXYIM1ZwU2kFMFIwAm8LdVBtVjYMcFp2VAUBMQBjACANaFZ%2FAmsEJAxwCCpQPgJrBTsBYVc0WjQAYFJlADtfMwE5UzYEMAVqD3BfOgA5BmhRdgh9VnBTNgVzUlwCMQs2UHVWNgwhWjlUKQFqADAAbg0jVisCOQQt;
|
39
|
+
expires=Mon, 19-Jan-2015 07:17:24 GMT; Max-Age=7200; path=/
|
40
40
|
X-Frame-Options:
|
41
41
|
- SAMEORIGIN
|
42
42
|
Cf-Ray:
|
43
|
-
-
|
43
|
+
- 1ab090d3634a052e-YYZ
|
44
44
|
Content-Encoding:
|
45
45
|
- gzip
|
46
46
|
body:
|
47
47
|
encoding: ASCII-8BIT
|
48
48
|
string: !binary |-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
49
|
+
H4sIAAAAAAAAA6pWSipJjk8sS8zMSUzKSVWyUjLQM4ACJR2wZFFqcWpRWWoK
|
50
|
+
NrmkxJzEvGQMbcmJKShmGluYmOtZmkBlkAw00jOBqUcYZWxhaqBnDFJdWoxq
|
51
|
+
DsgSqDCaq6CiqO5R0lGqSCzFMAHqSJAUFr9BZTB9pqSjlJYKETAFcWsBAAAA
|
52
|
+
//8DABA9HgI8AQAA
|
53
53
|
http_version:
|
54
|
-
recorded_at:
|
55
|
-
recorded_with: VCR 2.9.
|
54
|
+
recorded_at: Mon, 19 Jan 2015 05:17:24 GMT
|
55
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,101 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.quadrigacx.com/v2/buy
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"price":"240","amount":"0.01","key":"kOnVDjfPPh","nonce":"1421645515587","signature":"c5fc3d51288bbc8875a5a4cf58cb43b30f2a87d136ed61d12d20f86ceec1ad43"}'
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Content-Length:
|
17
|
+
- '153'
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- cloudflare-nginx
|
27
|
+
Date:
|
28
|
+
- Mon, 19 Jan 2015 05:31:56 GMT
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Set-Cookie:
|
36
|
+
- __cfduid=df1908c7d411e55da3cec76d2c81dde861421645515; expires=Tue, 19-Jan-16
|
37
|
+
05:31:55 GMT; path=/; domain=.quadrigacx.com; HttpOnly
|
38
|
+
- ci_session=DzZUYAVhAzlUewxzVjNaa1A0BTpYegYgUTRWIVR2UmwIOwc4WgQIbl9jBysEbgR3D2ENMlI%2FAjgHcVJgCWpcMFdiAjUFZAMyCDJVMgc0WTAPY1RqBTEDO1Q3DGRWPlpiUD0FZlg6BmdRZlZqVGdSYQhmBzJabwg%2FX2YHKwRuBHcPYQ0wUj0COAdxUj4JeVxWVzYCYgUwAyYIMVV3B3VZdA9sVCkFbgMyVDMMOlYrWmtQMwU4WHYGZVFiVnxUNFIxCHoHZFpqCDFfJQcyBCYEPg9qDTFSNwIgByZSJAlsXHtXCAJnBTMDMQg6VXAHJFltDyRUYAVgAzlUIgxSVnxaOFB9BSJYYwYgUWtWY1Q2Uj8Idgc6WjoIdF9zB1YENARnDy8NaFJ7AmsHJ1IuCStcMlc%2BAjwFZQNgCGZVNQcwWWIPYlRvBWUDNlQ7DHNWM1pjUD4FIlgtBiBRNFYgVFpSYQg1ByJaOgglXzwHegRvBDQPYQ0jUi8COQcu;
|
39
|
+
expires=Mon, 19-Jan-2015 07:31:55 GMT; Max-Age=7200; path=/
|
40
|
+
X-Frame-Options:
|
41
|
+
- SAMEORIGIN
|
42
|
+
Cf-Ray:
|
43
|
+
- 1ab0a6192ab4052e-YYZ
|
44
|
+
Content-Encoding:
|
45
|
+
- gzip
|
46
|
+
body:
|
47
|
+
encoding: ASCII-8BIT
|
48
|
+
string: !binary |-
|
49
|
+
H4sIAAAAAAAAAxyOQQ6DIBQFr9K8NZqPFI1cpkGglFiVVIxI07s3OttZzHyh
|
50
|
+
p2WbExSoJk4XYBiWZYTCkMzDaAsGq5NLYXJQaIjLinjF+xu1SnAlJRiChcIi
|
51
|
+
aegidT632hbRBrdrWcYmSmcP85pDKLErec4ia0F+etp9tH4WE/dve/Q7GOIn
|
52
|
+
mKtyp/paWZNO23oOgiEd8ZSE3x8AAP//AwB27kaXugAAAA==
|
53
|
+
http_version:
|
54
|
+
recorded_at: Mon, 19 Jan 2015 05:31:56 GMT
|
55
|
+
- request:
|
56
|
+
method: post
|
57
|
+
uri: https://api.quadrigacx.com/v2/cancel_order
|
58
|
+
body:
|
59
|
+
encoding: UTF-8
|
60
|
+
string: '{"id":"o50b7p07gx6adz36iewa5zk2p5edychniizp7zxnx3xa30gmfdwkdgn3m1gldy9w","key":"kOnVDjfPPh","nonce":"1421645516976","signature":"afaa5595543cd44db5b8c5fd2889fb5d1e19554a52e17eaa7db0e9760df54eb8"}'
|
61
|
+
headers:
|
62
|
+
Accept:
|
63
|
+
- "*/*; q=0.5, application/xml"
|
64
|
+
Accept-Encoding:
|
65
|
+
- gzip, deflate
|
66
|
+
Content-Type:
|
67
|
+
- application/json
|
68
|
+
Content-Length:
|
69
|
+
- '195'
|
70
|
+
User-Agent:
|
71
|
+
- Ruby
|
72
|
+
response:
|
73
|
+
status:
|
74
|
+
code: 200
|
75
|
+
message: OK
|
76
|
+
headers:
|
77
|
+
Server:
|
78
|
+
- cloudflare-nginx
|
79
|
+
Date:
|
80
|
+
- Mon, 19 Jan 2015 05:31:58 GMT
|
81
|
+
Content-Type:
|
82
|
+
- application/json; charset=utf-8
|
83
|
+
Content-Length:
|
84
|
+
- '6'
|
85
|
+
Connection:
|
86
|
+
- keep-alive
|
87
|
+
Set-Cookie:
|
88
|
+
- __cfduid=d4ab8c2717268bbcb7e004c2a325643561421645517; expires=Tue, 19-Jan-16
|
89
|
+
05:31:57 GMT; path=/; domain=.quadrigacx.com; HttpOnly
|
90
|
+
- ci_session=AThVYVE1V21RfgB%2FVTBXZgBkV2hYegEnUTQDdAYkBDpYawI9VwkAZlxgAy9WPFEiVTsLNFI%2FBT9XIVBkWDpUMQQ1UDVUZg5uCjJXMgEwDjgBaVVvUWZXMlE9ADpVaVdmAGZXY1hqAWBRMAMxBjMEa1g2AmZXZgA4XGYDL1Y8USJVOws2Uj0FP1chUDxYKFReBGVQMFRhDisKM1d1AXMOIwFiVShROldmUTYANlUoV2YAY1dqWHYBYlFiAykGZgRnWCoCYVdnADlcJgM2VnRRa1UwCzdSNwUnV3ZQJlg9VHMEW1A1VGIOPAo4V3IBIg46ASpVYVE0V21RJwBeVX9XNQAtV3BYYwEnUWsDNgZkBGlYJgI%2FVzcAfFxwA1JWZlEyVXULblJ7BWxXd1AsWHpUOgRtUG5UNA5tCmRXNwE2DjUBbFVuUTFXYFE%2BAH9VMFduAG5XcFgtASdRNAN1BggEN1hlAidXNwAtXD8DflY9UWFVOwslUi8FPld%2B;
|
91
|
+
expires=Mon, 19-Jan-2015 07:31:57 GMT; Max-Age=7200; path=/
|
92
|
+
X-Frame-Options:
|
93
|
+
- SAMEORIGIN
|
94
|
+
Cf-Ray:
|
95
|
+
- 1ab0a621ec93052e-YYZ
|
96
|
+
body:
|
97
|
+
encoding: UTF-8
|
98
|
+
string: '"true"'
|
99
|
+
http_version:
|
100
|
+
recorded_at: Mon, 19 Jan 2015 05:31:58 GMT
|
101
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,55 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.quadrigacx.com/v2/buy
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"price":"240","amount":"0.01","key":"kOnVDjfPPh","nonce":"1421644610931","signature":"ab1831355e35368fdfde5e32e56f3360c41daf5b966bcc90d56fde4913047d04"}'
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Content-Length:
|
17
|
+
- '153'
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- cloudflare-nginx
|
27
|
+
Date:
|
28
|
+
- Mon, 19 Jan 2015 05:16:52 GMT
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Set-Cookie:
|
36
|
+
- __cfduid=d8b1e2ca90a576cc8cd40b62e77ed00131421644611; expires=Tue, 19-Jan-16
|
37
|
+
05:16:51 GMT; path=/; domain=.quadrigacx.com; HttpOnly
|
38
|
+
- ci_session=DzYBNVYyDDYHKAl2VjNTYgdjBjkNL1ZwB2IGcQclAjwLOAI9AlxeOAA8VnoCaABzBmgPMFE8VW8AdlA0X2ZQZlJqBjpSOlJhCzYFMAI7Cz0PZQE6VmUMbwdgCWNWb1NmB2MGMA1rVmUHMQY0B2UCYgtjAmsCYF5iAG5WegJoAHMGaA8yUT5VbwB2UDxfL1BaUjMGZlJnUncLMgUnAnALJg9sAXxWPQw9B2AJP1YrU2IHZAY7DSNWNQc0BiwHZwJhC3kCYQIyXmcAelZjAiAAOgZjDzNRNFV3ACFQJl86UHdSDQZjUmRSYAs5BSACIQs%2FDyQBNVYzDDYHcQlXVnxTMQcqBiENNlZwBz0GMwdlAm8LdQI%2FAmJeIgAsVgcCMgBjBiYPalF4VTwAIFAsX31QPlI7BjhSMlIxC2UFZQI1CzAPYwE5VjYMPQdoCXZWM1NqB2kGIQ14VnAHYgZwBwkCMQs2AicCYl5zAGNWKwJpADAGaA8hUSxVbgAp;
|
39
|
+
expires=Mon, 19-Jan-2015 07:16:51 GMT; Max-Age=7200; path=/
|
40
|
+
X-Frame-Options:
|
41
|
+
- SAMEORIGIN
|
42
|
+
Cf-Ray:
|
43
|
+
- 1ab0900381200534-YYZ
|
44
|
+
Content-Encoding:
|
45
|
+
- gzip
|
46
|
+
body:
|
47
|
+
encoding: ASCII-8BIT
|
48
|
+
string: !binary |-
|
49
|
+
H4sIAAAAAAAAAxyOSw6CMBgGr2K+dSGtgYK9jOkDSkVosT8RNN7dwGxnMfOF
|
50
|
+
nuI6ExR4yQU/AYOJcYSCIXu32oHBaeooTB0UrlzUBReFuF24VEKqWoAhOCgM
|
51
|
+
Jmwz9a6fxrWj1CS7LGnbW/9syPg657j0g6Qtuyzl4N5UzQ/xzKH5mOC9acGQ
|
52
|
+
XsGelYqX50omTWs+BsFAezokx+8PAAD//wMAbfz5FLoAAAA=
|
53
|
+
http_version:
|
54
|
+
recorded_at: Mon, 19 Jan 2015 05:16:52 GMT
|
55
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.quadrigacx.com/v2/buy
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"amount":"5.00","key":"kOnVDjfPPh","nonce":"1421644938450","signature":"a336a7157dc33a56101c09d798edfa0975b0162005e48614705a8f3b219ea78e"}'
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Content-Length:
|
17
|
+
- '139'
|
18
|
+
User-Agent:
|
19
|
+
- Ruby
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 200
|
23
|
+
message: OK
|
24
|
+
headers:
|
25
|
+
Server:
|
26
|
+
- cloudflare-nginx
|
27
|
+
Date:
|
28
|
+
- Mon, 19 Jan 2015 05:22:22 GMT
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Connection:
|
34
|
+
- keep-alive
|
35
|
+
Set-Cookie:
|
36
|
+
- __cfduid=d2d93b3a5a47946cff1e330661b44e40a1421644938; expires=Tue, 19-Jan-16
|
37
|
+
05:22:18 GMT; path=/; domain=.quadrigacx.com; HttpOnly
|
38
|
+
- ci_session=DTQANFM3AzlUe1wjAGVTYgNnAj0NL1F3BWBXIA8tVWsAMwQ7VggBZ1pmVnoGbAFyA20MMwRpVmxQJgM0Cz1UNFFiA2VWNldiDjdVPFZjDzANNAA2U2MDMVRiXDMAb1NnAzUCNg06UWcFMFdjDz9VYwBvBGRWNgFqWjtWegZsAXIDbQwxBGtWbFAmA28Le1ReUTADY1ZjV3ION1V3ViQPIg1uAH1TOAMyVDNcagB9U2IDYAI%2FDSNRMgU2V30Pb1U2AHIEZ1ZmAThaIFZjBiQBOwNmDDAEYVZ0UHEDdQtuVHNRDgNmVmBXZQ48VXBWdQ87DSYANFM2AzlUIlwCACpTMQMuAiUNNlF3BT9XYg9tVTgAfgQ5VjYBfVp2VgcGNgFiAyMMaQQtVj9QcAN%2FCylUOlE4Az1WNlc0DmBVNVZhDzQNYQA3UzEDOlQ7XCMAZVNqA20CJQ14UXcFYFchDwFVZgA9BCFWNgEsWjlWKwZtATEDbQwiBHlWbVB5;
|
39
|
+
expires=Mon, 19-Jan-2015 07:22:19 GMT; Max-Age=7200; path=/
|
40
|
+
X-Frame-Options:
|
41
|
+
- SAMEORIGIN
|
42
|
+
Cf-Ray:
|
43
|
+
- 1ab098049209052e-YYZ
|
44
|
+
Content-Encoding:
|
45
|
+
- gzip
|
46
|
+
body:
|
47
|
+
encoding: ASCII-8BIT
|
48
|
+
string: !binary |-
|
49
|
+
H4sIAAAAAAAAA6pWSszNL80rUbJSMtAzMLQ0MTUzNVLSUcovSkktKo7PTSxJ
|
50
|
+
zkhNUbKKrsahsKAoMzlVyUrJyNRMz9JSqTa2FgAAAP//AwA5iIGWUwAAAA==
|
51
|
+
http_version:
|
52
|
+
recorded_at: Mon, 19 Jan 2015 05:22:22 GMT
|
53
|
+
recorded_with: VCR 2.9.3
|
@@ -4,19 +4,17 @@ http_interactions:
|
|
4
4
|
method: get
|
5
5
|
uri: https://api.quadrigacx.com/v2/order_book
|
6
6
|
body:
|
7
|
-
encoding:
|
8
|
-
string: ''
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"key":"kOnVDjfPPh","nonce":"1421644644035","signature":"61d0af42f970402241f4e2ff6ede8f890d1e90ed54af4a9b89f8b539fb231342"}'
|
9
9
|
headers:
|
10
10
|
Accept:
|
11
|
-
-
|
11
|
+
- application/json
|
12
12
|
Accept-Encoding:
|
13
13
|
- gzip, deflate
|
14
|
-
|
15
|
-
-
|
16
|
-
|
17
|
-
- '
|
18
|
-
Signature:
|
19
|
-
- f4b99272602da944c9f44ad68b9f662c8ff9b1ec7b40a1a9f95aeb5b51547521
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
|
+
Content-Length:
|
17
|
+
- '123'
|
20
18
|
User-Agent:
|
21
19
|
- Ruby
|
22
20
|
response:
|
@@ -27,7 +25,7 @@ http_interactions:
|
|
27
25
|
Server:
|
28
26
|
- cloudflare-nginx
|
29
27
|
Date:
|
30
|
-
-
|
28
|
+
- Mon, 19 Jan 2015 05:17:24 GMT
|
31
29
|
Content-Type:
|
32
30
|
- text/html
|
33
31
|
Transfer-Encoding:
|
@@ -35,63 +33,60 @@ http_interactions:
|
|
35
33
|
Connection:
|
36
34
|
- keep-alive
|
37
35
|
Set-Cookie:
|
38
|
-
- __cfduid=
|
39
|
-
|
40
|
-
- ci_session=
|
41
|
-
expires=
|
36
|
+
- __cfduid=d325fe5d9ad06403f8a9097b8bd74db9e1421644644; expires=Tue, 19-Jan-16
|
37
|
+
05:17:24 GMT; path=/; domain=.quadrigacx.com; HttpOnly
|
38
|
+
- ci_session=WmMPOwJmBz1TfAl2VTAGNwFlV2hcflZwUjcDdFJwAz0OPVFuVQtbPQk1DiIHbVYlBGoMM1I%2FUGpSJAA9DzoENQc1AmAEMwJjDWRTZgE2XmdaMg82AmIHNVMwCTZVOwY%2BATFXYFxsVmdSNgM%2FUjMDZQ42UWJVZVtsCWEOIgdtViUEagwxUj1QalIkAGwPfwQOB2YCYgQxAicNNFNxAXNec1o5D3ICaQc2UzQJP1UoBjcBYldqXHJWNVJhAylSMgNgDnxRMlVlW2IJcw47ByVWbARhDDBSN1ByUnMAdg9qBCMHWAJnBDICMA0%2FU3YBIl5qWnEPOwJnBz1TJQlXVX8GZAEsV3BcZ1ZwUmgDNlIwA24OcFFsVTVbJwklDl8HN1Y1BCQMaVJ7UDlScgB8Dy0EagduAjwEZAJhDWNTMwE2XmVaNg83AmcHM1M8CXZVMAY%2FAW9XcFwpVnBSNwN1UlwDMA4zUXRVNVt2CWoOcwdsVmYEagwiUi9Qa1J7;
|
39
|
+
expires=Mon, 19-Jan-2015 07:17:24 GMT; Max-Age=7200; path=/
|
42
40
|
Vary:
|
43
41
|
- Accept-Encoding
|
44
42
|
X-Frame-Options:
|
45
43
|
- SAMEORIGIN
|
46
44
|
Cf-Ray:
|
47
|
-
-
|
45
|
+
- 1ab090d1e33d052e-YYZ
|
48
46
|
Content-Encoding:
|
49
47
|
- gzip
|
50
48
|
body:
|
51
49
|
encoding: ASCII-8BIT
|
52
50
|
string: !binary |-
|
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
|
-
gwyo6mesfpSfgwhnf4xrIn7oefnz9kPIjreHP+P486nnWZBpCpp83+sEPUfu
|
93
|
-
4qcOP/W56sn8fW9whM+/Ru2bHxmG8KFVISDVjzjQICxYqKbQ3MmOM67NJz3w
|
94
|
-
5eXpgcvdzJxz0/d//gUAAP//AwDiiTPooRgAAA==
|
51
|
+
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
|
89
|
+
8efzFgAA
|
95
90
|
http_version:
|
96
|
-
recorded_at:
|
97
|
-
recorded_with: VCR 2.9.
|
91
|
+
recorded_at: Mon, 19 Jan 2015 05:17:24 GMT
|
92
|
+
recorded_with: VCR 2.9.3
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quadrigacx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maros Hluska
|
@@ -117,6 +117,7 @@ extra_rdoc_files: []
|
|
117
117
|
files:
|
118
118
|
- ".gitignore"
|
119
119
|
- Gemfile
|
120
|
+
- Gemfile.lock
|
120
121
|
- LICENSE
|
121
122
|
- README.md
|
122
123
|
- Rakefile
|
@@ -130,6 +131,9 @@ files:
|
|
130
131
|
- quadrigacx.gemspec
|
131
132
|
- spec/client_spec.rb
|
132
133
|
- spec/fixtures/vcr_cassettes/balance.yml
|
134
|
+
- spec/fixtures/vcr_cassettes/cancel_order.yml
|
135
|
+
- spec/fixtures/vcr_cassettes/limit_buy.yml
|
136
|
+
- spec/fixtures/vcr_cassettes/market_buy.yml
|
133
137
|
- spec/fixtures/vcr_cassettes/order_book.yml
|
134
138
|
- spec/spec_helper.rb
|
135
139
|
homepage: http://mhluska.com/
|
@@ -159,5 +163,8 @@ summary: QuadrigaCX API wrapper
|
|
159
163
|
test_files:
|
160
164
|
- spec/client_spec.rb
|
161
165
|
- spec/fixtures/vcr_cassettes/balance.yml
|
166
|
+
- spec/fixtures/vcr_cassettes/cancel_order.yml
|
167
|
+
- spec/fixtures/vcr_cassettes/limit_buy.yml
|
168
|
+
- spec/fixtures/vcr_cassettes/market_buy.yml
|
162
169
|
- spec/fixtures/vcr_cassettes/order_book.yml
|
163
170
|
- spec/spec_helper.rb
|