quadrigacx 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 32d1bc9b5f86dcb75bfbc0bf0c9ae9f844794934
4
- data.tar.gz: fdb64cf1ae1af9639be39453fff441ac40b49d95
3
+ metadata.gz: c6ee8bdb0b5c8b603cf66c928e21630744007e99
4
+ data.tar.gz: 3d030a7bb3406b05eaa44852a1ce31b85638a938
5
5
  SHA512:
6
- metadata.gz: 5333c603da4a5c9f9cc57349be8b0a6bf6735c9ec5c5d3d29f812b567101e21c1ac533196329ee077a6b3e27c2dde49109b8ccc99e99897da9e59ef12d3b9327
7
- data.tar.gz: 44ca3a54072086c86841b32d7091c29d18e4f2c383d23725944472061a6d0e76f3f12b50baad387f69308fc53e95b7843c7f066016c0e716f803193af8e1370c
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(api_key: 'API_KEY', api_secret: 'API_SECRET', client_id: 'CLIENT_ID')
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
- # - Optional fields -
6
- # book - book to return orders for. Default btc_cad.
7
- # group - group orders with the same price (0 - false; 1 - true). Default: 1.
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
@@ -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
- hash = Hashie::Mash.new(JSON.parse(resp.body))
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
- if http_method == :post
41
- RestClient.post(url, body.to_json, :content_type => :json, :accept => :json)
42
- else
43
- RestClient.send(http_method, url, body)
44
- end
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
@@ -1,5 +1,5 @@
1
1
  module QuadrigaCX
2
2
  unless defined?(QuadrigaCX::VERSION)
3
- VERSION = '0.0.3'
3
+ VERSION = '0.0.4'
4
4
  end
5
5
  end
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":"1421609504253","signature":"8f8c068624b4980659f0a2d0eabbe756d38fa204a0a19f8dd4deedb1046aebc8"}'
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
- - Sun, 18 Jan 2015 19:31:41 GMT
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=d7e229ae5b37d969e7ef6ecc80f0c71041421609501; expires=Mon, 18-Jan-16
37
- 19:31:41 GMT; path=/; domain=.quadrigacx.com; HttpOnly
38
- - ci_session=DDUPO1I2VmwHKF0iBGFWZ1M3VmkMLl17A2ZRJg8tBDoBMlFuVApcOltnVnpUPlckDmAPMABtWmBRJwM%2BWDtSYgUzBTZWPwVkAWUAZQJgCT4MYQ85UjRWbgdnXWMEaVZnUz9WawxoXTADMVFjDz8EZQE%2BUWJUYVw3W2BWelQ%2BVyQOYA8yAG9aYFEnA29YKFJYBWQFZVZjBSABOAAiAnAJJAxvD3JSOVZnB2BdawR5VmdTMFZrDCJdPgMwUXsPbwRnAXNRMlRkXGVbIVZjVHZXbQ5rDzMAZVp4UXADdVg9UnUFWgVgVmAFNwEzACUCIQk9DCcPO1I3VmwHcV0DBC5WNFN%2BVnEMN117AzlRZA9tBGkBf1FsVDRcIFt3VgdUZFc0Di4PagApWjNRcQN%2FWHpSPAVsBTtWNgVmAW8AYAI1CTYMbQ80UjNWZwdoXSIEYVZvUz1WcQx5XXsDZlEnDwEENwE8UXRUNFxxWzhWK1Q%2FV2cOYA8hAH1aYVF4;
39
- expires=Sun, 18-Jan-2015 21:31:41 GMT; Max-Age=7200; path=/
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
- - 1aad36da0aac052e-YYZ
43
+ - 1ab090d3634a052e-YYZ
44
44
  Content-Encoding:
45
45
  - gzip
46
46
  body:
47
47
  encoding: ASCII-8BIT
48
48
  string: !binary |-
49
- H4sIAAAAAAAAA2yPQQqEMAxF79K1lGir1bmMpDWCUGahowzI3H1ojWjVLP/j
50
- P35WYT+uxQUHj9aTeAmQStdFCQAii3CkicaFusiAj5lFj293qznsEmeuoZHG
51
- MDkJC1Vqme+Vw6ZMpWQdCvOUqsIEji/DOD1PiuEX55uBXwjo4T0mqYlBT1sQ
52
- P/39AQAA//8DAHDQhBY/AQAA
49
+ H4sIAAAAAAAAA6pWSipJjk8sS8zMSUzKSVWyUjLQM4ACJR2wZFFqcWpRWWoK
50
+ NrmkxJzEvGQMbcmJKShmGluYmOtZmkBlkAw00jOBqUcYZWxhaqBnDFJdWoxq
51
+ DsgSqDCaq6CiqO5R0lGqSCzFMAHqSJAUFr9BZTB9pqSjlJYKETAFcWsBAAAA
52
+ //8DABA9HgI8AQAA
53
53
  http_version:
