cryptoexchange 0.19.0 → 0.20.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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -2
  3. data/lib/cryptoexchange/client.rb +15 -35
  4. data/lib/cryptoexchange/error.rb +3 -0
  5. data/lib/cryptoexchange/exchanges/acx/services/market.rb +2 -2
  6. data/lib/cryptoexchange/exchanges/bibox/market.rb +8 -0
  7. data/lib/cryptoexchange/exchanges/bibox/services/market.rb +42 -0
  8. data/lib/cryptoexchange/exchanges/bibox/services/order_book.rb +47 -0
  9. data/lib/cryptoexchange/exchanges/bibox/services/pairs.rb +24 -0
  10. data/lib/cryptoexchange/exchanges/bibox/services/trades.rb +34 -0
  11. data/lib/cryptoexchange/exchanges/cobinhood/market.rb +8 -0
  12. data/lib/cryptoexchange/exchanges/cobinhood/services/market.rb +41 -0
  13. data/lib/cryptoexchange/exchanges/cobinhood/services/order_book.rb +44 -0
  14. data/lib/cryptoexchange/exchanges/cobinhood/services/pairs.rb +24 -0
  15. data/lib/cryptoexchange/exchanges/coinnest/coinnest.yml +47 -0
  16. data/lib/cryptoexchange/exchanges/coinnest/market.rb +8 -0
  17. data/lib/cryptoexchange/exchanges/coinnest/services/market.rb +39 -0
  18. data/lib/cryptoexchange/exchanges/coinnest/services/order_book.rb +45 -0
  19. data/lib/cryptoexchange/exchanges/coinnest/services/pairs.rb +23 -0
  20. data/lib/cryptoexchange/exchanges/coinnest/services/trades.rb +32 -0
  21. data/lib/cryptoexchange/exchanges/cryptopia/services/order_book.rb +47 -0
  22. data/lib/cryptoexchange/exchanges/cryptopia/services/trades.rb +34 -0
  23. data/lib/cryptoexchange/exchanges/hksy/hksy.yml +69 -0
  24. data/lib/cryptoexchange/exchanges/hksy/market.rb +9 -0
  25. data/lib/cryptoexchange/exchanges/hksy/services/market.rb +42 -0
  26. data/lib/cryptoexchange/exchanges/hksy/services/pairs.rb +21 -0
  27. data/lib/cryptoexchange/exchanges/hksy/services/trades.rb +34 -0
  28. data/lib/cryptoexchange/exchanges/k_kex/market.rb +8 -0
  29. data/lib/cryptoexchange/exchanges/k_kex/services/market.rb +41 -0
  30. data/lib/cryptoexchange/exchanges/k_kex/services/order_book.rb +45 -0
  31. data/lib/cryptoexchange/exchanges/k_kex/services/pairs.rb +24 -0
  32. data/lib/cryptoexchange/exchanges/k_kex/services/trades.rb +32 -0
  33. data/lib/cryptoexchange/exchanges/trade_satoshi/market.rb +8 -0
  34. data/lib/cryptoexchange/exchanges/trade_satoshi/services/market.rb +65 -0
  35. data/lib/cryptoexchange/exchanges/trade_satoshi/services/pairs.rb +27 -0
  36. data/lib/cryptoexchange/services/market.rb +16 -2
  37. data/lib/cryptoexchange/services/pairs.rb +16 -2
  38. data/lib/cryptoexchange/version.rb +1 -1
  39. metadata +32 -2
