cryptoexchange 0.20.0 → 0.21.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/cryptoexchange.gemspec +4 -4
  4. data/lib/cryptoexchange/client.rb +3 -0
  5. data/lib/cryptoexchange/error.rb +6 -0
  6. data/lib/cryptoexchange/exchanges/anx/services/market.rb +4 -7
  7. data/lib/cryptoexchange/exchanges/bancor/market.rb +8 -0
  8. data/lib/cryptoexchange/exchanges/bancor/services/market.rb +36 -0
  9. data/lib/cryptoexchange/exchanges/bancor/services/pair.rb +24 -0
  10. data/lib/cryptoexchange/exchanges/bigone/market.rb +8 -0
  11. data/lib/cryptoexchange/exchanges/bigone/services/market.rb +49 -0
  12. data/lib/cryptoexchange/exchanges/bigone/services/order_book.rb +44 -0
  13. data/lib/cryptoexchange/exchanges/bigone/services/pairs.rb +23 -0
  14. data/lib/cryptoexchange/exchanges/bigone/services/trades.rb +32 -0
  15. data/lib/cryptoexchange/exchanges/bitflyer/services/market.rb +4 -5
  16. data/lib/cryptoexchange/exchanges/bittrex/services/market.rb +7 -0
  17. data/lib/cryptoexchange/exchanges/coinbene/market.rb +8 -0
  18. data/lib/cryptoexchange/exchanges/coinbene/services/market.rb +52 -0
  19. data/lib/cryptoexchange/exchanges/coinbene/services/order_book.rb +43 -0
  20. data/lib/cryptoexchange/exchanges/coinbene/services/pairs.rb +27 -0
  21. data/lib/cryptoexchange/exchanges/coinbene/services/trades.rb +32 -0
  22. data/lib/cryptoexchange/exchanges/cryptopia/services/market.rb +7 -0
  23. data/lib/cryptoexchange/exchanges/ethfinex/market.rb +8 -0
  24. data/lib/cryptoexchange/exchanges/ethfinex/services/market.rb +52 -0
  25. data/lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb +52 -0
  26. data/lib/cryptoexchange/exchanges/ethfinex/services/pairs.rb +26 -0
  27. data/lib/cryptoexchange/exchanges/ethfinex/services/trades.rb +33 -0
  28. data/lib/cryptoexchange/exchanges/koinex/market.rb +8 -0
  29. data/lib/cryptoexchange/exchanges/koinex/services/market.rb +49 -0
  30. data/lib/cryptoexchange/exchanges/koinex/services/pairs.rb +26 -0
  31. data/lib/cryptoexchange/exchanges/liqui/services/market.rb +7 -0
  32. data/lib/cryptoexchange/exchanges/novaexchange/services/market.rb +7 -0
  33. data/lib/cryptoexchange/exchanges/radar_relay/market.rb +8 -0
  34. data/lib/cryptoexchange/exchanges/radar_relay/radar_relay.yml +409 -0
  35. data/lib/cryptoexchange/exchanges/radar_relay/services/market.rb +44 -0
  36. data/lib/cryptoexchange/exchanges/radar_relay/services/pairs.rb +22 -0
  37. data/lib/cryptoexchange/exchanges/trade_ogre/market.rb +8 -0
  38. data/lib/cryptoexchange/exchanges/trade_ogre/services/market.rb +48 -0
  39. data/lib/cryptoexchange/exchanges/trade_ogre/services/order_book.rb +46 -0
  40. data/lib/cryptoexchange/exchanges/trade_ogre/services/pairs.rb +25 -0
  41. data/lib/cryptoexchange/exchanges/trade_ogre/services/trades.rb +31 -0
  42. data/lib/cryptoexchange/exchanges/zb/market.rb +8 -0
  43. data/lib/cryptoexchange/exchanges/zb/services/market.rb +39 -0
  44. data/lib/cryptoexchange/exchanges/zb/services/order_book.rb +44 -0
  45. data/lib/cryptoexchange/exchanges/zb/services/pairs.rb +24 -0
  46. data/lib/cryptoexchange/exchanges/zb/services/trades.rb +32 -0
  47. data/lib/cryptoexchange/helpers/numeric_helper.rb +2 -0
  48. data/lib/cryptoexchange/services/market.rb +2 -0
  49. data/lib/cryptoexchange/services/pairs.rb +7 -1
  50. data/lib/cryptoexchange/version.rb +1 -1
  51. metadata +45 -10