54
- recorded_at: Sun, 18 Jan 2015 19:31:45 GMT
55
- recorded_with: VCR 2.9.2
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: US-ASCII
8
- string: ''
7
+ encoding: UTF-8
8
+ string: '{"key":"kOnVDjfPPh","nonce":"1421644644035","signature":"61d0af42f970402241f4e2ff6ede8f890d1e90ed54af4a9b89f8b539fb231342"}'
9
9
  headers:
10
10
  Accept:
11
- - "*/*; q=0.5, application/xml"
11
+ - application/json
12
12
  Accept-Encoding:
13
13
  - gzip, deflate
14
- Key:
15
- - kOnVDjfPPh
16
- Nonce:
17
- - '1421609503025'
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
- - Sun, 18 Jan 2015 19:31:40 GMT
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=d9d5f8cc700725a8702d711459207d2051421609500; expires=Mon, 18-Jan-16
39
- 19:31:40 GMT; path=/; domain=.quadrigacx.com; HttpOnly
40
- - ci_session=CzIBNQBkDDYCLQp1BWAAMVI2Um0BI1RyA2ZXIFZ0BjgPPAQ7AF4Jbw4yU38CaAR3VjgAP1I%2FUWtXIQ0%2BATFXNlQ1DT4BNQFjWjVfOgBjDDULMQE8ADUMPwI1CjIFbQA4UmVSZgFlVGcDO1dkVmQGYA9mBGcAZQkxDm5TfwJoBHdWOAA9Uj1Ra1chDWEBcVddVDUNbQE0ASRaY199AHIMIQtoAXwAaww9AmUKPAV4ADFSMVJvAS9UNwMwV31WNgZlD30EZwAwCTAOdFNmAiAEPlYzADxSN1FzV3YNewFkV3BUCw1oATcBM1poX3oAIww4CyABNQBlDDYCdApUBS8AYlJ%2FUnUBOlRyAzlXYlY0BmsPcQQ5AGAJdQ4iUwICMgRnVnYAZVJ7UThXdw1xASNXOVQ9DTMBYQFiWjRfPwA3DDMLagE6AGEMPAJtCnUFYAA5UjxSdQF0VHIDZlchVlgGNQ8yBCEAYAkkDm1TLgJpBDRWOAAuUi9Rald%2B;
41
- expires=Sun, 18-Jan-2015 21:31:40 GMT; Max-Age=7200; path=/
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
- - 1aad36d00984052e-YYZ
45
+ - 1ab090d1e33d052e-YYZ
48
46
  Content-Encoding:
49
47
  - gzip
50
48
  body:
51
49
  encoding: ASCII-8BIT
52
50
  string: !binary |-