@@ -0,0 +1,47 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Cryptopia
3
+ module Services
4
+ class OrderBook < Cryptoexchange::Services::Market
5
+ MAXIMUM_DEPTH = 100000
6
+
7
+ class << self
8
+ def supports_individual_ticker_query?
9
+ true
10
+ end
11
+ end
12
+
13
+ def fetch(market_pair)
14
+ output = super(ticker_url(market_pair))
15
+ adapt(output, market_pair)
16
+ end
17
+
18
+ def ticker_url(market_pair)
19
+ "#{Cryptoexchange::Exchanges::Cryptopia::Market::API_URL}/GetMarketOrders/#{market_pair.base}_#{market_pair.target}/#{MAXIMUM_DEPTH}"
20
+ end
21
+
22
+ def adapt(output, market_pair)
23
+ order_book = Cryptoexchange::Models::OrderBook.new
24
+
25
+ order_book.base = market_pair.base
26
+ order_book.target = market_pair.target
27
+ order_book.market = Cryptopia::Market::NAME
28
+ order_book.asks = adapt_orders output['Data']['Sell']
29
+ order_book.bids = adapt_orders output['Data']['Buy']
30
+ order_book.timestamp = Time.now.to_i
31
+ order_book.payload = output
32
+ order_book
33
+ end
34
+
35
+ def adapt_orders(orders)
36
+ orders.collect do |order_entry|
37
+ Cryptoexchange::Models::Order.new(
38
+ price: order_entry['Price'],
39
+ amount: order_entry['Volume'],
40
+ timestamp: nil
41
+ )
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,34 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Cryptopia
3
+ module Services
4
+ class Trades < Cryptoexchange::Services::Market
5
+ HOURS = 24
6
+
7
+ def fetch(market_pair)
8
+ output = super(ticker_url(market_pair))
9
+ adapt(output, market_pair)
10
+ end
11
+
12
+ def ticker_url(market_pair)
13
+ "#{Cryptoexchange::Exchanges::Cryptopia::Market::API_URL}/GetMarketHistory/#{market_pair.base}_#{market_pair.target}/#{HOURS}"
14
+ end
15
+
16
+ def adapt(output, market_pair)
17
+ (output['Data'] || []).collect do |trade|
18
+ tr = Cryptoexchange::Models::Trade.new
19
+ tr.trade_id = nil
20
+ tr.base = market_pair.base
21
+ tr.target = market_pair.target
22
+ tr.market = Cryptopia::Market::NAME
23
+ tr.type = trade['Type'].to_s.downcase
24
+ tr.price = trade['Price']
25
+ tr.amount = trade['Amount']
26
+ tr.timestamp = trade['Timestamp'].to_i
27
+ tr.payload = trade
28
+ tr
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,69 @@
1
+ :pairs:
2
+ - :base: USDT
3
+ :target: HKD
4
+ - :base: ETH
5
+ :target: HKD
6
+ - :base: ETF
7
+ :target: HKD
8
+ - :base: BTC
9
+ :target: HKD
10
+ - :base: LTC
11
+ :target: HKD
12
+ - :base: LRC
13
+ :target: HKD
14
+ - :base: BCH
15
+ :target: HKD
16
+ - :base: UBTC
17
+ :target: HKD
18
+ - :base: QTUM
19
+ :target: HKD
20
+ - :base: TCC
21
+ :target: HKD
22
+ - :base: NCC
23
+ :target: HKD
24
+ - :base: NEO
25
+ :target: HKD
26
+ - :base: NEOGAS
27
+ :target: HKD
28
+ - :base: TV
29
+ :target: HKD
30
+ - :base: ICHC
31
+ :target: HKD
32
+ - :base: IPT
33
+ :target: HKD
34
+ - :base: HSR
35
+ :target: HKD
36
+ - :base: GEC
37
+ :target: HKD
38
+ - :base: STX
39
+ :target: HKD
40
+ - :base: TSL
41
+ :target: HKD
42
+ - :base: STC
43
+ :target: HKD
44
+ - :base: QBT
45
+ :target: HKD
46
+ - :base: ITS
47
+ :target: HKD
48
+ - :base: PBC
49
+ :target: HKD
50
+ - :base: HGT
51
+ :target: HKD
52
+ - :base: ACTC
53
+ :target: HKD
54
+ - :base: INK
55
+ :target: HKD
56
+ - :base: JRC
57
+ :target: HKD
58
+ - :base: EPS
59
+ :target: HKD
60
+ - :base: LKH
61
+ :target: HKD
62
+ - :base: CTC
63
+ :target: HKD
64
+ - :base: WDC
65
+ :target: HKD
66
+ - :base: TKC
67
+ :target: HKD
68
+ - :base: ZSC
69
+ :target: HKD
@@ -0,0 +1,9 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Hksy
3
+ class Market
4
+ NAME = 'hksy'
5
+ MARKET_API_URL = 'https://openapi.hksy.com/app/coinMarket/v1'
6
+ TRADE_API_URL = 'https://openapi.hksy.com/app/tradeCenter/v1'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,42 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Hksy
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
+ base = market_pair.base
18
+ target = market_pair.target
19
+ "#{Cryptoexchange::Exchanges::Hksy::Market::MARKET_API_URL}/selectCoinMarketbyCoinName?coinName=#{base}&payCoinName=#{target}"
20
+ end
21
+
22
+ def adapt(output, market_pair)
23
+ market = output["model"]
24
+
25
+ ticker = Cryptoexchange::Models::Ticker.new
26
+ ticker.base = market_pair.base
27
+ ticker.target = market_pair.target
28
+ ticker.market = Hksy::Market::NAME
29
+ ticker.ask = NumericHelper.to_d(market['sellprice'])
30
+ ticker.bid = NumericHelper.to_d(market['buyprice'])
31
+ ticker.last = NumericHelper.to_d(market['newclinchprice'])
32
+ ticker.high = NumericHelper.to_d(market['highprice'])
33
+ ticker.low = NumericHelper.to_d(market['lowprice'])
34
+ ticker.volume = NumericHelper.to_d(market['count24'])
35
+ ticker.timestamp = Time.now.to_i
36
+ ticker.payload = market
37
+ ticker
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,21 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Hksy
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+ def fetch
6
+ adapt(super)
7
+ end
8
+
9
+ def adapt(output)
10
+ output.map do |pair|
11
+ Cryptoexchange::Models::MarketPair.new(
12
+ base: pair[:base],
13
+ target: pair[:target],
14
+ market: Hksy::Market::NAME
15
+ )
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,34 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Hksy
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
+ base = market_pair.base
12
+ target = market_pair.target
13
+ "#{Cryptoexchange::Exchanges::Hksy::Market::TRADE_API_URL}/selectClinchInfoByCoinName?coinName=#{base}&payCoinName=#{target}"
14
+ end
15
+
16
+ def adapt(output, market_pair)
17
+ data = output["model"]
18
+ data.collect do |trade|
19
+ tr = Cryptoexchange::Models::Trade.new
20
+ tr.base = market_pair.base
21
+ tr.target = market_pair.target
22
+ tr.type = trade['type']
23
+ tr.price = trade['price']
24
+ tr.amount = trade['amount']
25
+ tr.timestamp = trade['createtime'].to_i
26
+ tr.payload = trade
27
+ tr.market = Hksy::Market::NAME
28
+ tr
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,8 @@
1
+ module Cryptoexchange::Exchanges
2
+ module KKex
3
+ class Market
4
+ NAME = 'k_kex'
5
+ API_URL = 'https://kkex.com/api/v1'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,41 @@
1
+ module Cryptoexchange::Exchanges
2
+ module KKex
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::KKex::Market::API_URL}/ticker?symbol=#{market_pair.base}#{market_pair.target}"
18
+ end
19
+
20
+ def adapt(output, market_pair)
21
+ ticker = Cryptoexchange::Models::Ticker.new
22
+ base = market_pair.base
23
+ target = market_pair.target
24
+
25
+ ticker.base = base
26
+ ticker.target = target
27
+ ticker.market = KKex::Market::NAME
28
+ ticker.ask = NumericHelper.to_d(output['ticker']['sell'])
29
+ ticker.bid = NumericHelper.to_d(output['ticker']['buy'])
30
+ ticker.last = NumericHelper.to_d(output['ticker']['last'])
31
+ ticker.low = NumericHelper.to_d(output['ticker']['low'])
32
+ ticker.volume = NumericHelper.to_d(output['ticker']['vol'])
33
+ ticker.high = NumericHelper.to_d(output['ticker']['high'])
34
+ ticker.timestamp = DateTime.now.to_time.to_i
35
+ ticker.payload = output
36
+ ticker
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,45 @@
1
+ module Cryptoexchange::Exchanges
2
+ module KKex
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::KKex::Market::API_URL}/depth?symbol=#{market_pair.base}#{market_pair.target}&size=20"
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 = KKex::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
+ price, amount = order_entry
37
+ Cryptoexchange::Models::Order.new(price: price,
38
+ amount: amount,
39
+ timestamp: nil)
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,24 @@
1
+ module Cryptoexchange::Exchanges
2
+ module KKex
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+ PAIRS_URL = "#{Cryptoexchange::Exchanges::KKex::Market::API_URL}/products"
6
+
7
+ def fetch
8
+ output = super
9
+ adapt(output)
10
+ end
11
+
12
+ def adapt(output)
13
+ output["products"].map do |pair|
14
+ Cryptoexchange::Models::MarketPair.new(
15
+ base: pair['mark_asset'],
16
+ target: pair['base_asset'],
17
+ market: KKex::Market::NAME
18
+ )
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,32 @@
1
+ module Cryptoexchange::Exchanges
2
+ module KKex
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::KKex::Market::API_URL}/trades?symbol=#{market_pair.base}#{market_pair.target}"
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.type = trade['type']
21
+ tr.price = trade['price']
22
+ tr.amount = trade['amount']
23
+ tr.timestamp = trade['date'].to_i
24
+ tr.payload = trade
25
+ tr.market = KKex::Market::NAME
26
+ tr
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,8 @@
1
+ module Cryptoexchange::Exchanges
2
+ module TradeSatoshi
3
+ class Market
4
+ NAME = 'trade_satoshi'
5
+ API_URL = 'https://tradesatoshi.com/api/public'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,65 @@
1
+ module Cryptoexchange::Exchanges
2
+ module TradeSatoshi
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::TradeSatoshi::Market::API_URL}/getmarketsummaries"
18
+ end
19
+
20
+ def adapt_all(output)
21
+ output['result'].map do |ticker|
22
+ base, target = ticker['market'].split('_')
23
+ market_pair = Cryptoexchange::Models::MarketPair.new(
24
+ base: base,
25
+ target: target,
26
+ market: TradeSatoshi::Market::NAME
27
+ )
28
+ adapt(ticker, market_pair)
29
+ end
30
+ end
31
+
32
+ # {
33
+ # "market":"LTC_BTC",
34
+ # "high":0.01749999,
35
+ # "low":0.01520006,
36
+ # "volume":469.05469918,
37
+ # "baseVolume":7.71450537,
38
+ # "last":0.01680000,
39
+ # "bid":0.01680000,
40
+ # "ask":0.01699999,
41
+ # "openBuyOrders":59,
42
+ # "openSellOrders":70,
43
+ # "change":0.0
44
+ # }
45
+ def adapt(output, market_pair)
46
+ market = output
47
+ # raise output.inspect
48
+ ticker = Cryptoexchange::Models::Ticker.new
49
+ ticker.base = market_pair.base
50
+ ticker.target = market_pair.target
51
+ ticker.market = TradeSatoshi::Market::NAME
52
+ ticker.ask = NumericHelper.to_d(market['ask'])
53
+ ticker.bid = NumericHelper.to_d(market['bid'])
54
+ ticker.last = NumericHelper.to_d(market['last'])
55
+ ticker.high = NumericHelper.to_d(market['high'])
56
+ ticker.low = NumericHelper.to_d(market['low'])
57
+ ticker.volume = NumericHelper.to_d(market['volume'])
58
+ ticker.timestamp = DateTime.now.to_time.to_i
59
+ ticker.payload = market
60
+ ticker
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,27 @@
1
+ module Cryptoexchange::Exchanges
2
+ module TradeSatoshi
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+ PAIRS_URL = "#{Cryptoexchange::Exchanges::TradeSatoshi::Market::API_URL}/getmarketsummaries"
6
+
7
+ def fetch
8
+ output = super
9
+ adapt(output)
10
+ end
11
+
12
+ def adapt(output)
13
+ pairs = []
14
+ output['result'].each do |data|
15
+ base, target = data['market'].split('_')
16
+ pairs << Cryptoexchange::Models::MarketPair.new(
17
+ base: base,
18
+ target: target,
19
+ market: TradeSatoshi::Market::NAME
20
+ )
21
+ end
22
+ pairs
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -9,8 +9,22 @@ module Cryptoexchange
9
9
 
