cryptoexchange 0.21.0 → 0.22.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 (186) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +42 -3
  4. data/lib/cryptoexchange/exchanges/aex/market.rb +8 -0
  5. data/lib/cryptoexchange/exchanges/aex/services/market.rb +41 -0
  6. data/lib/cryptoexchange/exchanges/aex/services/order_book.rb +46 -0
  7. data/lib/cryptoexchange/exchanges/aex/services/pairs.rb +33 -0
  8. data/lib/cryptoexchange/exchanges/aex/services/trades.rb +34 -0
  9. data/lib/cryptoexchange/exchanges/bit2c/bit2c.yml +9 -0
  10. data/lib/cryptoexchange/exchanges/bit2c/market.rb +8 -0
  11. data/lib/cryptoexchange/exchanges/bit2c/services/market.rb +36 -0
  12. data/lib/cryptoexchange/exchanges/bit2c/services/order_book.rb +44 -0
  13. data/lib/cryptoexchange/exchanges/bit2c/services/pairs.rb +21 -0
  14. data/lib/cryptoexchange/exchanges/bit2c/services/trades.rb +32 -0
  15. data/lib/cryptoexchange/exchanges/bitbank/bitbank.yml +17 -0
  16. data/lib/cryptoexchange/exchanges/bitbank/market.rb +8 -0
  17. data/lib/cryptoexchange/exchanges/bitbank/services/market.rb +41 -0
  18. data/lib/cryptoexchange/exchanges/bitbank/services/order_book.rb +45 -0
  19. data/lib/cryptoexchange/exchanges/bitbank/services/pairs.rb +24 -0
  20. data/lib/cryptoexchange/exchanges/bitbank/services/trades.rb +34 -0
  21. data/lib/cryptoexchange/exchanges/bitmex/market.rb +8 -0
  22. data/lib/cryptoexchange/exchanges/bitmex/services/market.rb +39 -0
  23. data/lib/cryptoexchange/exchanges/bitmex/services/order_book.rb +55 -0
  24. data/lib/cryptoexchange/exchanges/bitmex/services/pairs.rb +23 -0
  25. data/lib/cryptoexchange/exchanges/bitmex/services/trades.rb +34 -0
  26. data/lib/cryptoexchange/exchanges/bits_blockchain/market.rb +8 -0
  27. data/lib/cryptoexchange/exchanges/bits_blockchain/services/market.rb +40 -0
  28. data/lib/cryptoexchange/exchanges/bits_blockchain/services/order_book.rb +43 -0
  29. data/lib/cryptoexchange/exchanges/bits_blockchain/services/pairs.rb +22 -0
  30. data/lib/cryptoexchange/exchanges/bleutrade/services/market.rb +1 -1
  31. data/lib/cryptoexchange/exchanges/btc_alpha/market.rb +9 -0
  32. data/lib/cryptoexchange/exchanges/btc_alpha/services/market.rb +40 -0
  33. data/lib/cryptoexchange/exchanges/btc_alpha/services/order_book.rb +47 -0
  34. data/lib/cryptoexchange/exchanges/btc_alpha/services/pairs.rb +25 -0
  35. data/lib/cryptoexchange/exchanges/btc_alpha/services/trades.rb +51 -0
  36. data/lib/cryptoexchange/exchanges/btcbox/btcbox.yml +9 -0
  37. data/lib/cryptoexchange/exchanges/btcbox/market.rb +8 -0
  38. data/lib/cryptoexchange/exchanges/btcbox/services/market.rb +39 -0
  39. data/lib/cryptoexchange/exchanges/btcbox/services/order_book.rb +46 -0
  40. data/lib/cryptoexchange/exchanges/btcbox/services/pairs.rb +21 -0
  41. data/lib/cryptoexchange/exchanges/buyucoin/market.rb +8 -0
  42. data/lib/cryptoexchange/exchanges/buyucoin/services/market.rb +51 -0
  43. data/lib/cryptoexchange/exchanges/buyucoin/services/pairs.rb +26 -0
  44. data/lib/cryptoexchange/exchanges/coin_egg/coin_egg.yml +143 -0
  45. data/lib/cryptoexchange/exchanges/coin_egg/market.rb +8 -0
  46. data/lib/cryptoexchange/exchanges/coin_egg/services/market.rb +39 -0
  47. data/lib/cryptoexchange/exchanges/coin_egg/services/order_book.rb +44 -0
  48. data/lib/cryptoexchange/exchanges/coin_egg/services/pairs.rb +23 -0
  49. data/lib/cryptoexchange/exchanges/coin_egg/services/trades.rb +32 -0
  50. data/lib/cryptoexchange/exchanges/coin_exchange/services/pairs.rb +2 -2
  51. data/lib/cryptoexchange/exchanges/coinex/market.rb +8 -0
  52. data/lib/cryptoexchange/exchanges/coinex/services/market.rb +53 -0
  53. data/lib/cryptoexchange/exchanges/coinex/services/order_book.rb +49 -0
  54. data/lib/cryptoexchange/exchanges/coinex/services/pairs.rb +27 -0
  55. data/lib/cryptoexchange/exchanges/coinex/services/trades.rb +34 -0
  56. data/lib/cryptoexchange/exchanges/coinfalcon/market.rb +8 -0
  57. data/lib/cryptoexchange/exchanges/coinfalcon/services/market.rb +46 -0
  58. data/lib/cryptoexchange/exchanges/coinfalcon/services/order_book.rb +42 -0
  59. data/lib/cryptoexchange/exchanges/coinfalcon/services/pairs.rb +28 -0
  60. data/lib/cryptoexchange/exchanges/coinfalcon/services/trades.rb +32 -0
  61. data/lib/cryptoexchange/exchanges/coinhouse/market.rb +8 -0
  62. data/lib/cryptoexchange/exchanges/coinhouse/services/market.rb +52 -0
  63. data/lib/cryptoexchange/exchanges/coinhouse/services/pairs.rb +37 -0
  64. data/lib/cryptoexchange/exchanges/coinone/services/market.rb +5 -5
  65. data/lib/cryptoexchange/exchanges/coinone/services/order_book.rb +50 -0
  66. data/lib/cryptoexchange/exchanges/coinone/services/trades.rb +39 -0
  67. data/lib/cryptoexchange/exchanges/coinrail/market.rb +9 -0
  68. data/lib/cryptoexchange/exchanges/coinrail/services/market.rb +56 -0
  69. data/lib/cryptoexchange/exchanges/coinrail/services/order_book.rb +43 -0
  70. data/lib/cryptoexchange/exchanges/coinrail/services/pairs.rb +36 -0
  71. data/lib/cryptoexchange/exchanges/coinrail/services/trades.rb +30 -0
  72. data/lib/cryptoexchange/exchanges/coinroom/market.rb +8 -0
  73. data/lib/cryptoexchange/exchanges/coinroom/services/market.rb +39 -0
  74. data/lib/cryptoexchange/exchanges/coinroom/services/pairs.rb +30 -0
  75. data/lib/cryptoexchange/exchanges/crex24/market.rb +8 -0
  76. data/lib/cryptoexchange/exchanges/crex24/services/market.rb +50 -0
  77. data/lib/cryptoexchange/exchanges/crex24/services/order_book.rb +46 -0
  78. data/lib/cryptoexchange/exchanges/crex24/services/pairs.rb +25 -0
  79. data/lib/cryptoexchange/exchanges/crex24/services/trades.rb +34 -0
  80. data/lib/cryptoexchange/exchanges/crxzone/market.rb +8 -0
  81. data/lib/cryptoexchange/exchanges/crxzone/services/market.rb +47 -0
  82. data/lib/cryptoexchange/exchanges/crxzone/services/order_book.rb +52 -0
  83. data/lib/cryptoexchange/exchanges/crxzone/services/pairs.rb +31 -0
  84. data/lib/cryptoexchange/exchanges/crxzone/services/trades.rb +43 -0
  85. data/lib/cryptoexchange/exchanges/crypto_hub/market.rb +8 -0
  86. data/lib/cryptoexchange/exchanges/crypto_hub/services/market.rb +49 -0
  87. data/lib/cryptoexchange/exchanges/crypto_hub/services/pairs.rb +25 -0
  88. data/lib/cryptoexchange/exchanges/extstock/market.rb +8 -0
  89. data/lib/cryptoexchange/exchanges/extstock/services/market.rb +40 -0
  90. data/lib/cryptoexchange/exchanges/extstock/services/order_book.rb +51 -0
  91. data/lib/cryptoexchange/exchanges/extstock/services/pairs.rb +31 -0
  92. data/lib/cryptoexchange/exchanges/extstock/services/trades.rb +34 -0
  93. data/lib/cryptoexchange/exchanges/exx/market.rb +8 -0
  94. data/lib/cryptoexchange/exchanges/exx/services/market.rb +50 -0
  95. data/lib/cryptoexchange/exchanges/exx/services/order_book.rb +46 -0
  96. data/lib/cryptoexchange/exchanges/exx/services/pairs.rb +27 -0
  97. data/lib/cryptoexchange/exchanges/exx/services/trades.rb +34 -0
  98. data/lib/cryptoexchange/exchanges/fisco/fisco.yml +11 -0
  99. data/lib/cryptoexchange/exchanges/fisco/market.rb +8 -0
  100. data/lib/cryptoexchange/exchanges/fisco/services/market.rb +40 -0
  101. data/lib/cryptoexchange/exchanges/fisco/services/order_book.rb +46 -0
  102. data/lib/cryptoexchange/exchanges/fisco/services/pairs.rb +25 -0
  103. data/lib/cryptoexchange/exchanges/fisco/services/trades.rb +34 -0
  104. data/lib/cryptoexchange/exchanges/getbtc/getbtc.yml +4 -0
  105. data/lib/cryptoexchange/exchanges/getbtc/market.rb +8 -0
  106. data/lib/cryptoexchange/exchanges/getbtc/services/market.rb +39 -0
  107. data/lib/cryptoexchange/exchanges/getbtc/services/order_book.rb +45 -0
  108. data/lib/cryptoexchange/exchanges/getbtc/services/pairs.rb +25 -0
  109. data/lib/cryptoexchange/exchanges/getbtc/services/trades.rb +36 -0
  110. data/lib/cryptoexchange/exchanges/gopax/market.rb +8 -0
  111. data/lib/cryptoexchange/exchanges/gopax/services/market.rb +43 -0
  112. data/lib/cryptoexchange/exchanges/gopax/services/order_book.rb +42 -0
  113. data/lib/cryptoexchange/exchanges/gopax/services/pairs.rb +27 -0
  114. data/lib/cryptoexchange/exchanges/gopax/services/trades.rb +32 -0
  115. data/lib/cryptoexchange/exchanges/huobi/market.rb +0 -1
  116. data/lib/cryptoexchange/exchanges/huobi/services/market.rb +1 -6
  117. data/lib/cryptoexchange/exchanges/huobi/services/pairs.rb +0 -1
  118. data/lib/cryptoexchange/exchanges/idex/market.rb +8 -0
  119. data/lib/cryptoexchange/exchanges/idex/services/market.rb +62 -0
  120. data/lib/cryptoexchange/exchanges/idex/services/order_book.rb +48 -0
  121. data/lib/cryptoexchange/exchanges/idex/services/pairs.rb +39 -0
  122. data/lib/cryptoexchange/exchanges/idex/services/trades.rb +34 -0
  123. data/lib/cryptoexchange/exchanges/infinity_coin/infinity_coin.yml +3 -0
  124. data/lib/cryptoexchange/exchanges/infinity_coin/market.rb +8 -0
  125. data/lib/cryptoexchange/exchanges/infinity_coin/services/market.rb +37 -0
  126. data/lib/cryptoexchange/exchanges/infinity_coin/services/pairs.rb +25 -0
  127. data/lib/cryptoexchange/exchanges/itbit/services/order_book.rb +45 -0
  128. data/lib/cryptoexchange/exchanges/itbit/services/trades.rb +34 -0
  129. data/lib/cryptoexchange/exchanges/kucoin/services/order_book.rb +48 -0
  130. data/lib/cryptoexchange/exchanges/kucoin/services/trades.rb +31 -0
  131. data/lib/cryptoexchange/exchanges/kyber_network/market.rb +8 -0
  132. data/lib/cryptoexchange/exchanges/kyber_network/services/market.rb +46 -0
  133. data/lib/cryptoexchange/exchanges/kyber_network/services/pairs.rb +28 -0
  134. data/lib/cryptoexchange/exchanges/latoken/market.rb +8 -0
  135. data/lib/cryptoexchange/exchanges/latoken/services/market.rb +38 -0
  136. data/lib/cryptoexchange/exchanges/latoken/services/pairs.rb +27 -0
  137. data/lib/cryptoexchange/exchanges/lbank/market.rb +8 -0
  138. data/lib/cryptoexchange/exchanges/lbank/services/market.rb +43 -0
  139. data/lib/cryptoexchange/exchanges/lbank/services/order_book.rb +46 -0
  140. data/lib/cryptoexchange/exchanges/lbank/services/pairs.rb +30 -0
  141. data/lib/cryptoexchange/exchanges/lbank/services/trades.rb +35 -0
  142. data/lib/cryptoexchange/exchanges/nanex/market.rb +8 -0
  143. data/lib/cryptoexchange/exchanges/nanex/services/market.rb +47 -0
  144. data/lib/cryptoexchange/exchanges/nanex/services/pairs.rb +26 -0
  145. data/lib/cryptoexchange/exchanges/neraex/market.rb +8 -0
  146. data/lib/cryptoexchange/exchanges/neraex/services/market.rb +40 -0
  147. data/lib/cryptoexchange/exchanges/neraex/services/order_book.rb +53 -0
  148. data/lib/cryptoexchange/exchanges/neraex/services/pairs.rb +31 -0
  149. data/lib/cryptoexchange/exchanges/neraex/services/trades.rb +39 -0
  150. data/lib/cryptoexchange/exchanges/nlexch/market.rb +8 -0
  151. data/lib/cryptoexchange/exchanges/nlexch/services/market.rb +40 -0
  152. data/lib/cryptoexchange/exchanges/nlexch/services/pairs.rb +32 -0
  153. data/lib/cryptoexchange/exchanges/paribu/market.rb +8 -0
  154. data/lib/cryptoexchange/exchanges/paribu/services/market.rb +39 -0
  155. data/lib/cryptoexchange/exchanges/paribu/services/pairs.rb +23 -0
  156. data/lib/cryptoexchange/exchanges/paymium/market.rb +8 -0
  157. data/lib/cryptoexchange/exchanges/paymium/paymium.yml +3 -0
  158. data/lib/cryptoexchange/exchanges/paymium/services/market.rb +40 -0
  159. data/lib/cryptoexchange/exchanges/paymium/services/order_book.rb +46 -0
  160. data/lib/cryptoexchange/exchanges/paymium/services/pairs.rb +21 -0
  161. data/lib/cryptoexchange/exchanges/paymium/services/trades.rb +32 -0
  162. data/lib/cryptoexchange/exchanges/rightbtc/market.rb +8 -0
  163. data/lib/cryptoexchange/exchanges/rightbtc/services/market.rb +56 -0
  164. data/lib/cryptoexchange/exchanges/rightbtc/services/order_book.rb +44 -0
  165. data/lib/cryptoexchange/exchanges/rightbtc/services/pairs.rb +24 -0
  166. data/lib/cryptoexchange/exchanges/rightbtc/services/trades.rb +32 -0
  167. data/lib/cryptoexchange/exchanges/south_xchange/market.rb +8 -0
  168. data/lib/cryptoexchange/exchanges/south_xchange/services/market.rb +48 -0
  169. data/lib/cryptoexchange/exchanges/south_xchange/services/order_book.rb +46 -0
  170. data/lib/cryptoexchange/exchanges/south_xchange/services/pairs.rb +24 -0
  171. data/lib/cryptoexchange/exchanges/south_xchange/services/trades.rb +31 -0
  172. data/lib/cryptoexchange/exchanges/trust_dex/market.rb +8 -0
  173. data/lib/cryptoexchange/exchanges/trust_dex/services/market.rb +55 -0
  174. data/lib/cryptoexchange/exchanges/trust_dex/services/pairs.rb +30 -0
  175. data/lib/cryptoexchange/exchanges/upbit/market.rb +9 -0
  176. data/lib/cryptoexchange/exchanges/upbit/services/market.rb +51 -0
  177. data/lib/cryptoexchange/exchanges/upbit/services/pairs.rb +23 -0
  178. data/lib/cryptoexchange/exchanges/waves/market.rb +8 -0
  179. data/lib/cryptoexchange/exchanges/waves/services/market.rb +48 -0
  180. data/lib/cryptoexchange/exchanges/waves/services/pairs.rb +25 -0
  181. data/lib/cryptoexchange/exchanges/waves/services/trades.rb +32 -0
  182. data/lib/cryptoexchange/helpers/numeric_helper.rb +9 -0
  183. data/lib/cryptoexchange/services/market.rb +13 -1
  184. data/lib/cryptoexchange/services/pairs.rb +7 -1
  185. data/lib/cryptoexchange/version.rb +1 -1
  186. metadata +174 -2
