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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +42 -3
- data/lib/cryptoexchange/exchanges/aex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/aex/services/market.rb +41 -0
- data/lib/cryptoexchange/exchanges/aex/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/aex/services/pairs.rb +33 -0
- data/lib/cryptoexchange/exchanges/aex/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/bit2c/bit2c.yml +9 -0
- data/lib/cryptoexchange/exchanges/bit2c/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bit2c/services/market.rb +36 -0
- data/lib/cryptoexchange/exchanges/bit2c/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/bit2c/services/pairs.rb +21 -0
- data/lib/cryptoexchange/exchanges/bit2c/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/bitbank/bitbank.yml +17 -0
- data/lib/cryptoexchange/exchanges/bitbank/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bitbank/services/market.rb +41 -0
- data/lib/cryptoexchange/exchanges/bitbank/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/bitbank/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/bitbank/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/bitmex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bitmex/services/market.rb +39 -0
- data/lib/cryptoexchange/exchanges/bitmex/services/order_book.rb +55 -0
- data/lib/cryptoexchange/exchanges/bitmex/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/bitmex/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/bits_blockchain/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bits_blockchain/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/bits_blockchain/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/bits_blockchain/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/bleutrade/services/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/btc_alpha/market.rb +9 -0
- data/lib/cryptoexchange/exchanges/btc_alpha/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/btc_alpha/services/order_book.rb +47 -0
- data/lib/cryptoexchange/exchanges/btc_alpha/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/btc_alpha/services/trades.rb +51 -0
- data/lib/cryptoexchange/exchanges/btcbox/btcbox.yml +9 -0
- data/lib/cryptoexchange/exchanges/btcbox/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/btcbox/services/market.rb +39 -0
- data/lib/cryptoexchange/exchanges/btcbox/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/btcbox/services/pairs.rb +21 -0
- data/lib/cryptoexchange/exchanges/buyucoin/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/buyucoin/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/buyucoin/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/coin_egg/coin_egg.yml +143 -0
- data/lib/cryptoexchange/exchanges/coin_egg/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coin_egg/services/market.rb +39 -0
- data/lib/cryptoexchange/exchanges/coin_egg/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/coin_egg/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/coin_egg/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/coin_exchange/services/pairs.rb +2 -2
- data/lib/cryptoexchange/exchanges/coinex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinex/services/market.rb +53 -0
- data/lib/cryptoexchange/exchanges/coinex/services/order_book.rb +49 -0
- data/lib/cryptoexchange/exchanges/coinex/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/coinex/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/coinfalcon/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinfalcon/services/market.rb +46 -0
- data/lib/cryptoexchange/exchanges/coinfalcon/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/coinfalcon/services/pairs.rb +28 -0
- data/lib/cryptoexchange/exchanges/coinfalcon/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/coinhouse/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinhouse/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/coinhouse/services/pairs.rb +37 -0
- data/lib/cryptoexchange/exchanges/coinone/services/market.rb +5 -5
- data/lib/cryptoexchange/exchanges/coinone/services/order_book.rb +50 -0
- data/lib/cryptoexchange/exchanges/coinone/services/trades.rb +39 -0
- data/lib/cryptoexchange/exchanges/coinrail/market.rb +9 -0
- data/lib/cryptoexchange/exchanges/coinrail/services/market.rb +56 -0
- data/lib/cryptoexchange/exchanges/coinrail/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/coinrail/services/pairs.rb +36 -0
- data/lib/cryptoexchange/exchanges/coinrail/services/trades.rb +30 -0
- data/lib/cryptoexchange/exchanges/coinroom/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinroom/services/market.rb +39 -0
- data/lib/cryptoexchange/exchanges/coinroom/services/pairs.rb +30 -0
- data/lib/cryptoexchange/exchanges/crex24/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/crex24/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/crex24/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/crex24/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/crex24/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/crxzone/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/crxzone/services/market.rb +47 -0
- data/lib/cryptoexchange/exchanges/crxzone/services/order_book.rb +52 -0
- data/lib/cryptoexchange/exchanges/crxzone/services/pairs.rb +31 -0
- data/lib/cryptoexchange/exchanges/crxzone/services/trades.rb +43 -0
- data/lib/cryptoexchange/exchanges/crypto_hub/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/crypto_hub/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/crypto_hub/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/extstock/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/extstock/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/extstock/services/order_book.rb +51 -0
- data/lib/cryptoexchange/exchanges/extstock/services/pairs.rb +31 -0
- data/lib/cryptoexchange/exchanges/extstock/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/exx/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/exx/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/exx/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/exx/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/exx/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/fisco/fisco.yml +11 -0
- data/lib/cryptoexchange/exchanges/fisco/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/fisco/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/fisco/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/fisco/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/fisco/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/getbtc/getbtc.yml +4 -0
- data/lib/cryptoexchange/exchanges/getbtc/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/getbtc/services/market.rb +39 -0
- data/lib/cryptoexchange/exchanges/getbtc/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/getbtc/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/getbtc/services/trades.rb +36 -0
- data/lib/cryptoexchange/exchanges/gopax/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/gopax/services/market.rb +43 -0
- data/lib/cryptoexchange/exchanges/gopax/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/gopax/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/gopax/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/huobi/market.rb +0 -1
- data/lib/cryptoexchange/exchanges/huobi/services/market.rb +1 -6
- data/lib/cryptoexchange/exchanges/huobi/services/pairs.rb +0 -1
- data/lib/cryptoexchange/exchanges/idex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/idex/services/market.rb +62 -0
- data/lib/cryptoexchange/exchanges/idex/services/order_book.rb +48 -0
- data/lib/cryptoexchange/exchanges/idex/services/pairs.rb +39 -0
- data/lib/cryptoexchange/exchanges/idex/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/infinity_coin/infinity_coin.yml +3 -0
- data/lib/cryptoexchange/exchanges/infinity_coin/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/infinity_coin/services/market.rb +37 -0
- data/lib/cryptoexchange/exchanges/infinity_coin/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/itbit/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/itbit/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/kucoin/services/order_book.rb +48 -0
- data/lib/cryptoexchange/exchanges/kucoin/services/trades.rb +31 -0
- data/lib/cryptoexchange/exchanges/kyber_network/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/kyber_network/services/market.rb +46 -0
- data/lib/cryptoexchange/exchanges/kyber_network/services/pairs.rb +28 -0
- data/lib/cryptoexchange/exchanges/latoken/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/latoken/services/market.rb +38 -0
- data/lib/cryptoexchange/exchanges/latoken/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/lbank/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/lbank/services/market.rb +43 -0
- data/lib/cryptoexchange/exchanges/lbank/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/lbank/services/pairs.rb +30 -0
- data/lib/cryptoexchange/exchanges/lbank/services/trades.rb +35 -0
- data/lib/cryptoexchange/exchanges/nanex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/nanex/services/market.rb +47 -0
- data/lib/cryptoexchange/exchanges/nanex/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/neraex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/neraex/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/neraex/services/order_book.rb +53 -0
- data/lib/cryptoexchange/exchanges/neraex/services/pairs.rb +31 -0
- data/lib/cryptoexchange/exchanges/neraex/services/trades.rb +39 -0
- data/lib/cryptoexchange/exchanges/nlexch/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/nlexch/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/nlexch/services/pairs.rb +32 -0
- data/lib/cryptoexchange/exchanges/paribu/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/paribu/services/market.rb +39 -0
- data/lib/cryptoexchange/exchanges/paribu/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/paymium/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/paymium/paymium.yml +3 -0
- data/lib/cryptoexchange/exchanges/paymium/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/paymium/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/paymium/services/pairs.rb +21 -0
- data/lib/cryptoexchange/exchanges/paymium/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/rightbtc/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/rightbtc/services/market.rb +56 -0
- data/lib/cryptoexchange/exchanges/rightbtc/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/rightbtc/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/rightbtc/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/south_xchange/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/south_xchange/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/south_xchange/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/south_xchange/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/south_xchange/services/trades.rb +31 -0
- data/lib/cryptoexchange/exchanges/trust_dex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/trust_dex/services/market.rb +55 -0
- data/lib/cryptoexchange/exchanges/trust_dex/services/pairs.rb +30 -0
- data/lib/cryptoexchange/exchanges/upbit/market.rb +9 -0
- data/lib/cryptoexchange/exchanges/upbit/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/upbit/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/waves/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/waves/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/waves/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/waves/services/trades.rb +32 -0
- data/lib/cryptoexchange/helpers/numeric_helper.rb +9 -0
- data/lib/cryptoexchange/services/market.rb +13 -1
- data/lib/cryptoexchange/services/pairs.rb +7 -1
- data/lib/cryptoexchange/version.rb +1 -1
- 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,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,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,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
|