10
10
  def fetch(endpoint)
11
11
  LruTtlCache.ticker_cache.getset(endpoint) do
12
- response = http_get(endpoint)
13
- JSON.parse(response.to_s)
12
+ begin
13
+ response = http_get(endpoint)
14
+ if response.code == 200
15
+ response.parse :json
16
+ else
17
+ raise Cryptoexchange::HttpResponseError, { response: response }
18
+ end
19
+ rescue HTTP::ConnectionError => e
20
+ raise Cryptoexchange::HttpConnectionError, { error: e, response: response }
21
+ rescue HTTP::TimeoutError => e
22
+ raise Cryptoexchange::HttpTimeoutError, { error: e, response: response }
23
+ rescue JSON::ParserError => e
24
+ raise Cryptoexchange::JsonParseError, { error: e, response: response }
25
+ rescue TypeError => e
26
+ raise Cryptoexchange::TypeFormatError, { error: e, response: response }
27
+ end
14
28
  end
15
29
  end
16
30
 
@@ -18,8 +18,22 @@ module Cryptoexchange
18
18
  end
19
19
 
20
20
  def fetch_via_api(endpoint = self.class::PAIRS_URL)
21
- fetch_response = HTTP.timeout(:write => 2, :connect => 5, :read => 8).get(endpoint)
22
- JSON.parse(fetch_response.to_s)
21
+ begin
22
+ fetch_response = HTTP.timeout(:write => 2, :connect => 5, :read => 8).get(endpoint)
23
+ if fetch_response.code == 200
24
+ fetch_response.parse :json
25
+ else
26
+ raise Cryptoexchange::HttpResponseError, { response: fetch_response }
27
+ end
28
+ rescue HTTP::ConnectionError => e
29
+ raise Cryptoexchange::HttpConnectionError, { error: e, response: fetch_response }
30
+ rescue HTTP::TimeoutError => e
31
+ raise Cryptoexchange::HttpTimeoutError, { error: e, response: fetch_response }
32
+ rescue JSON::ParserError => e
33
+ raise Cryptoexchange::JsonParseError, { error: e, response: fetch_response }
34
+ rescue TypeError => e
35
+ raise Cryptoexchange::TypeFormatError, { error: e, response: fetch_response }
36
+ end
23
37
  end