@@ -0,0 +1,22 @@
1
+ module Cryptoexchange::Exchanges
2
+ module BitsBlockchain
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+ PAIRS_URL = "https://www.bitsblockchain.net/moon/v1/market/currencyStatic"
6
+
7
+ def fetch
8
+ output = super
9
+ market_pairs = []
10
+ output['currencyStatic']['currencyPairs'].each do |pair|
11
+ market_pairs << Cryptoexchange::Models::MarketPair.new(
12
+ base: pair[1]["tradedCcy"],
13
+ target: pair[1]["settlementCcy"],
14
+ market: BitsBlockchain::Market::NAME
15
+ )
16
+ end
17
+ market_pairs
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -40,7 +40,7 @@ module Cryptoexchange::Exchanges
40
40
  ticker.high = NumericHelper.to_d(output['High'])
41
41
  ticker.low = NumericHelper.to_d(output['Low'])
42
42
  ticker.volume = NumericHelper.to_d(output['Volume'])
43
- ticker.timestamp = Time.parse(output['TimeStamp']).to_i
43
+ ticker.timestamp = output['TimeStamp'].empty? ? Time.now.to_i : Time.parse(output['TimeStamp']).to_i
44
44
  ticker.payload = output
45
45
  ticker
46
46
  end
@@ -0,0 +1,9 @@
1
+ module Cryptoexchange::Exchanges
2
+ module BtcAlpha
3
+ class Market
4
+ NAME = 'btc_alpha'
5
+ API_URL = 'https://btc-alpha.com/api/v1'
6
+ TICKER_URL = 'https://btc-alpha.com/api'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,40 @@
1
+ module Cryptoexchange::Exchanges
2
+ module BtcAlpha
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::BtcAlpha::Market::TICKER_URL}/charts/#{base}_#{target}/D/chart?limit=1"
20
+ end
21
+
22
+ def adapt(output, market_pair)
23
+ ticker = Cryptoexchange::Models::Ticker.new
24
+ market = output.first
25
+
26
+ ticker.base = market_pair.base
27
+ ticker.target = market_pair.target
28
+ ticker.market = BtcAlpha::Market::NAME
29
+ ticker.last = NumericHelper.to_d(market['close'])
30
+ ticker.high = NumericHelper.to_d(market['high'])
31
+ ticker.low = NumericHelper.to_d(market['low'])
32
+ ticker.volume = NumericHelper.to_d(market['volume'])
33
+ ticker.timestamp = market['time']
34
+ ticker.payload = market
35
+ ticker
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,47 @@
1
+ module Cryptoexchange::Exchanges
2
+ module BtcAlpha
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
+ base = market_pair.base
18
+ target = market_pair.target
19
+ "#{Cryptoexchange::Exchanges::BtcAlpha::Market::API_URL}/orderbook/#{base}_#{target}"
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 = BtcAlpha::Market::NAME
28
+ order_book.asks = adapt_orders output['sell']
29
+ order_book.bids = adapt_orders output['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
+ price = order_entry['price']
38
+ amount = order_entry['amount']
39
+ Cryptoexchange::Models::Order.new(price: price,
40
+ amount: amount,
41
+ timestamp: nil)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,25 @@
1
+ module Cryptoexchange::Exchanges
2
+ module BtcAlpha
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+ PAIRS_URL = "#{Cryptoexchange::Exchanges::BtcAlpha::Market::API_URL}/pairs"
6
+
7
+ def fetch
8
+ output = super
9
+ adapt(output)
10
+ end
11
+
12
+ def adapt(output)
13
+ output.map do |pair|
14
+ base, target = pair['name'].split("_")
15
+ Cryptoexchange::Models::MarketPair.new(
16
+ base: base,
17
+ target: target,
18
+ market: BtcAlpha::Market::NAME
19
+ )
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,51 @@
1
+ module Cryptoexchange::Exchanges
2
+ module BtcAlpha
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::BtcAlpha::Market::API_URL}/orderbook/#{base}_#{target}?status=2"
14
+ end
15
+
16
+ def adapt(output, market_pair)
17
+ trades = []
18
+ output['sell'].map do |trade|
19
+ tr = Cryptoexchange::Models::Trade.new
20
+ tr.trade_id = trade['id']
21
+ tr.base = market_pair.base
22
+ tr.target = market_pair.target
23
+ tr.market = BtcAlpha::Market::NAME
24
+ tr.type = 'sell'
25
+ tr.price = trade['price']
26
+ tr.amount = trade['amount']
27
+ tr.timestamp = trade['timestamp'].to_i
28
+ tr.payload = trade
29
+ trades << tr
30
+ end
31
+
32
+ output['buy'].map do |trade|
33
+ tr = Cryptoexchange::Models::Trade.new
34
+ tr.trade_id = trade['id']
35
+ tr.base = market_pair.base
36
+ tr.target = market_pair.target
37
+ tr.market = BtcAlpha::Market::NAME
38
+ tr.type = 'sell'
39
+ tr.price = trade['price']
40
+ tr.amount = trade['amount']
41
+ tr.timestamp = trade['timestamp'].to_i
42
+ tr.payload = trade
43
+ trades << tr
44
+ end
45
+
46
+ trades
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,9 @@
1
+ :pairs:
2
+ - :base: BTC
3
+ :target: JPY
4
+ - :base: BCH
5
+ :target: JPY
6
+ - :base: LTC
7
+ :target: JPY
8
+ - :base: ETH
9
+ :target: JPY
@@ -0,0 +1,8 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Btcbox
3
+ class Market
4
+ NAME = 'btcbox'
5
+ API_URL = 'https://www.btcbox.co.jp/api/v1'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,39 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Btcbox
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
+ raw_output = HTTP['user-agent' => 'curl/7.54.0'].get "#{ticker_url(market_pair)}"
13
+ output = JSON.parse(raw_output)
14
+ adapt(output, market_pair)
15
+ end
16
+
17
+ def ticker_url(market_pair)
18
+ "#{Cryptoexchange::Exchanges::Btcbox::Market::API_URL}/ticker/#{market_pair.base}"
19
+ end
20
+
21
+ def adapt(output, market_pair)
22
+ ticker = Cryptoexchange::Models::Ticker.new
23
+ ticker.base = market_pair.base
24
+ ticker.target = market_pair.target
25
+ ticker.market = Btcbox::Market::NAME
26
+ ticker.ask = NumericHelper.to_d(output['sell'])
27
+ ticker.bid = NumericHelper.to_d(output['buy'])
28
+ ticker.last = NumericHelper.to_d(output['last'])
29
+ ticker.high = NumericHelper.to_d(output['high'])
30
+ ticker.low = NumericHelper.to_d(output['low'])
31
+ ticker.volume = NumericHelper.to_d(output['vol'])
32
+ ticker.timestamp = Time.now.to_i
33
+ ticker.payload = output
34
+ ticker
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,46 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Btcbox
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
+ raw_output = HTTP['user-agent' => 'curl/7.54.0'].get "#{ticker_url(market_pair)}"
13
+ output = JSON.parse(raw_output)
14
+ adapt(output, market_pair)
15
+ end
16
+
17
+ def ticker_url(market_pair)
18
+ "#{Cryptoexchange::Exchanges::Btcbox::Market::API_URL}/depth/#{market_pair.base}"
19
+ end
20
+
21
+ def adapt(output, market_pair)
22
+ order_book = Cryptoexchange::Models::OrderBook.new
23
+ timestamp = Time.now.to_i
24
+
25
+ order_book.base = market_pair.base
26
+ order_book.target = market_pair.target
27
+ order_book.market = Btcbox::Market::NAME
28
+ order_book.asks = adapt_orders(output['asks'])
29
+ order_book.bids = adapt_orders(output['bids'])
30
+ order_book.timestamp = timestamp
31
+ order_book.payload = output
32
+ order_book
33
+ end
34
+
35
+ def adapt_orders(orders)
36
+ orders.collect do |order_entry|
37
+ price, amount = order_entry
38
+ Cryptoexchange::Models::Order.new(price: price,
39
+ amount: amount,
40
+ timestamp: nil)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,21 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Btcbox
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+
6
+ def fetch
7
+ output = super
8
+ market_pairs = []
9
+ output.each do |pair|
10
+ market_pairs << Cryptoexchange::Models::MarketPair.new(
11
+ base: pair[:base],
12
+ target: pair[:target],
13
+ market: Btcbox::Market::NAME
14
+ )
15
+ end
16
+ market_pairs
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,8 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Buyucoin
3
+ class Market
4
+ NAME = 'buyucoin'
5
+ API_URL = 'https://www.buyucoin.com/api/v1.2'
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,51 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Buyucoin
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::Buyucoin::Market::API_URL}/currency/markets"
18
+ end
19
+
20
+ def adapt_all(output)
21
+ output['data'].map do |pair, ticker|
22
+ base, target = pair.split('_')
23
+ market_pair = Cryptoexchange::Models::MarketPair.new(
24
+ base: base,
25
+ target: target,
26
+ market: Buyucoin::Market::NAME
27
+ )
28
+ adapt(ticker, 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 = Buyucoin::Market::NAME
37
+ ticker.ask = NumericHelper.to_d(output['ask'])
38
+ ticker.bid = NumericHelper.to_d(output['bid'])
39
+ ticker.high = NumericHelper.to_d(output['high_24'])
40
+ ticker.low = NumericHelper.to_d(output['low_24'])
41
+ ticker.change = NumericHelper.to_d(output['change'])
42
+ ticker.last = NumericHelper.to_d(output['last_trade'])
43
+ ticker.volume = NumericHelper.to_d(output['vol'])
44
+ ticker.timestamp = Time.now.to_i
45
+ ticker.payload = output
46
+ ticker
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,26 @@
1
+ module Cryptoexchange::Exchanges
2
+ module Buyucoin
3
+ module Services
4
+ class Pairs < Cryptoexchange::Services::Pairs
5
+ PAIRS_URL = "#{Cryptoexchange::Exchanges::Buyucoin::Market::API_URL}/currency/markets"
6
+
7
+
8
+ def fetch
9
+ output = super
10
+ adapt(output)
11
+ end
12
+
13
+ def adapt(output)
14
+ output['data'].map do |pair, _value|
15
+ base, target = pair.split('_')
16
+ Cryptoexchange::Models::MarketPair.new(
17
+ base: base,
18
+ target: target,
19
+ market: Buyucoin::Market::NAME
20
+ )
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,143 @@
1
+ :pairs:
2
+ - :base: AIDOC
3
+ :target: BTC
4
+ - :base: MVC
5
+ :target: BTC
6
+ - :base: UBTC
7
+ :target: BTC
8
+ - :base: SAFE
9
+ :target: BTC
10
+ - :base: WIC
11
+ :target: BTC
12
+ - :base: TV
13
+ :target: BTC
14
+ - :base: HLC
15
+ :target: BTC
16
+ - :base: ACT
17
+ :target: BTC
18
+ - :base: READ
19
+ :target: BTC
20
+ - :base: IPT
21
+ :target: BTC
22
+ - :base: BMB
23
+ :target: BTC
24
+ - :base: KMC
25
+ :target: BTC
26
+ - :base: QBT
27
+ :target: BTC
28
+ - :base: SBTC
29
+ :target: BTC
30
+ - :base: BTW
31
+ :target: BTC
32
+ - :base: EOS
33
+ :target: BTC
34
+ - :base: BTP
35
+ :target: BTC
36
+ - :base: BCX
37
+ :target: BTC
38
+ - :base: ETF
39
+ :target: BTC
40
+ - :base: LBTC
41
+ :target: BTC
42
+ - :base: BCD
43
+ :target: BTC
44
+ - :base: IPC
45
+ :target: BTC
46
+ - :base: TSL
47
+ :target: BTC
48
+ - :base: INK
49
+ :target: BTC
50
+ - :base: TGC
51
+ :target: BTC
52
+ - :base: BCH
53
+ :target: BTC
54
+ - :base: LTC
55
+ :target: BTC
56
+ - :base: ETH
57
+ :target: BTC
58
+ - :base: ETC
59
+ :target: BTC
60
+ - :base: NEO
61
+ :target: BTC
62
+ - :base: QTUM
63
+ :target: BTC
64
+ - :base: XRP
65
+ :target: BTC
66
+ - :base: DOGE
67
+ :target: BTC
68
+ - :base: LSK
69
+ :target: BTC
70
+ - :base: XAS
71
+ :target: BTC
72
+ - :base: BTS
73
+ :target: BTC
74
+ - :base: XLM
75
+ :target: BTC
76
+ - :base: INT
77
+ :target: BTC
78
+ - :base: TRX
79
+ :target: BTC
80
+ - :base: GAME
81
+ :target: BTC
82
+ - :base: GOOC
83
+ :target: BTC
84
+ - :base: NXT
85
+ :target: BTC
86
+ - :base: IFC
87
+ :target: BTC
88
+ - :base: DNC
89
+ :target: BTC
90
+ - :base: BLK
91
+ :target: BTC
92
+ - :base: VRC
93
+ :target: BTC
94
+ - :base: XPM
95
+ :target: BTC
96
+ - :base: VTC
97
+ :target: BTC
98
+ - :base: TFC
99
+ :target: BTC
100
+ - :base: PLC
101
+ :target: BTC
102
+ - :base: EAC
103
+ :target: BTC
104
+ - :base: PPC
105
+ :target: BTC
106
+ - :base: FZ
107
+ :target: BTC
108
+ - :base: ZET
109
+ :target: BTC
110
+ - :base: RSS
111
+ :target: BTC
112
+ - :base: PGC
113
+ :target: BTC
114
+ - :base: SKT
115
+ :target: BTC
116
+ - :base: JBC
117
+ :target: BTC
118
+ - :base: RIO
119
+ :target: BTC
120
+ - :base: LKC
121
+ :target: BTC
122
+ - :base: ZCC
123
+ :target: BTC
124
+ - :base: MCC
125
+ :target: BTC
126
+ - :base: QEC
127
+ :target: BTC
128
+ - :base: MET
129
+ :target: BTC
130
+ - :base: YTC
131
+ :target: BTC
132
+ - :base: HLB
133
+ :target: BTC
134
+ - :base: MRYC
135
+ :target: BTC
136
+ - :base: MTC
137
+ :target: BTC
138
+ - :base: KTC
139
+ :target: BTC
140
+ - :base: BT1
141
+ :target: BTC
142
+ - :base: BT2
143
+ :target: BTC