uphold 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rubocop.yml +32 -0
  4. data/.travis.yml +13 -0
  5. data/Gemfile +10 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +335 -0
  8. data/Rakefile +14 -0
  9. data/lib/uphold/api/auth_token.rb +17 -0
  10. data/lib/uphold/api/card.rb +36 -0
  11. data/lib/uphold/api/contact.rb +34 -0
  12. data/lib/uphold/api/endpoints.rb +26 -0
  13. data/lib/uphold/api/private_transaction.rb +58 -0
  14. data/lib/uphold/api/public_transaction.rb +23 -0
  15. data/lib/uphold/api/ticker.rb +23 -0
  16. data/lib/uphold/api/transparency.rb +15 -0
  17. data/lib/uphold/api/user.rb +23 -0
  18. data/lib/uphold/api.rb +22 -0
  19. data/lib/uphold/client.rb +14 -0
  20. data/lib/uphold/entities/asset.rb +9 -0
  21. data/lib/uphold/entities/auth_token.rb +9 -0
  22. data/lib/uphold/entities/base_entity.rb +27 -0
  23. data/lib/uphold/entities/card.rb +15 -0
  24. data/lib/uphold/entities/contact.rb +13 -0
  25. data/lib/uphold/entities/error.rb +8 -0
  26. data/lib/uphold/entities/ledger_entry.rb +10 -0
  27. data/lib/uphold/entities/oauth_error.rb +9 -0
  28. data/lib/uphold/entities/phone.rb +12 -0
  29. data/lib/uphold/entities/ticker.rb +10 -0
  30. data/lib/uphold/entities/transaction.rb +17 -0
  31. data/lib/uphold/entities/user.rb +18 -0
  32. data/lib/uphold/helpers.rb +23 -0
  33. data/lib/uphold/options.rb +39 -0
  34. data/lib/uphold/pagination.rb +9 -0
  35. data/lib/uphold/request.rb +70 -0
  36. data/lib/uphold/request_data.rb +7 -0
  37. data/lib/uphold/version.rb +3 -0
  38. data/lib/uphold.rb +46 -0
  39. data/spec/fixtures/vcr_cassettes/ledger.yml +56 -0
  40. data/spec/fixtures/vcr_cassettes/me/card.yml +61 -0
  41. data/spec/fixtures/vcr_cassettes/me/cards.yml +67 -0
  42. data/spec/fixtures/vcr_cassettes/me/contact.yml +61 -0
  43. data/spec/fixtures/vcr_cassettes/me/contacts.yml +61 -0
  44. data/spec/fixtures/vcr_cassettes/me/created_card.yml +61 -0
  45. data/spec/fixtures/vcr_cassettes/me/created_contact.yml +61 -0
  46. data/spec/fixtures/vcr_cassettes/me/phones.yml +61 -0
  47. data/spec/fixtures/vcr_cassettes/me/transactions/cancel.yml +61 -0
  48. data/spec/fixtures/vcr_cassettes/me/transactions/commit.yml +62 -0
  49. data/spec/fixtures/vcr_cassettes/me/transactions/create.yml +61 -0
  50. data/spec/fixtures/vcr_cassettes/me/transactions/create_waiting_cancel.yml +118 -0
  51. data/spec/fixtures/vcr_cassettes/me/transactions/create_waiting_resend.yml +118 -0
  52. data/spec/fixtures/vcr_cassettes/me/transactions/resend.yml +61 -0
  53. data/spec/fixtures/vcr_cassettes/me.yml +185 -0
  54. data/spec/fixtures/vcr_cassettes/pats.yml +61 -0
  55. data/spec/fixtures/vcr_cassettes/reserve/transaction.yml +60 -0
  56. data/spec/fixtures/vcr_cassettes/reserve/transactions.yml +60 -0
  57. data/spec/fixtures/vcr_cassettes/tickers.yml +60 -0
  58. data/spec/fixtures/vcr_cassettes/transparency.yml +60 -0
  59. data/spec/integration/api/auth_token_spec.rb +20 -0
  60. data/spec/integration/api/card_spec.rb +47 -0
  61. data/spec/integration/api/contact_spec.rb +53 -0
  62. data/spec/integration/api/private_transactions_spec.rb +74 -0
  63. data/spec/integration/api/public_transaction_spec.rb +35 -0
  64. data/spec/integration/api/ticker_spec.rb +21 -0
  65. data/spec/integration/api/transparency_spec.rb +33 -0
  66. data/spec/integration/api/user_spec.rb +32 -0
  67. data/spec/spec_helper.rb +26 -0
  68. data/spec/support/vcr.rb +8 -0
  69. data/spec/support/webmock.rb +11 -0
  70. data/spec/unit/api/auth_spec.rb +21 -0
  71. data/spec/unit/api/card_spec.rb +47 -0
  72. data/spec/unit/api/contact_spec.rb +53 -0
  73. data/spec/unit/api/private_transaction_spec.rb +114 -0
  74. data/spec/unit/api/public_transaction_spec.rb +34 -0
  75. data/spec/unit/api/ticker_spec.rb +34 -0
  76. data/spec/unit/api/transparency_spec.rb +33 -0
  77. data/spec/unit/api/user_spec.rb +33 -0
  78. data/spec/unit/client_spec.rb +33 -0
  79. data/spec/unit/entities/base_entity_spec.rb +36 -0
  80. data/spec/unit/helper_spec.rb +37 -0
  81. data/spec/unit/request_spec.rb +94 -0
  82. data/uphold.gemspec +30 -0
  83. metadata +296 -0