24
38
 
25
39
  def fetch_via_override(path)
@@ -1,3 +1,3 @@
1
1
  module Cryptoexchange
2
- VERSION = "0.19.0"
2
+ VERSION = "0.20.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.19.0
4
+ version: 0.20.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-16 00:00:00.000000000 Z
11
+ date: 2018-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -178,6 +178,11 @@ 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/bibox/market.rb
182
+ - lib/cryptoexchange/exchanges/bibox/services/market.rb
183
+ - lib/cryptoexchange/exchanges/bibox/services/order_book.rb
184
+ - lib/cryptoexchange/exchanges/bibox/services/pairs.rb
185
+ - lib/cryptoexchange/exchanges/bibox/services/trades.rb
181
186
  - lib/cryptoexchange/exchanges/binance/market.rb
182
187
  - lib/cryptoexchange/exchanges/binance/services/market.rb
183
188
  - lib/cryptoexchange/exchanges/binance/services/order_book.rb
@@ -246,6 +251,10 @@ files:
246
251
  - lib/cryptoexchange/exchanges/chbtc/market.rb
247
252
  - lib/cryptoexchange/exchanges/chbtc/services/market.rb
248
253
  - lib/cryptoexchange/exchanges/chbtc/services/pairs.rb
254
+ - lib/cryptoexchange/exchanges/cobinhood/market.rb
255
+ - lib/cryptoexchange/exchanges/cobinhood/services/market.rb
256
+ - lib/cryptoexchange/exchanges/cobinhood/services/order_book.rb
257
+ - lib/cryptoexchange/exchanges/cobinhood/services/pairs.rb
249
258
  - lib/cryptoexchange/exchanges/coin_exchange/market.rb