@@ -0,0 +1,44 @@
1
+ module Cryptoexchange::Exchanges
2
+ module RadarRelay
3
+ module Services
4
+ class Market < Cryptoexchange::Services::Market
5
+ class << self
6
+ def supports_individual_ticker_query?
7
+ true
8
+ end
9
+ end
10
+
11
+ def fetch(market_pair)
12
+ output = super(ticker_url(market_pair))
13
+ adapt(market_pair, output)
14
+ end
15
+
16
+ def ticker_url(market_pair)
17
+ "#{Cryptoexchange::Exchanges::RadarRelay::Market::API_URL}/ticker/#{market_pair.base}/#{market_pair.target}"
18
+ end
19
+
20
+ def adapt(market_pair, output)
21
+ ticker = Cryptoexchange::Models::Ticker.new
22
+
23
+ ticker.base = market_pair.base
24
+ ticker.target = market_pair.target
25
+ ticker.market = RadarRelay::Market::NAME
26
+ ticker.last = value_divisor(NumericHelper.to_d(output['last']))
27
+ ticker.high = output['high'] == "NA" ? nil : value_divisor(NumericHelper.to_d(output['high']))
28
+ ticker.low = output['low'] == "NA" ? nil : value_divisor(NumericHelper.to_d(output['low']))
29
+ ticker.volume = NumericHelper.to_d(output['baseVolume'])
30
+ ticker.timestamp = Time.now.to_i
31
+ ticker.payload = output
32
+ ticker
33
+ end
34
+
35
+ private
36
+
37
+ def value_divisor(amount)
38
+ # For radar_relay, price denominated in different format
39
+ 1.0/amount
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,22 @@
1
+ module Cryptoexchange::Exchanges
2
+ module RadarRelay
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+ def fetch
6
+ output = super
7
+ adapt(output)
8
+ end
9
+
10
+ def adapt(output)
11
+ output.map do |pair|
12
+ Cryptoexchange::Models::MarketPair.new({
13
+ base: pair[:base],
14
+ target: pair[:target],
15
+ market: RadarRelay::Market::NAME
16
+ })
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,8 @@
1
+ module Cryptoexchange::Exchanges
2
+ module TradeOgre
3
+ class Market
4
+ NAME = 'trade_ogre'
5
+ API_URL = 'https://tradeogre.com/api/v1'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,48 @@
1
+ module Cryptoexchange::Exchanges
2
+ module TradeOgre
3
+ module Services
4
+ class Market < Cryptoexchange::Services::Market
5
+ class << self
6
+ def supports_individual_ticker_query?
7
+ false
8
+ end
9
+ end
10
+
11
+ def fetch
12
+ output = super(ticker_url)
13
+ adapt_all(output)
14
+ end
15
+
16
+ def ticker_url
17
+ "#{Cryptoexchange::Exchanges::TradeOgre::Market::API_URL}/markets"
18
+ end
19
+
20
+ def adapt_all(output)
21
+ output.map do |market|
22
+ target, base = market.keys.first.split('-')
23
+ market_pair = Cryptoexchange::Models::MarketPair.new(
24
+ base: base,
25
+ target: target,
26
+ market: TradeOgre::Market::NAME
27
+ )
28
+ adapt(market.values.first, market_pair)
29
+ end
30
+ end
31
+
32
+ def adapt(output, market_pair)
33
+ ticker = Cryptoexchange::Models::Ticker.new
34
+ ticker.base = market_pair.base
35
+ ticker.target = market_pair.target
36
+ ticker.market = TradeOgre::Market::NAME
37
+ ticker.last = NumericHelper.to_d(output['price'])
38
+ ticker.high = NumericHelper.to_d(output['high'])
39
+ ticker.low = NumericHelper.to_d(output['low'])
40
+ ticker.volume = NumericHelper.divide(NumericHelper.to_d(output['volume']), ticker.last)
41
+ ticker.timestamp = Time.now.to_i
42
+ ticker.payload = output
43
+ ticker
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,46 @@
1
+ module Cryptoexchange::Exchanges
2
+ module TradeOgre
3
+ module Services
4
+ class OrderBook < Cryptoexchange::Services::Market
5
+ class << self
6
+ def supports_individual_ticker_query?
7
+ true
8
+ end
9
+ end
10
+
11
+ def fetch(market_pair)
12
+ output = super(ticker_url(market_pair))
13
+ adapt(output, market_pair)
14
+ end
15
+
16
+ def ticker_url(market_pair)
17
+ "#{Cryptoexchange::Exchanges::TradeOgre::Market::API_URL}/orders/#{market_pair.target}-#{market_pair.base}"
18
+ end
19
+
20
+ def adapt(output, market_pair)
21
+ order_book = Cryptoexchange::Models::OrderBook.new
22
+ timestamp = Time.now.to_i
23
+
24
+ order_book.base = market_pair.base
25
+ order_book.target = market_pair.target
26
+ order_book.market = TradeOgre::Market::NAME
27
+ order_book.asks = adapt_orders output['sell']
28
+ order_book.bids = adapt_orders output['buy']
29
+ order_book.timestamp = timestamp
30
+ order_book.payload = output
31
+ order_book
32
+ end
33
+
34
+ def adapt_orders(orders)
35
+ orders.collect do |key, value|
36
+ Cryptoexchange::Models::Order.new(
37
+ price: key,
38
+ amount: value,
39
+ timestamp: nil
40
+ )
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,25 @@
1
+ module Cryptoexchange::Exchanges
2
+ module TradeOgre
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+ PAIRS_URL = "#{Cryptoexchange::Exchanges::TradeOgre::Market::API_URL}/markets"
6
+
7
+ def fetch
8
+ output = super
9
+ adapt(output)
10
+ end
11
+
12
+ def adapt(output)
13
+ output.collect do |pair|
14
+ target, base = pair.keys.first.split("-")
15
+ Cryptoexchange::Models::MarketPair.new(
16
+ base: base,
17
+ target: target,
18
+ market: TradeOgre::Market::NAME
19
+ )
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,31 @@
1
+ module Cryptoexchange::Exchanges
2
+ module TradeOgre
3
+ module Services
4
+ class Trades < Cryptoexchange::Services::Market
5
+ def fetch(market_pair)
6
+ output = super(ticker_url(market_pair))
7
+ adapt(output, market_pair)
8
+ end
9
+
10
+ def ticker_url(market_pair)
11
+ "#{Cryptoexchange::Exchanges::TradeOgre::Market::API_URL}/history/#{market_pair.target}-#{market_pair.base}"
12
+ end
13
+
14
+ def adapt(output, market_pair)
15
+ output.collect do |trade|
16
+ tr = Cryptoexchange::Models::Trade.new
17
+ tr.base = market_pair.base
18
+ tr.target = market_pair.target
19
+ tr.type = trade['type']
20
+ tr.price = trade['price']
21
+ tr.amount = trade['quantity']
22
+ tr.timestamp = trade['date']
23
+ tr.payload = trade
24
+ tr.market = TradeOgre::Market::NAME
25
+ tr
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,8 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Zb
3
+ class Market
4
+ NAME = 'zb'
5
+ API_URL = 'http://api.zb.com/data/v1'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,39 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Zb
3
+ module Services
4
+ class Market < Cryptoexchange::Services::Market
5
+ class << self
6
+ def supports_individual_ticker_query?
7
+ true
8
+ end
9
+ end
10
+
11
+ def fetch(market_pair)
12
+ output = super(ticker_url(market_pair))
13
+ adapt(output, market_pair)
14
+ end
15
+
16
+ def ticker_url(market_pair)
17
+ "#{Cryptoexchange::Exchanges::Zb::Market::API_URL}/ticker?market=#{market_pair.base.downcase}_#{market_pair.target.downcase}"
18
+ end
19
+
20
+ def adapt(output, market_pair)
21
+ ticker = Cryptoexchange::Models::Ticker.new
22
+ ticker.base = market_pair.base
23
+ ticker.target = market_pair.target
24
+ ticker.market = Zb::Market::NAME
25
+ ticker.ask = NumericHelper.to_d(output["ticker"]["sell"])
26
+ ticker.bid = NumericHelper.to_d(output["ticker"]["buy"])
27
+ ticker.last = NumericHelper.to_d(output["ticker"]["last"])
28
+ ticker.high = NumericHelper.to_d(output["ticker"]["high"])
29
+ ticker.low = NumericHelper.to_d(output["ticker"]["low"])
30
+ ticker.volume = NumericHelper.to_d(output["ticker"]["vol"])
31
+ ticker.timestamp = Time.now.to_i
32
+ ticker.payload = output
33
+ ticker
34
+ end
35
+
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,44 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Zb
3
+ module Services
4
+ class OrderBook < Cryptoexchange::Services::Market
5
+ class << self
6
+ def supports_individual_ticker_query?
7
+ true
8
+ end
9
+ end
10
+
11
+ def fetch(market_pair)
12
+ output = super(orderbook_url(market_pair))
13
+ adapt(output, market_pair)
14
+ end
15
+
16
+ def orderbook_url(market_pair)
17
+ "#{Cryptoexchange::Exchanges::Zb::Market::API_URL}/depth?market=#{market_pair.base.downcase}_#{market_pair.target.downcase}"
18
+ end
19
+
20
+ def adapt(output, market_pair)
21
+ order_book = Cryptoexchange::Models::OrderBook.new
22
+ timestamp = output["timestamp"].to_i
23
+
24
+ order_book.base = market_pair.base
25
+ order_book.target = market_pair.target
26
+ order_book.market = Zb::Market::NAME
27
+ order_book.asks = adapt_orders(output["asks"])
28
+ order_book.bids = adapt_orders(output["bids"])
29
+ order_book.timestamp = timestamp
30
+ order_book.payload = output
31
+ order_book
32
+ end
33
+
34
+ def adapt_orders(orders)
35
+ orders.collect do |order_entry|
36
+ Cryptoexchange::Models::Order.new(price: order_entry[0],
37
+ amount: order_entry[1],
38
+ timestamp: nil)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,24 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Zb
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+ PAIRS_URL = "#{Cryptoexchange::Exchanges::Zb::Market::API_URL}/markets"
6
+
7
+ def fetch
8
+ output = super
9
+ market_pairs = []
10
+ output.each do |pair|
11
+ pair_split = pair[0].split('_')
12
+ market_pairs << Cryptoexchange::Models::MarketPair.new(
13
+ base: pair_split[0],
14
+ target: pair_split[1],
15
+ market: Zb::Market::NAME
16
+ )
17
+ end
18
+ market_pairs
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,32 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Zb
3
+ module Services
4
+ class Trades < Cryptoexchange::Services::Market
5
+ def fetch(market_pair)
6
+ output = super(ticker_url(market_pair))
7
+ adapt(output, market_pair)
8
+ end
9
+
10
+ def ticker_url(market_pair)
11
+ "#{Cryptoexchange::Exchanges::Zb::Market::API_URL}/trades?market=#{market_pair.base.downcase}_#{market_pair.target.downcase}"
12
+ end
13
+
14
+ def adapt(output, market_pair)
15
+ output.collect do |trade|
16
+ tr = Cryptoexchange::Models::Trade.new
17
+ tr.trade_id = trade["tid"]
18
+ tr.base = market_pair.base
19
+ tr.target = market_pair.target
20
+ tr.market = Zb::Market::NAME
21
+ tr.type = trade["type"]
22
+ tr.price = trade["price"]
23
+ tr.amount = trade["amount"]
24
+ tr.timestamp = trade["date"].to_i
25
+ tr.payload = trade
26
+ tr
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -7,6 +7,8 @@ class NumericHelper
7
7
  else