53
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- rieINWg4dzyDWPIvPWdUEym8xbRPj75VfvKoWvnekeNDp16dojejTmdCyM5S
74
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- t7JKhDQOwp0ZkkWmLn47jzuDn5w+8G1AAAWhVCQK2iqK0iuXiq/Z9t3gVZmk
83
- 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
- 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
- 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
- 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
- /Ad7+7EXwDQny8n3vY+hoK/hAhre8u2DH2zlLzRUc6Oppy3/5CBtoH3Om8Yz
88
- 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
- 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
- 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
- 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
- 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
- 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
94
- 5eXpgcvdzJxz0/d//gUAAP//AwDiiTPooRgAAA==
51
+ H4sIAAAAAAAAA3SYy6pluQ2G32WPC6GbLalfpalBh2TQhIZA9Szk3YOWfF1V
52
+ 58CZfMvblmXpl+z/fv7+869//fj7j7/+8/ntQ8rUVbvq59vnH3/+88fnt99/
53
+ /3ATQPx8+1CAOjZFxM/3b/mBQdrn2wfBqJOZbc6eP8jxz9/i1B8+8OQEVhyJ
54
+ 6ZifQOXh8R5PUbyjy8kxTScwVj3mQcCyRxA5sA2uMddtOckarw6U4xFC4zF1
55
+ 8xyPoIQSsbiBJ2ewQGKMzZmf8WJ0zt+hl53BIia0OdMzPkfn/+ANniMhiGHo
56
+ 4nUwoF3YWWRwnfsSb7H9kDzPiwCbnfMoaNpJYNrO/SpwnW84tWDZHNNOAqbw
57
+ vscLWNqJIHz5kyFqvHCP3hYn6LVfaXzOQ6C1ry5p/cHH+TIqEy2eBtb8Cfd4
58
+ nH6zdtmDc7+98bPA4iNuzf3mj58ZMI1cXGLOj1QRurjYw6mzus68EAfJeRCi
59
+ tcdDiz/nnvY4+4orWfHW7fSDOGDFP11+FlvnSNr3uYvNuAonVeLNhz9Vz7iS
60
+ Dl7xbxaef4tb+ae3INRj/HNeDCrIfdvfy58Iria4/dArrgiGOzcf9kTUgQ3e
61
+ wCqP2Eo5Fh/ndeuDtJoHUx9ePO0UGOEw+RA4hoEnR2h1XrnXiz/jEYg4ZWBw
62
+ ssnbFW801kVgjMfRgzNQnZdWOg6OBJi8AV7ni1icAfmM8+Q5fwcW4lAvThEQ
63
+ GSf93hfF0g1B67l08dTJhyNCZun+xVQafc2UltZMLz489ws+Vnh94WkSPkOu
64
+ 3/y8xPdvnz9+/HuWp167zGLRnjwcM47TUCDv3LVvThV97vIEzuI6skostvo2
65
+ h1bZqa3yfHGr6uQsh2q24XV+RVlfe4fmKI1bXx8eucg0OWWkI/RR/gK594N7
66
+ yXJvpY+D0yxzQwU3p/JgJzKM0MWteIuzHPTMp2d+vdKnZ35UOnQi5hFmyZ/D
67
+ VtCurSPO+UdaNXBzU1zjM4oqTW4HaR1AbvvpAjavYHpFRn6ok//pw4ymBqWz
68
+ 60MHT5emB1WxLZNsKthrIlsV0yO3trmXUrUhPYP7VP6nLbl4bU2lpHzxX687
69
+ Yi47qycUN3+UkKAcdPCnA6H3fh2i7BFHTncPHjM/m6hqX34YsfuTR21lYXd6
70
+ 1G3xUQLF+Egmw2kosr14lQRFp5S9wRmwYn2E7sErpt0a594Wb6MVEHPRWdKM
71
+ wUarURV8cx+xe0mtyXK0aBeaJcpkiop5hPXZoplWLiG4N/MeI4dNd4vmvCQ1
72
+ +RCJCO679fERoS9pZo/KvXdAxBclakp5B+N+HHBKf9kZT4EaXKYAv/wgU8gR
73
+ UPTp3gafKUaA1jt1rR5TcEaKAHNrJFRNgky9zmJ3rkBzpmw2vTfHcp1wzB+Q
74
+ d2yzq5NZrVMdQ82Gfkt2LcWNHAPJimtUF+hApuE+ulVpXN0qAxGFU9Dg6fvH
75
+ dSLkujawdPp2tWTO17oj9QbfqXGPt1XS3h/GhvP7yXdM3J7zYWi2jezaRsxJ
76
+ DJ56z4TS4+E6z/hVgBTH/L/gv0x6xdGvZuxd/Nd9hc6jV5Bginkf1AyeWvg1
77
+ PrPiZ88p8Rd8bSCQg0nrxJRsFyzalVhnU/He8Iw4hW5OiCNSVLadSqyGFSk6
78
+ I/Ftf/artW5qevAorCrLP3JWAdVVQHlcSIrPiHsFhM7IUojuKNzH/DHsZyBj
79
+ 0aZlZ9sHfM3TsAPXPYKiefdx/22k8956+afxFgn01I/yc2OtDHvZ2Wb/nO1p
80
+ V0YujWiiwMXlFJs291v33M3nfn/itu53F/cvxsdXPOa95tpv36J4je/bDzef
81
+ 98E3z3eP5K+47W01PJf9/fSDNTIrv/VZhVOMz/Ff7Lfv/SJa67z4WvcS+z6L
82
+ BgKd89sXfrCZvwjUzI2HnTb9QyBh2LqO8TLiJLudc57kta+6BS2+7LnstMPP
83
+ 5zuS7XcPifrF4KuSjOeNzce6T4VcfN53JOc5+BfxaX0I5et9w/rSgX7ZacsP
84
+ t5/3OTauL8Vj6cPtn+O8Ck++9mvnfn3fB6/3Ad9Fns/5fepGVtSTk837+3W/
85
+ 9i/ywvd5Xe9dPv38agn8Cz+7++R4+tNjcAWl8JTQwfe5Mz5X5ocHrk7hyrvA
86
+ NX5cowffrcuVd3Hc38/4CdrzDIErvv3DEmzIpZ8x61F+DubZbMbR6Vx2Hv48
87
+ /RC64u3yZ2x/3nbui9u4qE6+1nXGnq1U8a3Dtz2HnvAxD+HXzwBr5SvDCL8o
88
+ VYTE0OqtB8NClFt9WE8H6YzzllwPBj8vnh443C0i2Td9/9//AQAA//8DAFdJ
89
+ 8efzFgAA
95
90
  http_version:
96
- recorded_at: Sun, 18 Jan 2015 19:31:44 GMT
97
- recorded_with: VCR 2.9.2
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.3
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