250
259
  - lib/cryptoexchange/exchanges/coin_exchange/services/market.rb
251
260
  - lib/cryptoexchange/exchanges/coin_exchange/services/pairs.rb
@@ -258,6 +267,12 @@ files:
258
267
  - lib/cryptoexchange/exchanges/coinmate/services/market.rb
259
268
  - lib/cryptoexchange/exchanges/coinmate/services/order_book.rb
260
269
  - lib/cryptoexchange/exchanges/coinmate/services/pairs.rb
270
+ - lib/cryptoexchange/exchanges/coinnest/coinnest.yml
271
+ - lib/cryptoexchange/exchanges/coinnest/market.rb
272
+ - lib/cryptoexchange/exchanges/coinnest/services/market.rb
273
+ - lib/cryptoexchange/exchanges/coinnest/services/order_book.rb
274
+ - lib/cryptoexchange/exchanges/coinnest/services/pairs.rb
275
+ - lib/cryptoexchange/exchanges/coinnest/services/trades.rb
261
276
  - lib/cryptoexchange/exchanges/coinone/market.rb
262
277
  - lib/cryptoexchange/exchanges/coinone/services/market.rb
263
278
  - lib/cryptoexchange/exchanges/coinone/services/pairs.rb
@@ -272,7 +287,9 @@ files:
272
287
  - lib/cryptoexchange/exchanges/crypto_bridge/services/pairs.rb