8
8
  nil
9
9
  end
10
+ rescue
11
+ nil
10
12
  end
11
13
 
12
14
  def divide(number, divisor)
@@ -13,6 +13,8 @@ module Cryptoexchange
13
13
  response = http_get(endpoint)
14
14
  if response.code == 200
15
15
  response.parse :json
16
+ elsif response.code == 400
17
+ raise Cryptoexchange::HttpBadRequestError, { response: response }
16
18
  else
17
19
  raise Cryptoexchange::HttpResponseError, { response: response }
18
20
  end
@@ -19,9 +19,11 @@ module Cryptoexchange
19
19
 
20
20
  def fetch_via_api(endpoint = self.class::PAIRS_URL)
21
21
  begin
22
- fetch_response = HTTP.timeout(:write => 2, :connect => 5, :read => 8).get(endpoint)
22
+ fetch_response = http_get(endpoint)
23
23
  if fetch_response.code == 200
24
24
  fetch_response.parse :json
25
+ elsif fetch_response.code == 400
26
+ raise Cryptoexchange::HttpBadRequestError, { response: fetch_response }
25
27
  else
26
28
  raise Cryptoexchange::HttpResponseError, { response: fetch_response }
27
29
  end
@@ -60,6 +62,10 @@ module Cryptoexchange
60
62
  exchange_name = self.class.name.split('::')[2]
