cryptocompare 0.3.0 → 0.4.0
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/CODE_OF_CONDUCT.md +2 -2
- data/README.md +65 -4
- data/cryptocompare.gemspec +2 -0
- data/lib/cryptocompare.rb +1 -0
- data/lib/cryptocompare/coin_snapshot.rb +85 -0
- data/lib/cryptocompare/price.rb +23 -14
- data/lib/cryptocompare/price_historical.rb +17 -11
- data/lib/cryptocompare/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d20e62b88d867db1cbca707672c55176fc66517a
|
4
|
+
data.tar.gz: ba8adf2091a559f4df530a0fac701335aa50bae6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6341cad1ddd37cf355fac24ce4c61b37d7d75017b8b242f1fecf133e5f7ff2164c7178e21cbb4160cbab0acf12cbb124d1e4a77cb417cea5bf06b3f35593ef37
|
7
|
+
data.tar.gz: 47a2e9f163e8bb860911e00403c345147c5f07676b92dbfcfd79cba61d88e97ce6eeac6aae81d3387229c8500ce69224eca66787504378ed8cb24bc1e4cc65d9
|
data/CODE_OF_CONDUCT.md
CHANGED
@@ -35,7 +35,7 @@ This code of conduct applies both within project spaces and in public spaces
|
|
35
35
|
when an individual is representing the project or its community.
|
36
36
|
|
37
37
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
38
|
-
reported by contacting a project maintainer at
|
38
|
+
reported by contacting a project maintainer at alexanderdavidpan@gmail.com. All
|
39
39
|
complaints will be reviewed and investigated and will result in a response that
|
40
40
|
is deemed necessary and appropriate to the circumstances. Maintainers are
|
41
41
|
obligated to maintain confidentiality with regard to the reporter of an
|
@@ -46,4 +46,4 @@ version 1.3.0, available at
|
|
46
46
|
[http://contributor-covenant.org/version/1/3/0/][version]
|
47
47
|
|
48
48
|
[homepage]: http://contributor-covenant.org
|
49
|
-
[version]: http://contributor-covenant.org/version/1/3/0/
|
49
|
+
[version]: http://contributor-covenant.org/version/1/3/0/
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# cryptocompare
|
2
2
|
|
3
3
|
[](http://badge.fury.io/rb/cryptocompare) [](https://travis-ci.org/alexanderdavidpan/cryptocompare)
|
4
4
|
|
@@ -23,7 +23,7 @@ Or install it yourself as:
|
|
23
23
|
|
24
24
|
## Usage
|
25
25
|
|
26
|
-
To use
|
26
|
+
To use cryptocompare, just require it like so:
|
27
27
|
|
28
28
|
```ruby
|
29
29
|
require 'cryptocompare'
|
@@ -53,7 +53,7 @@ Convert cryptocurrency to cryptocurrency.
|
|
53
53
|
|
54
54
|
```ruby
|
55
55
|
Cryptocompare::Price.find('BTC', 'ETH')
|
56
|
-
# =>{"BTC"=>{"ETH"=>9.29}}
|
56
|
+
# => {"BTC"=>{"ETH"=>9.29}}
|
57
57
|
```
|
58
58
|
|
59
59
|
Convert fiat to fiat.
|
@@ -107,10 +107,71 @@ Cryptocompare::PriceHistorical.find('ETH', 'USD', {'ts' => 1452680400})
|
|
107
107
|
Find historical price of cryptocurrency in many currencies at a given timestamp.
|
108
108
|
|
109
109
|
```ruby
|
110
|
-
Cryptocompare::PriceHistorical.find('ETH', ['BTC', 'USD', 'EUR'], {'ts' => '1452680400')
|
110
|
+
Cryptocompare::PriceHistorical.find('ETH', ['BTC', 'USD', 'EUR'], {'ts' => '1452680400'})
|
111
111
|
# => {"ETH"=>{"BTC"=>0.08006, "USD"=>225.93, "EUR"=>194.24}}
|
112
112
|
```
|
113
113
|
|
114
|
+
### CoinSnapshot
|
115
|
+
|
116
|
+
Get data for a currency pair. It returns general block explorer information, aggregated data and individual data for each exchange available.
|
117
|
+
|
118
|
+
**Example:**
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
Cryptocompare::CoinSnapshot.find('BTC', 'USD')
|
122
|
+
# => {
|
123
|
+
# "Response":"Success",
|
124
|
+
# "Message":"Coin snapshot succesfully returned",
|
125
|
+
# "Type":100,
|
126
|
+
# "Data":{
|
127
|
+
# "Algorithm":"SHA256",
|
128
|
+
# "ProofType":"PoW",
|
129
|
+
# "BlockNumber":378345,
|
130
|
+
# "NetHashesPerSecond":465548431.66333866,
|
131
|
+
# "TotalCoinsMined":14707625.0,
|
132
|
+
# "BlockReward":25.0,
|
133
|
+
# "AggregatedData":{
|
134
|
+
# "TYPE":"5",
|
135
|
+
# "MARKET":"CCCAGG",
|
136
|
+
# "FROMSYMBOL":"BTC",
|
137
|
+
# "TOSYMBOL":"USD",
|
138
|
+
# "FLAGS":"4",
|
139
|
+
# "PRICE":"245.41",
|
140
|
+
# "LASTUPDATE":"1444520460",
|
141
|
+
# "LASTVOLUME":"0.0086",
|
142
|
+
# "LASTVOLUMETO":"2.110268",
|
143
|
+
# "LASTTRADEID":"1444520460357",
|
144
|
+
# "VOLUME24HOUR":"49591.48108707269",
|
145
|
+
# "VOLUME24HOURTO":"12139110.189163648",
|
146
|
+
# "OPEN24HOUR":"244.41",
|
147
|
+
# "HIGH24HOUR":"258.37",
|
148
|
+
# "LOW24HOUR":"239.01000004",
|
149
|
+
# "LASTMARKET":"Huobi"
|
150
|
+
# },
|
151
|
+
# "Exchanges":[
|
152
|
+
# {
|
153
|
+
# "TYPE":"2",
|
154
|
+
# "MARKET":"LakeBTC",
|
155
|
+
# "FROMSYMBOL":"BTC",
|
156
|
+
# "TOSYMBOL":"USD",
|
157
|
+
# "FLAGS":"2",
|
158
|
+
# "PRICE":"244.37",
|
159
|
+
# "LASTUPDATE":"1444513131",
|
160
|
+
# "LASTVOLUME":"0.03",
|
161
|
+
# "LASTVOLUMETO":"7.3311",
|
162
|
+
# "LASTTRADEID":"1444513131",
|
163
|
+
# "VOLUME24HOUR":"3599.0560000000005",
|
164
|
+
# "VOLUME24HOURTO":"879237.6299349999",
|
165
|
+
# "OPEN24HOUR":"243.83",
|
166
|
+
# "HIGH24HOUR":"245.23",
|
167
|
+
# "LOW24HOUR":"242.68"
|
168
|
+
# },
|
169
|
+
# ....
|
170
|
+
# ]
|
171
|
+
# }
|
172
|
+
# }
|
173
|
+
```
|
174
|
+
|
114
175
|
## Supported Exchanges
|
115
176
|
|
116
177
|
* BTC38
|
data/cryptocompare.gemspec
CHANGED
@@ -13,6 +13,8 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.description = %q{A Ruby gem for communicating with the CryptoCompare API}
|
14
14
|
spec.homepage = "https://github.com/alexanderdavidpan/cryptocompare"
|
15
15
|
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.required_ruby_version = '>= 2.0.0'
|
16
18
|
|
17
19
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
20
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
data/lib/cryptocompare.rb
CHANGED
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'json'
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module Cryptocompare
|
6
|
+
module CoinSnapshot
|
7
|
+
API_URL = 'https://www.cryptocompare.com/api/data/coinsnapshot/'
|
8
|
+
|
9
|
+
# Get data for a currency pair. It returns general block explorer
|
10
|
+
# information, aggregated data and individual data for each exchange
|
11
|
+
# available.
|
12
|
+
#
|
13
|
+
# ==== Parameters
|
14
|
+
# * +from_sym+ [String] - (required) currency symbol (ex: 'BTC', 'ETH', 'LTC', 'USD', 'EUR', 'CNY')
|
15
|
+
# * +to_sym+ [String] - (required) currency symbol (ex: 'USD', 'EUR', 'CNY', 'USD', 'EUR', 'CNY')
|
16
|
+
#
|
17
|
+
# ==== Returns
|
18
|
+
# [Hash] Hash with data about given currency pair.
|
19
|
+
#
|
20
|
+
# ==== Example
|
21
|
+
#
|
22
|
+
# Find data for a currency pair.
|
23
|
+
#
|
24
|
+
# Cryptocompare::CoinSnapshot.find('BTC', 'USD')
|
25
|
+
#
|
26
|
+
# Sample response
|
27
|
+
#
|
28
|
+
# {
|
29
|
+
# "Response":"Success",
|
30
|
+
# "Message":"Coin snapshot succesfully returned",
|
31
|
+
# "Type":100,
|
32
|
+
# "Data":{
|
33
|
+
# "Algorithm":"SHA256",
|
34
|
+
# "ProofType":"PoW",
|
35
|
+
# "BlockNumber":378345,
|
36
|
+
# "NetHashesPerSecond":465548431.66333866,
|
37
|
+
# "TotalCoinsMined":14707625.0,
|
38
|
+
# "BlockReward":25.0,
|
39
|
+
# "AggregatedData":{
|
40
|
+
# "TYPE":"5",
|
41
|
+
# "MARKET":"CCCAGG",
|
42
|
+
# "FROMSYMBOL":"BTC",
|
43
|
+
# "TOSYMBOL":"USD",
|
44
|
+
# "FLAGS":"4",
|
45
|
+
# "PRICE":"245.41",
|
46
|
+
# "LASTUPDATE":"1444520460",
|
47
|
+
# "LASTVOLUME":"0.0086",
|
48
|
+
# "LASTVOLUMETO":"2.110268",
|
49
|
+
# "LASTTRADEID":"1444520460357",
|
50
|
+
# "VOLUME24HOUR":"49591.48108707269",
|
51
|
+
# "VOLUME24HOURTO":"12139110.189163648",
|
52
|
+
# "OPEN24HOUR":"244.41",
|
53
|
+
# "HIGH24HOUR":"258.37",
|
54
|
+
# "LOW24HOUR":"239.01000004",
|
55
|
+
# "LASTMARKET":"Huobi"
|
56
|
+
# },
|
57
|
+
# "Exchanges":[
|
58
|
+
# {
|
59
|
+
# "TYPE":"2",
|
60
|
+
# "MARKET":"LakeBTC",
|
61
|
+
# "FROMSYMBOL":"BTC",
|
62
|
+
# "TOSYMBOL":"USD",
|
63
|
+
# "FLAGS":"2",
|
64
|
+
# "PRICE":"244.37",
|
65
|
+
# "LASTUPDATE":"1444513131",
|
66
|
+
# "LASTVOLUME":"0.03",
|
67
|
+
# "LASTVOLUMETO":"7.3311",
|
68
|
+
# "LASTTRADEID":"1444513131",
|
69
|
+
# "VOLUME24HOUR":"3599.0560000000005",
|
70
|
+
# "VOLUME24HOURTO":"879237.6299349999",
|
71
|
+
# "OPEN24HOUR":"243.83",
|
72
|
+
# "HIGH24HOUR":"245.23",
|
73
|
+
# "LOW24HOUR":"242.68"
|
74
|
+
# },
|
75
|
+
# ....
|
76
|
+
# ]
|
77
|
+
# }
|
78
|
+
# }
|
79
|
+
def self.find(from_sym, to_sym)
|
80
|
+
full_path = API_URL + "?fsym=#{from_sym}&tsym=#{to_sym}"
|
81
|
+
api_resp = Faraday.get(full_path)
|
82
|
+
JSON.parse(api_resp.body)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/lib/cryptocompare/price.rb
CHANGED
@@ -11,44 +11,53 @@ module Cryptocompare
|
|
11
11
|
# Finds the currency price(s) of a given currency symbol. Really fast,
|
12
12
|
# 20-60 ms. Cached each 10 seconds.
|
13
13
|
#
|
14
|
-
#
|
15
|
-
# from_syms [String, Array] - currency symbols (ex: 'BTC', 'ETH', 'LTC', 'USD', 'EUR', 'CNY')
|
16
|
-
# to_syms [String, Array] - currency symbols (ex: 'USD', 'EUR', 'CNY', 'USD', 'EUR', 'CNY')
|
17
|
-
# opts [Hash] - options hash
|
18
|
-
# opts[e] [String] - name of exchange (ex: 'Coinbase','Poloniex') Default: CCCAGG.
|
14
|
+
# ==== Parameters
|
15
|
+
# * +from_syms+ [String, Array] - (required) currency symbols (ex: 'BTC', 'ETH', 'LTC', 'USD', 'EUR', 'CNY')
|
16
|
+
# * +to_syms+ [String, Array] - (required) currency symbols (ex: 'USD', 'EUR', 'CNY', 'USD', 'EUR', 'CNY')
|
17
|
+
# * +opts+ [Hash] - (optional) options hash
|
19
18
|
#
|
20
|
-
#
|
19
|
+
# ==== Options
|
20
|
+
# * +e+ [String] - (optional) name of exchange (ex: 'Coinbase','Poloniex') Default: CCCAGG.
|
21
|
+
#
|
22
|
+
# ==== Returns
|
21
23
|
# [Hash] Hash with currency prices
|
22
24
|
#
|
23
|
-
# Examples
|
25
|
+
# ==== Examples
|
24
26
|
#
|
25
27
|
# Convert cryptocurrency to fiat.
|
26
28
|
#
|
27
|
-
# Cryptocompare::Price.find('BTC', 'USD')
|
29
|
+
# Cryptocompare::Price.find('BTC', 'USD')
|
30
|
+
# #=> {"BTC"=>{"USD"=>2594.07}}
|
28
31
|
#
|
29
32
|
# Convert fiat to cryptocurrency.
|
30
33
|
#
|
31
|
-
# Cryptocompare::Price.find('USD', 'BTC')
|
34
|
+
# Cryptocompare::Price.find('USD', 'BTC')
|
35
|
+
# #=> {"USD"=>{"BTC"=>0.0004176}}
|
32
36
|
#
|
33
37
|
# Convert cryptocurrency to cryptocurrency.
|
34
38
|
#
|
35
|
-
# Cryptocompare::Price.find('BTC', 'ETH')
|
39
|
+
# Cryptocompare::Price.find('BTC', 'ETH')
|
40
|
+
# #=> {"BTC"=>{"ETH"=>9.29}}
|
36
41
|
#
|
37
42
|
# Convert fiat to fiat.
|
38
43
|
#
|
39
|
-
# Cryptocompare::Price.find('USD', 'EUR')
|
44
|
+
# Cryptocompare::Price.find('USD', 'EUR')
|
45
|
+
# #=> {"USD"=>{"EUR"=>0.8772}}
|
40
46
|
#
|
41
47
|
# Convert multiple cryptocurrencies to multiple fiat.
|
42
48
|
#
|
43
|
-
# Cryptocompare::Price.find(['BTC','ETH', 'LTC'], ['USD', 'EUR', 'CNY'])
|
49
|
+
# Cryptocompare::Price.find(['BTC','ETH', 'LTC'], ['USD', 'EUR', 'CNY'])
|
50
|
+
# #=> {"BTC"=>{"USD"=>2501.61, "EUR"=>2197.04, "CNY"=>17329.48}, "ETH"=>{"USD"=>236.59, "EUR"=>209.39, "CNY"=>1655.15}, "LTC"=>{"USD"=>45.74, "EUR"=>40.33, "CNY"=>310.5}}
|
44
51
|
#
|
45
52
|
# Convert multiple fiat to multiple cryptocurrencies.
|
46
53
|
#
|
47
|
-
# Cryptocompare::Price.find(['USD', 'EUR'], ['BTC','ETH', 'LTC'])
|
54
|
+
# Cryptocompare::Price.find(['USD', 'EUR'], ['BTC','ETH', 'LTC'])
|
55
|
+
# #=> {"USD"=>{"BTC"=>0.0003996, "ETH"=>0.004238, "LTC"=>0.02184}, "EUR"=>{"BTC"=>0.0004548, "ETH"=>0.00477, "LTC"=>0.0248}}
|
48
56
|
#
|
49
57
|
# Find prices based on exchange.
|
50
58
|
#
|
51
|
-
# Cryptocompare::Price.find('DASH', 'USD', {'e' => 'Kraken'})
|
59
|
+
# Cryptocompare::Price.find('DASH', 'USD', {'e' => 'Kraken'})
|
60
|
+
# #=> {"DASH"=>{"USD"=>152.4}}
|
52
61
|
def self.find(from_syms, to_syms, opts = {})
|
53
62
|
fsyms = Array(from_syms).join(',')
|
54
63
|
tsyms = Array(to_syms).join(',')
|
@@ -12,30 +12,36 @@ module Cryptocompare
|
|
12
12
|
# the crypto does not trade directly into the toSymbol requested, BTC will
|
13
13
|
# be used for conversion. Tries to get direct trading pair data, if there is
|
14
14
|
# none or it is more than 30 days before the ts requested, it uses BTC
|
15
|
-
# conversion. If the opposite pair trades we invert it (eg.: BTC-XMR)
|
15
|
+
# conversion. If the opposite pair trades we invert it (eg.: BTC-XMR).
|
16
16
|
#
|
17
|
-
#
|
18
|
-
# from_sym [String] - (required) currency symbol (ex: 'BTC', 'ETH', 'LTC', 'USD', 'EUR', 'CNY')
|
19
|
-
# to_syms [String, Array] - (required) currency symbol(s) (ex: 'USD', 'EUR', 'CNY', 'USD', 'EUR', 'CNY')
|
20
|
-
# opts [Hash] - (optional) options hash
|
21
|
-
# opts[ts] [String, Integer] - (optional) timestamp
|
17
|
+
# ==== Parameters
|
22
18
|
#
|
23
|
-
#
|
19
|
+
# * +from_sym+ [String] - (required) currency symbol (ex: 'BTC', 'ETH', 'LTC', 'USD', 'EUR', 'CNY')
|
20
|
+
# * +to_syms+ [String, Array] - (required) currency symbol(s) (ex: 'USD', 'EUR', 'CNY', 'USD', 'EUR', 'CNY')
|
21
|
+
# * +opts+ [Hash] - (optional) options hash
|
22
|
+
#
|
23
|
+
# ==== Options
|
24
|
+
# * +ts+ [String, Integer] - (optional) timestamp
|
25
|
+
#
|
26
|
+
# ==== Returns
|
24
27
|
# [Hash] Hash with currency prices
|
25
28
|
#
|
26
|
-
# Examples
|
29
|
+
# ==== Examples
|
27
30
|
#
|
28
31
|
# Find historical price of cryptocurrency.
|
29
32
|
#
|
30
|
-
# Cryptocompare::PriceHistorical.find('ETH', 'USD')
|
33
|
+
# Cryptocompare::PriceHistorical.find('ETH', 'USD')
|
34
|
+
# #=> {"ETH"=>{"USD"=>225.93}}
|
31
35
|
#
|
32
36
|
# Find historical price of cryptocurrency at a given timestamp.
|
33
37
|
#
|
34
|
-
# Cryptocompare::PriceHistorical.find('ETH', 'USD', {'ts' => 1452680400})
|
38
|
+
# Cryptocompare::PriceHistorical.find('ETH', 'USD', {'ts' => 1452680400})
|
39
|
+
# #=> {"ETH"=>{"USD"=>223.2}}
|
35
40
|
#
|
36
41
|
# Find historical price of cryptocurrency in many currencies at a given timestamp.
|
37
42
|
#
|
38
|
-
# Cryptocompare::PriceHistorical.find('ETH', ['BTC', 'USD', 'EUR'], {'ts' => '1452680400')
|
43
|
+
# Cryptocompare::PriceHistorical.find('ETH', ['BTC', 'USD', 'EUR'], {'ts' => '1452680400'})
|
44
|
+
# #=> {"ETH"=>{"BTC"=>0.08006, "USD"=>225.93, "EUR"=>194.24}}
|
39
45
|
def self.find(from_sym, to_syms, opts = {})
|
40
46
|
tsyms = Array(to_syms).join(',')
|
41
47
|
full_path = API_URL + "?fsym=#{from_sym}&tsyms=#{tsyms}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cryptocompare
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander David Pan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -127,6 +127,7 @@ files:
|
|
127
127
|
- config/exchanges.yml
|
128
128
|
- cryptocompare.gemspec
|
129
129
|
- lib/cryptocompare.rb
|
130
|
+
- lib/cryptocompare/coin_snapshot.rb
|
130
131
|
- lib/cryptocompare/price.rb
|
131
132
|
- lib/cryptocompare/price_historical.rb
|
132
133
|
- lib/cryptocompare/version.rb
|
@@ -143,7 +144,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
144
|
requirements:
|
144
145
|
- - '>='
|
145
146
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
147
|
+
version: 2.0.0
|
147
148
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
149
|
requirements:
|
149
150
|
- - '>='
|