273
288
  - lib/cryptoexchange/exchanges/cryptopia/market.rb
274
289
  - lib/cryptoexchange/exchanges/cryptopia/services/market.rb
290
+ - lib/cryptoexchange/exchanges/cryptopia/services/order_book.rb
275
291
  - lib/cryptoexchange/exchanges/cryptopia/services/pairs.rb
292
+ - lib/cryptoexchange/exchanges/cryptopia/services/trades.rb
276
293
  - lib/cryptoexchange/exchanges/ether_delta/market.rb
277
294
  - lib/cryptoexchange/exchanges/ether_delta/services/market.rb
278
295
  - lib/cryptoexchange/exchanges/ether_delta/services/pairs.rb
@@ -300,6 +317,11 @@ files:
300
317
  - lib/cryptoexchange/exchanges/hitbtc/market.rb
301
318
  - lib/cryptoexchange/exchanges/hitbtc/services/market.rb
302
319
  - lib/cryptoexchange/exchanges/hitbtc/services/pairs.rb
320
+ - lib/cryptoexchange/exchanges/hksy/hksy.yml
321
+ - lib/cryptoexchange/exchanges/hksy/market.rb
322
+ - lib/cryptoexchange/exchanges/hksy/services/market.rb
323
+ - lib/cryptoexchange/exchanges/hksy/services/pairs.rb
324
+ - lib/cryptoexchange/exchanges/hksy/services/trades.rb
303
325
  - lib/cryptoexchange/exchanges/huobi/market.rb
304
326
  - lib/cryptoexchange/exchanges/huobi/services/market.rb
305
327
  - lib/cryptoexchange/exchanges/huobi/services/pairs.rb
@@ -310,6 +332,11 @@ files:
310
332
  - lib/cryptoexchange/exchanges/jubi/market.rb
311
333
  - lib/cryptoexchange/exchanges/jubi/services/market.rb
312
334
  - lib/cryptoexchange/exchanges/jubi/services/pairs.rb
335
+ - lib/cryptoexchange/exchanges/k_kex/market.rb
336
+ - lib/cryptoexchange/exchanges/k_kex/services/market.rb
337
+ - lib/cryptoexchange/exchanges/k_kex/services/order_book.rb
338
+ - lib/cryptoexchange/exchanges/k_kex/services/pairs.rb
339
+ - lib/cryptoexchange/exchanges/k_kex/services/trades.rb
313
340
  - lib/cryptoexchange/exchanges/korbit/korbit.yml
314
341
  - lib/cryptoexchange/exchanges/korbit/market.rb
315
342
  - lib/cryptoexchange/exchanges/korbit/services/market.rb
@@ -390,6 +417,9 @@ files:
390
417
  - lib/cryptoexchange/exchanges/tidex/market.rb
391
418
  - lib/cryptoexchange/exchanges/tidex/services/market.rb
392
419
  - lib/cryptoexchange/exchanges/tidex/services/pairs.rb
420
+ - lib/cryptoexchange/exchanges/trade_satoshi/market.rb
421
+ - lib/cryptoexchange/exchanges/trade_satoshi/services/market.rb
422
+ - lib/cryptoexchange/exchanges/trade_satoshi/services/pairs.rb
393
423
  - lib/cryptoexchange/exchanges/tux_exchange/market.rb
394
424
  - lib/cryptoexchange/exchanges/tux_exchange/services/market.rb
395
425
  - lib/cryptoexchange/exchanges/tux_exchange/services/pairs.rb