61
63
  Object.const_get "Cryptoexchange::Exchanges::#{exchange_name}::Market"
62
64
  end
65
+
66
+ def http_get(endpoint)
67
+ fetch_response = HTTP.timeout(:write => 2, :connect => 5, :read => 8).get(endpoint)
68
+ end
63
69
  end
64
70
  end
65
71
  end
@@ -1,3 +1,3 @@
1
1
  module Cryptoexchange
2
- VERSION = "0.20.0"
2
+ VERSION = "0.21.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cryptoexchange
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - TM Lee
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-28 00:00:00.000000000 Z
11
+ date: 2018-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,42 +86,42 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 3.0.3
89
+ version: 4.0.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 3.0.3
96
+ version: 4.0.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: webmock
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: 3.3.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: 3.3.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: http
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.0.0
117
+ version: 3.0.0
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 1.0.0
124
+ version: 3.0.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: lru_redux
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -178,11 +178,19 @@ files:
178
178
  - lib/cryptoexchange/exchanges/anx/market.rb
179
179
  - lib/cryptoexchange/exchanges/anx/services/market.rb
180
180
  - lib/cryptoexchange/exchanges/anx/services/pairs.rb
181
+ - lib/cryptoexchange/exchanges/bancor/market.rb
182
+ - lib/cryptoexchange/exchanges/bancor/services/market.rb
183
+ - lib/cryptoexchange/exchanges/bancor/services/pair.rb
181
184
  - lib/cryptoexchange/exchanges/bibox/market.rb