@@ -0,0 +1,118 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.uphold.com/v0/me/cards/a4feff08-2977-40f8-a339-4f546ae5c7e2/transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: card_id=a4feff08-2977-40f8-a339-4f546ae5c7e2&denomination[currency]=BTC&denomination[amount]=0.0001&destination=non-user%40example.com
9
+ headers:
10
+ Authorization:
11
+ - Bearer <UPHOLD_AUTH_TOKEN>
12
+ response:
13
+ status:
14
+ code: 202
15
+ message: Accepted
16
+ headers:
17
+ Server:
18
+ - cloudflare-nginx
19
+ Date:
20
+ - Wed, 28 Jan 2015 13:18:19 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Content-Length:
24
+ - '666'
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=d0c036385bf8100a24d7290d0a3cc2eaa1422451099; expires=Thu, 28-Jan-16
29
+ 13:18:19 GMT; path=/; domain=.uphold.com; HttpOnly
30
+ X-Content-Security-Policy:
31
+ - default-src "none"
32
+ Content-Security-Policy:
33
+ - default-src "none"
34
+ X-Webkit-Csp:
35
+ - default-src "none"
36
+ Strict-Transport-Security:
37
+ - max-age=31536000
38
+ X-Xss-Protection:
39
+ - 1; mode=block
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ X-Frame-Options:
43
+ - DENY
44
+ X-Uphold-Request-Id:
45
+ - 8e801f74-94db-4e19-b2f9-08aba033d494
46
+ X-Ratelimit-Limit:
47
+ - '300'
48
+ X-Ratelimit-Remaining:
49
+ - '288'
50
+ X-Ratelimit-Reset:
51
+ - '1422451344'
52
+ Cf-Ray:
53
+ - 1afd79aa819b0dc9-MAD
54
+ body:
55
+ encoding: UTF-8
56
+ string: '{"id":"7125d576-9a48-4631-9ef4-d281620bb2a6","type":"transfer","denomination":{"amount":"0.0001","currency":"BTC","rate":"1.00","pair":"BTCBTC"},"origin":{"base":"0.0001","commission":"0.00","fee":"0.00","amount":"0.0001","CardId":"a4feff08-2977-40f8-a339-4f546ae5c7e2","currency":"BTC","description":"Luis
57
+ Ferreira","rate":"1.00","sources":[],"type":"card","username":"zamith"},"destination":{"base":"0.0001","commission":"0.00","fee":"0.00","amount":"0.0001","currency":"BTC","description":"non-user@example.com","rate":"1.00","type":"email"},"status":"pending","params":{"type":"invite","pair":"BTCBTC","margin":"0.00","rate":"1.00","currency":"BTC","ttl":30000}}'
58
+ http_version:
59
+ recorded_at: Wed, 28 Jan 2015 13:18:21 GMT
60
+ - request:
61
+ method: post
62
+ uri: https://api.uphold.com/v0/me/cards/a4feff08-2977-40f8-a339-4f546ae5c7e2/transactions/7125d576-9a48-4631-9ef4-d281620bb2a6/commit
63
+ body:
64
+ encoding: UTF-8
65
+ string: ''
66
+ headers:
67
+ Authorization:
68
+ - Bearer <UPHOLD_AUTH_TOKEN>
69
+ response:
70
+ status:
71
+ code: 200
72
+ message: OK
73
+ headers:
74
+ Server:
75
+ - cloudflare-nginx
76
+ Date:
77
+ - Wed, 28 Jan 2015 13:18:20 GMT
78
+ Content-Type:
79
+ - application/json; charset=utf-8
80
+ Content-Length:
81
+ - '800'
82
+ Connection:
83
+ - keep-alive
84
+ Set-Cookie:
85
+ - __cfduid=dea767ae8a8d99cfb760debf6568d66a01422451099; expires=Thu, 28-Jan-16
86
+ 13:18:19 GMT; path=/; domain=.uphold.com; HttpOnly
87
+ X-Content-Security-Policy:
88
+ - default-src "none"
89
+ Content-Security-Policy:
90
+ - default-src "none"
91
+ X-Webkit-Csp:
92
+ - default-src "none"
93
+ Strict-Transport-Security:
94
+ - max-age=31536000
95
+ X-Xss-Protection:
96
+ - 1; mode=block
97
+ X-Content-Type-Options:
98
+ - nosniff
99
+ - nosniff
100
+ X-Frame-Options:
101
+ - DENY
102
+ X-Uphold-Request-Id:
103
+ - 6b143233-16bb-4369-9b2d-98becfddba2a
104
+ X-Ratelimit-Limit:
105
+ - '300'
106
+ X-Ratelimit-Remaining:
107
+ - '287'
108
+ X-Ratelimit-Reset:
109
+ - '1422451344'
110
+ Cf-Ray:
111
+ - 1afd79ac94880ded-MAD
112
+ body:
113
+ encoding: UTF-8
114
+ string: '{"id":"7125d576-9a48-4631-9ef4-d281620bb2a6","type":"transfer","message":null,"denomination":{"pair":"BTCBTC","rate":"1.00","amount":"0.0001","currency":"BTC"},"origin":{"base":"0.0001","commission":"0.00","fee":"0.00","amount":"0.0001","CardId":"a4feff08-2977-40f8-a339-4f546ae5c7e2","currency":"BTC","description":"Luis
115
+ Ferreira","rate":"1.00","sources":[{"id":"e6615095-8a90-483a-b58b-c46391308a53","amount":"0.0001"}],"type":"card","username":"zamith"},"destination":{"base":"0.0001","commission":"0.00","fee":"0.00","amount":"0.0001","currency":"BTC","description":"non-user@example.com","rate":"1.00","type":"email"},"status":"waiting","params":{"type":"invite","pair":"BTCBTC","margin":"0.00","rate":"1.00","currency":"BTC","progress":"0","ttl":"30000"},"createdAt":"2015-01-28T13:18:20.192Z"}'
116
+ http_version:
117
+ recorded_at: Wed, 28 Jan 2015 13:18:22 GMT
118
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.uphold.com/v0/me/cards/a4feff08-2977-40f8-a339-4f546ae5c7e2/transactions/7125d576-9a48-4631-9ef4-d281620bb2a6/resend
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer <UPHOLD_AUTH_TOKEN>
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - cloudflare-nginx
19
+ Date:
20
+ - Wed, 28 Jan 2015 13:18:20 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Content-Length:
24
+ - '800'
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=d2f261618b6f09f46ef1540005dcf6d6c1422451100; expires=Thu, 28-Jan-16
29
+ 13:18:20 GMT; path=/; domain=.uphold.com; HttpOnly
30
+ X-Content-Security-Policy:
31
+ - default-src "none"
32
+ Content-Security-Policy:
33
+ - default-src "none"
34
+ X-Webkit-Csp:
35
+ - default-src "none"
36
+ Strict-Transport-Security:
37
+ - max-age=31536000
38
+ X-Xss-Protection:
39
+ - 1; mode=block
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ - nosniff
43
+ X-Frame-Options:
44
+ - DENY
45
+ X-Uphold-Request-Id:
46
+ - 78dc9659-eabe-4237-a829-20893cde420b
47
+ X-Ratelimit-Limit:
48
+ - '300'
49
+ X-Ratelimit-Remaining:
50
+ - '286'
51
+ X-Ratelimit-Reset:
52
+ - '1422451344'
53
+ Cf-Ray:
54
+ - 1afd79b283450dc3-MAD
55
+ body:
56
+ encoding: UTF-8
57
+ string: '{"id":"7125d576-9a48-4631-9ef4-d281620bb2a6","type":"transfer","message":null,"denomination":{"pair":"BTCBTC","rate":"1.00","amount":"0.0001","currency":"BTC"},"origin":{"base":"0.0001","commission":"0.00","fee":"0.00","amount":"0.0001","CardId":"a4feff08-2977-40f8-a339-4f546ae5c7e2","currency":"BTC","description":"Luis
58
+ Ferreira","rate":"1.00","sources":[{"id":"e6615095-8a90-483a-b58b-c46391308a53","amount":"0.0001"}],"type":"card","username":"zamith"},"destination":{"base":"0.0001","commission":"0.00","fee":"0.00","amount":"0.0001","currency":"BTC","description":"non-user@example.com","rate":"1.00","type":"email"},"status":"waiting","params":{"type":"invite","pair":"BTCBTC","margin":"0.00","rate":"1.00","currency":"BTC","progress":"0","ttl":"30000"},"createdAt":"2015-01-28T13:18:20.192Z"}'
59
+ http_version:
60
+ recorded_at: Wed, 28 Jan 2015 13:18:22 GMT
61
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,185 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.uphold.com/v0/me
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer <UPHOLD_AUTH_TOKEN>
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - cloudflare-nginx
19
+ Date:
20
+ - Tue, 27 Jan 2015 13:54:02 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Content-Length:
24
+ - '5609'
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=dca89ea1c8078c370d09da88a319cee071422366842; expires=Wed, 27-Jan-16
29
+ 13:54:02 GMT; path=/; domain=.uphold.com; HttpOnly
30
+ X-Content-Security-Policy:
31
+ - default-src "none"
32
+ Content-Security-Policy:
33
+ - default-src "none"
34
+ X-Webkit-Csp:
35
+ - default-src "none"
36
+ Strict-Transport-Security:
37
+ - max-age=31536000
38
+ X-Xss-Protection:
39
+ - 1; mode=block
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ - nosniff
43
+ X-Frame-Options:
44
+ - DENY
45
+ X-Uphold-Request-Id:
46
+ - 14229d9a-c52a-47f7-9219-f39e9dc5af42
47
+ X-Ratelimit-Limit:
48
+ - '300'
49
+ X-Ratelimit-Remaining:
50
+ - '299'
51
+ X-Ratelimit-Reset:
52
+ - '1422367142'
53
+ Cf-Ray:
54
+ - 1af5709bfcb70ded-MAD
55
+ body:
56
+ encoding: ASCII-8BIT
57
+ string: !binary |-
58
+ eyJ1c2VybmFtZSI6Im1wYWxoYXMiLCJlbWFpbCI6Im1wYWxoYXNAZ3JvdXBi
59
+ dWRkaWVzLmNvbSIsImZpcnN0TmFtZSI6Ik1pZ3VlbCIsImxhc3ROYW1lIjoi
60
+ UGFsaGFzIiwibmFtZSI6Ik1pZ3VlbCBQYWxoYXMiLCJjb3VudHJ5IjoiUFQi
61
+ LCJzdGF0ZSI6bnVsbCwiY3VycmVuY2llcyI6WyJCVEMiLCJVU0QiLCJFVVIi
62
+ LCJHQlAiLCJDTlkiLCJKUFkiLCJYQVUiXSwiaWRlbnRpdHkiOnt9LCJzZXR0
63
+ aW5ncyI6eyJ0aGVtZSI6InZpbnRhZ2UiLCJjdXJyZW5jeSI6IlVTRCIsImhh
64
+ c05ld3NTdWJzY3JpcHRpb24iOiJ0cnVlIiwiaW50bCI6eyJsYW5ndWFnZSI6
65
+ eyJsb2NhbGUiOiJlbi1VUyJ9LCJkYXRlVGltZUZvcm1hdCI6eyJsb2NhbGUi
66
+ OiJlbi1VUyJ9LCJudW1iZXJGb3JtYXQiOnsibG9jYWxlIjoiZW4tVVMifX0s
67
+ Imhhc090cEVuYWJsZWQiOiJ0cnVlIn0sInBob25lcyI6W3siaWQiOiJlY2Q1
68
+ ZDVmYS1kYzkyLTRiYjktOTk0YS0xYWNhNzVkYmIxNzMiLCJ2ZXJpZmllZCI6
69
+ InRydWUiLCJwcmltYXJ5IjoidHJ1ZSIsImUxNjRNYXNrZWQiOiIrWFhYWFhY
70
+ WFhYWDQ5IiwibmF0aW9uYWxNYXNrZWQiOiJYWFggWFhYIFg0OSIsImludGVy
71
+ bmF0aW9uYWxNYXNrZWQiOiIrWFhYIFhYWCBYWFggWDQ5In1dLCJzdGF0dXMi
72
+ OnsiZW1haWwiOiJvayIsInBob25lIjoib2siLCJyZXZpZXciOiJwZW5kaW5n
73
+ Iiwidm9sdW1lIjoicnVubmluZyIsImlkZW50aXR5IjoicmVhZHkiLCJvdmVy
74
+ dmlldyI6InBlbmRpbmciLCJzY3JlZW5pbmciOiJvayIsInJlZ2lzdHJhdGlv
75
+ biI6Im9rIn0sImJhbGFuY2VzIjp7InRvdGFsIjoiNy45MiIsImN1cnJlbmNp
76
+ ZXMiOnsiQlRDIjp7ImFtb3VudCI6IjAuMDAiLCJiYWxhbmNlIjoiMC4wMCIs
77
+ ImN1cnJlbmN5IjoiVVNEIiwicmF0ZSI6IjI2NS4wNjAwMCJ9LCJVU0QiOnsi
78
+ YW1vdW50IjoiMC4wMCIsImJhbGFuY2UiOiIwLjAwIiwiY3VycmVuY3kiOiJV
79
+ U0QiLCJyYXRlIjoiMS4wMDAwMCJ9LCJHQlAiOnsiYW1vdW50IjoiMC4wMCIs
80
+ ImJhbGFuY2UiOiIwLjAwIiwiY3VycmVuY3kiOiJVU0QiLCJyYXRlIjoiMS41
81
+ MTU2MCJ9LCJDTlkiOnsiYW1vdW50IjoiMC4wMCIsImJhbGFuY2UiOiIwLjAw
82
+ IiwiY3VycmVuY3kiOiJVU0QiLCJyYXRlIjoiMC4xNjAxNSJ9LCJKUFkiOnsi
83
+ YW1vdW50IjoiMC4wMCIsImJhbGFuY2UiOiIwLjAwIiwiY3VycmVuY3kiOiJV
84
+ U0QiLCJyYXRlIjoiMC4wMDg1MSJ9LCJFVVIiOnsiYW1vdW50IjoiNi42MiIs
85
+ ImJhbGFuY2UiOiI1Ljg1IiwiY3VycmVuY3kiOiJVU0QiLCJyYXRlIjoiMS4x
86
+ MzIwNSJ9LCJYQVUiOnsiYW1vdW50IjoiMS4zMCIsImJhbGFuY2UiOiIwLjAw
87
+ MSIsImN1cnJlbmN5IjoiVVNEIiwicmF0ZSI6IjEzMDQuNTcwMjUifX19LCJj
88
+ YXJkcyI6W3siaWQiOiI4YTc3ZWQwZS1kODliLTRkNzMtYjQzOC0zM2NkNDdk
89
+ Y2FmZWYiLCJhZGRyZXNzIjp7ImJpdGNvaW4iOiIxR1hEU1JkbUV5TGJndkdh
90
+ M3pCdFcxUGZ0Z2djOFk4RldLIn0sImxhYmVsIjoiQlRDIGNhcmQiLCJjdXJy
91
+ ZW5jeSI6IkJUQyIsImJhbGFuY2UiOiIwLjAwIiwiYXZhaWxhYmxlIjoiMC4w
92
+ MCIsImxhc3RUcmFuc2FjdGlvbkF0IjpudWxsLCJwb3NpdGlvbiI6MX0seyJp
93
+ ZCI6ImQ5Y2ZiNWVjLTI3YjMtNDI3YS04ZWU2LTA4NGE3YzZiNWQyYSIsImFk
94
+ ZHJlc3MiOnsiYml0Y29pbiI6IjFKYm5zbnhFU3N1MWJWM0RWNERQQ1NOcDE1
95
+ SlE2eUNQZ0MifSwibGFiZWwiOiJVU0QgY2FyZCIsImN1cnJlbmN5IjoiVVNE
96
+ IiwiYmFsYW5jZSI6IjAuMDAiLCJhdmFpbGFibGUiOiIwLjAwIiwibGFzdFRy
97
+ YW5zYWN0aW9uQXQiOm51bGwsInBvc2l0aW9uIjoyfSx7ImlkIjoiN2ZhYWI4
98
+ ZTAtZmJiNy00YmI0LWFkMmYtOWUwZTA1ZWFiYzM1IiwiYWRkcmVzcyI6eyJi
99
+ aXRjb2luIjoiMUJzdkJKbmpYR1BDNjhtUFBtY3N2VVl6aWRHU1hnSmQ3USJ9
100
+ LCJsYWJlbCI6IkdCUCBjYXJkIiwiY3VycmVuY3kiOiJHQlAiLCJiYWxhbmNl
101
+ IjoiMC4wMCIsImF2YWlsYWJsZSI6IjAuMDAiLCJsYXN0VHJhbnNhY3Rpb25B
102
+ dCI6bnVsbCwicG9zaXRpb24iOjR9LHsiaWQiOiIxZjNlODU1Ny01YTQyLTRj
103
+ ZjktYTNmZC05MTliNjE0Yjg3ZjUiLCJhZGRyZXNzIjp7ImJpdGNvaW4iOiIx
104
+ OXhzY2tzVjlLNXRHM1BRRWtLZk5XamF4U3U4Z3pYMXBpIn0sImxhYmVsIjoi
105
+ Q05ZIGNhcmQiLCJjdXJyZW5jeSI6IkNOWSIsImJhbGFuY2UiOiIwLjAwIiwi
106
+ YXZhaWxhYmxlIjoiMC4wMCIsImxhc3RUcmFuc2FjdGlvbkF0IjpudWxsLCJw
107
+ b3NpdGlvbiI6NX0seyJpZCI6IjM1M2NjNmQ0LWIxOWYtNDJlYy1hNzMzLWJi
108
+ YWY0NWNiMDA4OSIsImFkZHJlc3MiOnsiYml0Y29pbiI6IjE5MlI5NHhnNWFj
109
+ Q0FZSnFYWVd2ZTRMNldFYUVFTVUzUlkifSwibGFiZWwiOiJKUFkgY2FyZCIs
110
+ ImN1cnJlbmN5IjoiSlBZIiwiYmFsYW5jZSI6IjAuMDAiLCJhdmFpbGFibGUi
111
+ OiIwLjAwIiwibGFzdFRyYW5zYWN0aW9uQXQiOm51bGwsInBvc2l0aW9uIjo2
112
+ fSx7ImlkIjoiMjFhNmYxMTAtYTY4NC00NjI3LWFmZGEtYmYwM2VjYTczM2Nm
113
+ IiwiYWRkcmVzcyI6eyJiaXRjb2luIjoiMU04Sk5Bb1B4S2ZRaXZYOHJ6bzN4
114
+ MXFLWDZ0Zjg1N0hHZiJ9LCJsYWJlbCI6IkVVUiBjYXJkIiwiY3VycmVuY3ki
115
+ OiJFVVIiLCJiYWxhbmNlIjoiNS44NSIsImF2YWlsYWJsZSI6IjUuODUiLCJs
116
+ YXN0VHJhbnNhY3Rpb25BdCI6IjIwMTQtMTEtMjFUMTc6Mzc6MDQuNzY5WiIs
117
+ InBvc2l0aW9uIjozfSx7ImlkIjoiMmRhYTU5ZTgtODljNS00Y2JlLTk5ZmMt
118
+ ZjY2NDM1MDI0YmNmIiwiYWRkcmVzcyI6eyJiaXRjb2luIjoiMUxiSGhWRmpM
119
+ ZUMzaFZoVzRGWHJ3dTdNTlVDa29HVHdBNSJ9LCJsYWJlbCI6IlhBVSBjYXJk
120
+ IiwiY3VycmVuY3kiOiJYQVUiLCJiYWxhbmNlIjoiMC4wMDEiLCJhdmFpbGFi
121
+ bGUiOiIwLjAwMSIsImxhc3RUcmFuc2FjdGlvbkF0IjoiMjAxNC0xMi0wMlQw
122
+ MDoyOTo0NS41MDdaIiwicG9zaXRpb24iOjd9XSwidHJhbnNhY3Rpb25zIjpb
123
+ eyJpZCI6ImQyNmE2MWNlLWE0MTQtNDQ3Mi04ZjY1LTY1OWY2M2U4ODU5NSIs
124
+ InR5cGUiOiJ0cmFuc2ZlciIsIm1lc3NhZ2UiOm51bGwsImRlbm9taW5hdGlv
125
+ biI6eyJwYWlyIjoiWEFVWEFVIiwicmF0ZSI6IjEuMDAiLCJhbW91bnQiOiIw
126
+ LjAwMSIsImN1cnJlbmN5IjoiWEFVIn0sIm9yaWdpbiI6eyJiYXNlIjoiMC4w
127
+ MDEiLCJjb21taXNzaW9uIjoiMC4wMCIsImZlZSI6IjAuMDAiLCJhbW91bnQi
128
+ OiIwLjAwMSIsImN1cnJlbmN5IjoiWEFVIiwiZGVzY3JpcHRpb24iOiJUaGUg
129
+ Qml0cmVzZXJ2ZSBUZWFtIiwicmF0ZSI6IjEuMDAiLCJzb3VyY2VzIjpbeyJp
130
+ ZCI6ImMwZjI5ZDgzLTdiY2YtNDlmZi1iOGQ5LWM0NjlhMjVhODkxYyIsImFt
131
+ b3VudCI6IjAuMDAxIn1dLCJ0eXBlIjoiY2FyZCIsInVzZXJuYW1lIjoiYml0
132
+ cmVzZXJ2ZSJ9LCJkZXN0aW5hdGlvbiI6eyJiYXNlIjoiMC4wMDEiLCJjb21t
133
+ aXNzaW9uIjoiMC4wMCIsImZlZSI6IjAuMDAiLCJhbW91bnQiOiIwLjAwMSIs
134
+ IkNhcmRJZCI6IjJkYWE1OWU4LTg5YzUtNGNiZS05OWZjLWY2NjQzNTAyNGJj
135
+ ZiIsImN1cnJlbmN5IjoiWEFVIiwiZGVzY3JpcHRpb24iOiJNaWd1ZWwgUGFs
136
+ aGFzIiwicmF0ZSI6IjEuMDAiLCJ0eXBlIjoidXNlciIsInVzZXJuYW1lIjoi
137
+ bXBhbGhhcyJ9LCJzdGF0dXMiOiJjb21wbGV0ZWQiLCJwYXJhbXMiOnsidHlw
138
+ ZSI6ImludGVybmFsIiwicGFpciI6IlhBVVhBVSIsIm1hcmdpbiI6IjAuMDAi
139
+ LCJyYXRlIjoiMS4wMCIsImN1cnJlbmN5IjoiWEFVIiwicHJvZ3Jlc3MiOiIx
140
+ IiwidHRsIjoiMzAifSwiY3JlYXRlZEF0IjoiMjAxNC0xMi0wMlQwMDoyOTo0
141
+ NS40ODRaIn0seyJpZCI6ImVmOWU4OGYxLWFiYjUtNDZmMy1hYzI1LTk3NzEz
142
+ ZmY1Yzc5OSIsInR5cGUiOiJ0cmFuc2ZlciIsIm1lc3NhZ2UiOm51bGwsImRl
143
+ bm9taW5hdGlvbiI6eyJwYWlyIjoiRVVSRVVSIiwicmF0ZSI6IjEuMDAiLCJh
144
+ bW91bnQiOiIwLjg1IiwiY3VycmVuY3kiOiJFVVIifSwib3JpZ2luIjp7ImJh
145
+ c2UiOiIwLjAwMjk3MDk0IiwiY29tbWlzc2lvbiI6IjAuMDAwMDQxNTMiLCJm
146
+ ZWUiOiIwLjAwMDEiLCJhbW91bnQiOiIwLjAwMzExMjQ3IiwiY3VycmVuY3ki
147
+ OiJCVEMiLCJkZXNjcmlwdGlvbiI6Ikpvw6NvIEp1c3RvIiwicmF0ZSI6IjAu
148
+ MDAzNDcwODEiLCJzb3VyY2VzIjpbeyJpZCI6IjFlZTkwN2YzLTRjNzAtNDU0
149
+ MS1hYzU3LTllNDkyMDllZWE3NiIsImFtb3VudCI6IjAuMDAzMTEyNDcifV0s
150
+ InR5cGUiOiJjYXJkIiwidXNlcm5hbWUiOiJqdXN0byJ9LCJkZXN0aW5hdGlv
151
+ biI6eyJiYXNlIjoiMC44NSIsImNvbW1pc3Npb24iOiIwLjAwIiwiZmVlIjoi
152
+ MC4wMCIsImFtb3VudCI6IjAuODUiLCJDYXJkSWQiOiIyMWE2ZjExMC1hNjg0
153
+ LTQ2MjctYWZkYS1iZjAzZWNhNzMzY2YiLCJjdXJyZW5jeSI6IkVVUiIsImRl
154
+ c2NyaXB0aW9uIjoiTWlndWVsIFBhbGhhcyIsInJhdGUiOiIyODguMTE4NjIi
155
+ LCJ0eXBlIjoiY2FyZCIsInVzZXJuYW1lIjoibXBhbGhhcyJ9LCJzdGF0dXMi
156
+ OiJjb21wbGV0ZWQiLCJwYXJhbXMiOnsidHlwZSI6ImludGVybmFsIiwicGFp
157
+ ciI6IkJUQ0VVUiIsIm1hcmdpbiI6IjAuOTUiLCJyYXRlIjoiMjg4LjExODYy
158
+ IiwiY3VycmVuY3kiOiJFVVIiLCJwcm9ncmVzcyI6IjEiLCJ0dGwiOiIzMCIs
159
+ InR4aWQiOiIxNTk1NGU1YzhiZjI3MzBjNzQ5MDA2ZjM1Y2Y1MDQ0MzU4MWI4
160
+ MDljMTc4ZjBlOGU1ZWFhODkwZmNhOTg2NGQwIn0sImNyZWF0ZWRBdCI6IjIw
161
+ MTQtMTEtMjFUMTc6Mzc6MDQuNzQxWiJ9LHsiaWQiOiJmYTU2NDQ0Ny00NDY5
162
+ LTRiOTYtOWI1Mi1mNmU2MzNlYmI0MmIiLCJ0eXBlIjoidHJhbnNmZXIiLCJt
163
+ ZXNzYWdlIjoiUHJlbmRhIDopIEFicmHDp28sIFJvYmVydG8iLCJkZW5vbWlu
164
+ YXRpb24iOnsicGFpciI6IkVVUkVVUiIsInJhdGUiOiIxLjAwIiwiYW1vdW50
165
+ IjoiNS4wMCIsImN1cnJlbmN5IjoiRVVSIn0sIm9yaWdpbiI6eyJiYXNlIjoi
166
+ MC4wMTY2OTc0NiIsImNvbW1pc3Npb24iOiIwLjAwMDE4MTk4IiwiZmVlIjoi
167
+ MC4wMDAxIiwiYW1vdW50IjoiMC4wMTY5Nzk0NCIsImN1cnJlbmN5IjoiQlRD
168
+ IiwiZGVzY3JpcHRpb24iOiJSb2JlcnRvIE1hY2hhZG8iLCJyYXRlIjoiMC4w
169
+ MDMzMzY4MyIsInNvdXJjZXMiOlt7ImlkIjoiMWFiMDdlNjUtZTE4My00NGJl
170
+ LWE3MDMtZWQ0ZDM4NzgwNzJiIiwiYW1vdW50IjoiMC4wMTY5Nzk0NCJ9XSwi
171
+ dHlwZSI6ImNhcmQiLCJ1c2VybmFtZSI6InJtZG1hY2hhZG8ifSwiZGVzdGlu
172
+ YXRpb24iOnsiYmFzZSI6IjUuMDAiLCJjb21taXNzaW9uIjoiMC4wMCIsImZl
173
+ ZSI6IjAuMDAiLCJhbW91bnQiOiI1LjAwIiwiQ2FyZElkIjoiMjFhNmYxMTAt
174
+ YTY4NC00NjI3LWFmZGEtYmYwM2VjYTczM2NmIiwiY3VycmVuY3kiOiJFVVIi
175
+ LCJkZXNjcmlwdGlvbiI6Ik1pZ3VlbCBQYWxoYXMiLCJyYXRlIjoiMjk5LjY4
176
+ NDIyIiwidHlwZSI6ImVtYWlsIiwidXNlcm5hbWUiOiJtcGFsaGFzIn0sInN0
177
+ YXR1cyI6ImNvbXBsZXRlZCIsInBhcmFtcyI6eyJ0eXBlIjoiaW52aXRlIiwi
178
+ cGFpciI6IkJUQ0VVUiIsIm1hcmdpbiI6IjAuOTUiLCJyYXRlIjoiMjk5LjY4
179
+ NDIyIiwiY3VycmVuY3kiOiJFVVIiLCJwcm9ncmVzcyI6IjEiLCJ0dGwiOiIz
180
+ MCIsInR4aWQiOiIyNjRhYjhiYzBmODkzYTk5MGM1YmI5MWI2YmMzNzM2OWVl
181
+ NTVkMTFkYzEzNjE5OGI2OTU3MGI2Y2YzZjZlNzRjIn0sImNyZWF0ZWRBdCI6
182
+ IjIwMTQtMTEtMTlUMTc6MzA6MjIuNDM4WiJ9XX0=
183
+ http_version:
184
+ recorded_at: Tue, 27 Jan 2015 13:54:02 GMT
185
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://example:Password123@api.uphold.com/v0/me/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: description=Uphold%20ruby
9
+ headers:
10
+ X-Uphold-Otp:
11
+ - '5960110'
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - cloudflare-nginx
19
+ Date:
20
+ - Thu, 29 Jan 2015 16:24:12 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Content-Length:
24
+ - '106'
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=d8a73547e05f107f8c796bfcc238d8f851422548652; expires=Fri, 29-Jan-16
29
+ 16:24:12 GMT; path=/; domain=.uphold.com; HttpOnly
30
+ X-Content-Security-Policy:
31
+ - default-src "none"
32
+ Content-Security-Policy:
33
+ - default-src "none"
34
+ X-Webkit-Csp:
35
+ - default-src "none"
36
+ Strict-Transport-Security:
37
+ - max-age=31536000
38
+ X-Xss-Protection:
39
+ - 1; mode=block
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ - nosniff
43
+ X-Frame-Options:
44
+ - DENY
45
+ X-Uphold-Request-Id:
46
+ - 9eed6cc1-c6f3-43ac-9acf-9286a83935c7
47
+ X-Ratelimit-Limit:
48
+ - '300'
49
+ X-Ratelimit-Remaining:
50
+ - '298'
51
+ X-Ratelimit-Reset:
52
+ - '1422548935'
53
+ Cf-Ray:
54
+ - 1b06c7540a6e0ddb-MAD
55
+ body:
56
+ encoding: UTF-8
57
+ string: '{"access_token":"853d580429364a90a6e02cb1f89e257a58da9064","description":"Uphold
58
+ ruby","expires":null}'
59
+ http_version:
60
+ recorded_at: Thu, 29 Jan 2015 16:24:14 GMT
61
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,60 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.uphold.com/v0/reserve/transactions/a97bb994-6e24-4a89-b653-e0a6d0bcf634
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer <UPHOLD_AUTH_TOKEN>
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - cloudflare-nginx
19
+ Date:
20
+ - Tue, 27 Jan 2015 14:00:53 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Content-Length:
24
+ - '571'
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=d6efbe50b212e83fa64ee99a1bfc271891422367253; expires=Wed, 27-Jan-16
29
+ 14:00:53 GMT; path=/; domain=.uphold.com; HttpOnly
30
+ X-Content-Security-Policy:
31
+ - default-src "none"
32
+ Content-Security-Policy:
33
+ - default-src "none"
34
+ X-Webkit-Csp:
35
+ - default-src "none"
36
+ Strict-Transport-Security:
37
+ - max-age=31536000
38
+ X-Xss-Protection:
39
+ - 1; mode=block
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ - nosniff
43
+ X-Frame-Options:
44
+ - DENY
45
+ X-Uphold-Request-Id:
46
+ - 23b5857c-8b25-43ee-85aa-86aaf8f001ac
47
+ X-Ratelimit-Limit:
48
+ - '300'
49
+ X-Ratelimit-Remaining:
50
+ - '299'
51
+ X-Ratelimit-Reset:
52
+ - '1422367553'
53
+ Cf-Ray:
54
+ - 1af57aa50f680ded-MAD
55
+ body:
56
+ encoding: UTF-8
57
+ string: '{"id":"a97bb994-6e24-4a89-b653-e0a6d0bcf634","type":"transfer","params":{"currency":"USD","margin":"0.00","pair":"USDUSD","rate":"1.00"},"denomination":{"amount":"1.00","currency":"USD"},"origin":{"amount":"1.00","base":"1.00","commission":"0.00","currency":"USD","fee":"0.00","rate":"1.00","sources":[{"id":"35325c99-edeb-4625-9cd8-f56d4783c352","amount":"1"}]},"destination":{"amount":"1.00","base":"1.00","commission":"0.00","currency":"USD","fee":"0.00","rate":"1.00"},"status":"cancelled","quotedAt":"2014-08-27T00:01:08.124Z","createdAt":"2014-08-27T00:01:11.616Z"}'
58
+ http_version:
59
+ recorded_at: Tue, 27 Jan 2015 14:00:53 GMT
60
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,60 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.uphold.com/v0/reserve/transactions
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer <UPHOLD_AUTH_TOKEN>
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - cloudflare-nginx
19
+ Date:
20
+ - Tue, 27 Jan 2015 14:00:59 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Content-Length:
24
+ - '8185851'
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=dc1bebcfd7edbf1910d2b0ae3b09dada91422367254; expires=Wed, 27-Jan-16
29
+ 14:00:54 GMT; path=/; domain=.uphold.com; HttpOnly
30
+ X-Content-Security-Policy:
31
+ - default-src "none"
32
+ Content-Security-Policy:
33
+ - default-src "none"
34
+ X-Webkit-Csp:
35
+ - default-src "none"
36
+ Strict-Transport-Security:
37
+ - max-age=31536000
38
+ X-Xss-Protection:
39
+ - 1; mode=block
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ - nosniff
43
+ X-Frame-Options:
44
+ - DENY
45
+ X-Uphold-Request-Id:
46
+ - 5f2d0bc0-fc9c-4fd5-b74b-a266c29c8e06
47
+ X-Ratelimit-Limit:
48
+ - '300'
49
+ X-Ratelimit-Remaining:
50
+ - '298'
51
+ X-Ratelimit-Reset:
52
+ - '1422367553'
53
+ Cf-Ray:
54
+ - 1af57aaa32a20db7-MAD
55
+ body:
56
+ encoding: UTF-8
57
+ string: '[{"id":"7a61a358-cced-4dc2-975f-dff3a6ec4c42","type":"withdrawal","params":{"currency":"USD","margin":"0.45","pair":"BTCUSD","rate":"265.27500","txid":"3014afd3b86eb5c7dd12fdfe2f37f2565c9075c8d79b80c03c7343d254405191"},"denomination":{"amount":"9.00","currency":"USD"},"origin":{"amount":"9.00","base":"9.00","commission":"0.00","currency":"USD","fee":"0.00","rate":"265.27500","sources":[{"id":"46d9dcf9-877b-47fd-b562-43936504adea","amount":"9.00"}]},"destination":{"address":"1snowqQP5VmZgU47i5AWwz9fsgHQg94Fa","amount":"0.03367437","base":"0.03392705","commission":"0.00015268","currency":"BTC","fee":"0.0001","rate":"0.00376967"},"status":"completed","quotedAt":"2015-01-27T13:54:43.000Z","createdAt":"2015-01-27T13:54:52.753Z"},{"id":"507bd05d-c1b1-4f61-bfc7-7f82a87c1240","type":"transfer","params":{"currency":"USD","margin":"0.45","pair":"BTCUSD","rate":"264.56500","txid":"95c074d007f129fae7e487fdac92aeb96c9336f35af05212708204c63152d77c"},"denomination":{"amount":"0.36757375","currency":"BTC"},"origin":{"amount":"0.36757375","base":"0.36757375","commission":"0.00","currency":"BTC","fee":"0.00","rate":"0.00378","sources":[{"id":"9aa2b6b3-2a4d-4913-998d-bfc913ea532a","amount":"0.17255358"},{"id":"45ff4cc6-86b5-4440-902f-9be5f26b5bed","amount":"0.19502017"}]},"destination":{"amount":"96.80","base":"97.24","commission":"0.44","currency":"USD","fee":"0.00","rate":"264.56500"},"status":"completed","quotedAt":"2015-01-27T13:52:02.384Z","createdAt":"2015-01-27T13:52:22.472Z"}]'
58
+ http_version:
59
+ recorded_at: Tue, 27 Jan 2015 14:01:03 GMT
60
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,60 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.uphold.com/v0/ticker
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer <UPHOLD_AUTH_TOKEN>
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - cloudflare-nginx
19
+ Date:
20
+ - Tue, 27 Jan 2015 14:26:56 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Content-Length:
24
+ - '1179'
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=d1a4a89e349c2808238a3de2f9cf953641422368815; expires=Wed, 27-Jan-16
29
+ 14:26:55 GMT; path=/; domain=.uphold.com; HttpOnly
30
+ X-Content-Security-Policy:
31
+ - default-src "none"
32
+ Content-Security-Policy:
33
+ - default-src "none"
34
+ X-Webkit-Csp:
35
+ - default-src "none"
36
+ Strict-Transport-Security:
37
+ - max-age=31536000
38
+ X-Xss-Protection:
39
+ - 1; mode=block
40
+ X-Content-Type-Options:
41
+ - nosniff
42
+ - nosniff
43
+ X-Frame-Options:
44
+ - DENY
45
+ X-Uphold-Request-Id:
46
+ - 6187b00e-29d9-4b5c-84ee-a00a6d1712e5
47
+ X-Ratelimit-Limit:
48
+ - '300'
49
+ X-Ratelimit-Remaining:
50
+ - '299'
51
+ X-Ratelimit-Reset:
52
+ - '1422369116'
53
+ Cf-Ray:
54
+ - 1af5a0cbfc090ded-MAD
55
+ body:
56
+ encoding: UTF-8
57
+ string: '[{"ask":"1","bid":"1","currency":"BTC","pair":"BTCBTC"},{"ask":"263.84","bid":"261.75","currency":"USD","pair":"BTCUSD"},{"ask":"1","bid":"1","currency":"CNY","pair":"CNYCNY"},{"ask":"7.0902","bid":"7.0869","currency":"CNY","pair":"EURCNY"},{"ask":"1","bid":"1","currency":"EUR","pair":"EUREUR"},{"ask":"0.7482","bid":"0.7478","currency":"GBP","pair":"EURGBP"},{"ask":"133.4504","bid":"133.3989","currency":"JPY","pair":"EURJPY"},{"ask":"1.1357","bid":"1.1353","currency":"USD","pair":"EURUSD"},{"ask":"9.4776","bid":"9.4759","currency":"CNY","pair":"GBPCNY"},{"ask":"1","bid":"1","currency":"GBP","pair":"GBPGBP"},{"ask":"178.3855","bid":"178.3677","currency":"JPY","pair":"GBPJPY"},{"ask":"1.5181","bid":"1.518","currency":"USD","pair":"GBPUSD"},{"ask":"0.0531","bid":"0.0531","currency":"CNY","pair":"JPYCNY"},{"ask":"1","bid":"1","currency":"JPY","pair":"JPYJPY"},{"ask":"6.243","bid":"6.2423","currency":"CNY","pair":"USDCNY"},{"ask":"117.505","bid":"117.501","currency":"JPY","pair":"USDJPY"},{"ask":"1","bid":"1","currency":"USD","pair":"USDUSD"},{"ask":"1315.0475","bid":"1294.093","currency":"USD","pair":"XAUUSD"},{"ask":"1","bid":"1","currency":"XAU","pair":"XAUXAU"}]'
58
+ http_version:
59
+ recorded_at: Tue, 27 Jan 2015 14:26:56 GMT
60
+ recorded_with: VCR 2.9.3