182
185
  - lib/cryptoexchange/exchanges/bibox/services/market.rb
183
186
  - lib/cryptoexchange/exchanges/bibox/services/order_book.rb
184
187
  - lib/cryptoexchange/exchanges/bibox/services/pairs.rb
185
188
  - lib/cryptoexchange/exchanges/bibox/services/trades.rb
189
+ - lib/cryptoexchange/exchanges/bigone/market.rb
190
+ - lib/cryptoexchange/exchanges/bigone/services/market.rb
191
+ - lib/cryptoexchange/exchanges/bigone/services/order_book.rb
192
+ - lib/cryptoexchange/exchanges/bigone/services/pairs.rb
193
+ - lib/cryptoexchange/exchanges/bigone/services/trades.rb
186
194
  - lib/cryptoexchange/exchanges/binance/market.rb
187
195
  - lib/cryptoexchange/exchanges/binance/services/market.rb
188
196
  - lib/cryptoexchange/exchanges/binance/services/order_book.rb
@@ -258,6 +266,11 @@ files:
258
266
  - lib/cryptoexchange/exchanges/coin_exchange/market.rb
259
267
  - lib/cryptoexchange/exchanges/coin_exchange/services/market.rb
260
268
  - lib/cryptoexchange/exchanges/coin_exchange/services/pairs.rb
269
+ - lib/cryptoexchange/exchanges/coinbene/market.rb
270
+ - lib/cryptoexchange/exchanges/coinbene/services/market.rb
271
+ - lib/cryptoexchange/exchanges/coinbene/services/order_book.rb
272
+ - lib/cryptoexchange/exchanges/coinbene/services/pairs.rb
273
+ - lib/cryptoexchange/exchanges/coinbene/services/trades.rb
261
274
  - lib/cryptoexchange/exchanges/coincheck/coincheck.yml
262
275
  - lib/cryptoexchange/exchanges/coincheck/market.rb
263
276
  - lib/cryptoexchange/exchanges/coincheck/services/market.rb
@@ -293,6 +306,11 @@ files:
293
306
  - lib/cryptoexchange/exchanges/ether_delta/market.rb
294
307
  - lib/cryptoexchange/exchanges/ether_delta/services/market.rb
295
308
  - lib/cryptoexchange/exchanges/ether_delta/services/pairs.rb
309
+ - lib/cryptoexchange/exchanges/ethfinex/market.rb
310
+ - lib/cryptoexchange/exchanges/ethfinex/services/market.rb
311
+ - lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb
312
+ - lib/cryptoexchange/exchanges/ethfinex/services/pairs.rb
313
+ - lib/cryptoexchange/exchanges/ethfinex/services/trades.rb
296
314
  - lib/cryptoexchange/exchanges/exmo/market.rb
297
315
  - lib/cryptoexchange/exchanges/exmo/services/market.rb
298
316
  - lib/cryptoexchange/exchanges/exmo/services/order_book.rb
@@ -337,6 +355,9 @@ files:
337
355
  - lib/cryptoexchange/exchanges/k_kex/services/order_book.rb
338
356
  - lib/cryptoexchange/exchanges/k_kex/services/pairs.rb
339
357
  - lib/cryptoexchange/exchanges/k_kex/services/trades.rb
358
+ - lib/cryptoexchange/exchanges/koinex/market.rb
359
+ - lib/cryptoexchange/exchanges/koinex/services/market.rb
360
+ - lib/cryptoexchange/exchanges/koinex/services/pairs.rb
340
361
  - lib/cryptoexchange/exchanges/korbit/korbit.yml
341
362
  - lib/cryptoexchange/exchanges/korbit/market.rb
342
363
  - lib/cryptoexchange/exchanges/korbit/services/market.rb
@@ -405,6 +426,10 @@ files:
405
426
  - lib/cryptoexchange/exchanges/quoine/market.rb
406
427
  - lib/cryptoexchange/exchanges/quoine/services/market.rb
407
428
  - lib/cryptoexchange/exchanges/quoine/services/pairs.rb
429
+ - lib/cryptoexchange/exchanges/radar_relay/market.rb
430
+ - lib/cryptoexchange/exchanges/radar_relay/radar_relay.yml
431
+ - lib/cryptoexchange/exchanges/radar_relay/services/market.rb
432
+ - lib/cryptoexchange/exchanges/radar_relay/services/pairs.rb
408
433
  - lib/cryptoexchange/exchanges/stocks_exchange/market.rb
409
434
  - lib/cryptoexchange/exchanges/stocks_exchange/services/market.rb
410
435
  - lib/cryptoexchange/exchanges/stocks_exchange/services/pairs.rb
@@ -417,6 +442,11 @@ files:
417
442
  - lib/cryptoexchange/exchanges/tidex/market.rb
418
443
  - lib/cryptoexchange/exchanges/tidex/services/market.rb
419
444
  - lib/cryptoexchange/exchanges/tidex/services/pairs.rb
445
+ - lib/cryptoexchange/exchanges/trade_ogre/market.rb
446
+ - lib/cryptoexchange/exchanges/trade_ogre/services/market.rb
447
+ - lib/cryptoexchange/exchanges/trade_ogre/services/order_book.rb
448
+ - lib/cryptoexchange/exchanges/trade_ogre/services/pairs.rb
449
+ - lib/cryptoexchange/exchanges/trade_ogre/services/trades.rb
420
450
  - lib/cryptoexchange/exchanges/trade_satoshi/market.rb
421
451
  - lib/cryptoexchange/exchanges/trade_satoshi/services/market.rb
422
452
  - lib/cryptoexchange/exchanges/trade_satoshi/services/pairs.rb
@@ -447,6 +477,11 @@ files:
447
477
  - lib/cryptoexchange/exchanges/zaif/services/order_book.rb
448
478
  - lib/cryptoexchange/exchanges/zaif/services/pairs.rb
449
479
  - lib/cryptoexchange/exchanges/zaif/services/trades.rb
480
+ - lib/cryptoexchange/exchanges/zb/market.rb
481
+ - lib/cryptoexchange/exchanges/zb/services/market.rb
482
+ - lib/cryptoexchange/exchanges/zb/services/order_book.rb
483
+ - lib/cryptoexchange/exchanges/zb/services/pairs.rb
484
+ - lib/cryptoexchange/exchanges/zb/services/trades.rb
450
485
  - lib/cryptoexchange/helpers/hash_helper.rb
451
486
  - lib/cryptoexchange/helpers/numeric_helper.rb
452
487
  - lib/cryptoexchange/helpers/string_helper.rb