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.
- checksums.yaml +4 -4
- data/README.md +9 -1
- data/cryptoexchange.gemspec +4 -4
- data/lib/cryptoexchange/client.rb +3 -0
- data/lib/cryptoexchange/error.rb +6 -0
- data/lib/cryptoexchange/exchanges/anx/services/market.rb +4 -7
- data/lib/cryptoexchange/exchanges/bancor/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bancor/services/market.rb +36 -0
- data/lib/cryptoexchange/exchanges/bancor/services/pair.rb +24 -0
- data/lib/cryptoexchange/exchanges/bigone/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bigone/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/bigone/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/bigone/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/bigone/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/bitflyer/services/market.rb +4 -5
- data/lib/cryptoexchange/exchanges/bittrex/services/market.rb +7 -0
- data/lib/cryptoexchange/exchanges/coinbene/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinbene/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/coinbene/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/coinbene/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/coinbene/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/cryptopia/services/market.rb +7 -0
- data/lib/cryptoexchange/exchanges/ethfinex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/ethfinex/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/ethfinex/services/order_book.rb +52 -0
- data/lib/cryptoexchange/exchanges/ethfinex/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/ethfinex/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/koinex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/koinex/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/koinex/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/liqui/services/market.rb +7 -0
- data/lib/cryptoexchange/exchanges/novaexchange/services/market.rb +7 -0
- data/lib/cryptoexchange/exchanges/radar_relay/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/radar_relay/radar_relay.yml +409 -0
- data/lib/cryptoexchange/exchanges/radar_relay/services/market.rb +44 -0
- data/lib/cryptoexchange/exchanges/radar_relay/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/trade_ogre/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/trade_ogre/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/trade_ogre/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/trade_ogre/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/trade_ogre/services/trades.rb +31 -0
- data/lib/cryptoexchange/exchanges/zb/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/zb/services/market.rb +39 -0
- data/lib/cryptoexchange/exchanges/zb/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/zb/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/zb/services/trades.rb +32 -0
- data/lib/cryptoexchange/helpers/numeric_helper.rb +2 -0
- data/lib/cryptoexchange/services/market.rb +2 -0
- data/lib/cryptoexchange/services/pairs.rb +7 -1
- data/lib/cryptoexchange/version.rb +1 -1
- metadata +45 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c054b25d99833ec0d63d8ebc81eb3d8b2c2827b
|
4
|
+
data.tar.gz: 9221b11da94fd846c3860f169dc741c356298f72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3e4ef7744e1763799bbc363646fbad893c22a314d32d383e727119fc72ad1059264825beee26fbc03ff3c0aebc6f1a7d20166070e145478338d6b0e5098dcee
|
7
|
+
data.tar.gz: 72f18cfd2ab6805997dc9be5a2e1cdc2b69cbe8ea1436190334578c49d38e44f24e0160883b5fa8903bb3d61cc8cd796ffe6a28df5d55cb2d598ebfe945d0561
|
data/README.md
CHANGED
@@ -28,7 +28,9 @@ Or install it yourself as:
|
|
28
28
|
| ACX | Y | Y | Y | | Y |
|
29
29
|
| Allcoin | Y | Y | | | User-Defined|
|
30
30
|
| ANX | Y | | | | User-Defined|
|
31
|
+
| Bancor | Y | N | N | | Y |
|
31
32
|
| Bibox | Y | Y | Y | | Y |
|
33
|
+
| BigONE | Y | Y | Y | | Y |
|
32
34
|
| Bit-Z | Y | | | | Y |
|
33
35
|
| Binance | Y | Y | | | Y |
|
34
36
|
| Bitbay | Y | | | | User-Defined|
|
@@ -54,6 +56,7 @@ Or install it yourself as:
|
|
54
56
|
| Cobinhood | Y | Y | | | Y |
|
55
57
|
| Coincheck | Y | | | | User-Defined|
|
56
58
|
| CoinExchange | Y | | | | Y |
|
59
|
+
| Coinbene | Y | Y | Y | | Y |
|
57
60
|
| Coinmate | Y | Y | | | User-Defined|
|
58
61
|
| Coinnest | Y | Y | Y | | User-Defined|
|
59
62
|
| Coinone | Y | | | | Y |
|
@@ -62,6 +65,7 @@ Or install it yourself as:
|
|
62
65
|
| CryptoBridge | Y | | | | Y |
|
63
66
|
| Cryptopia | Y | Y | Y | | Y |
|
64
67
|
| EtherDelta | Y | | | | Y |
|
68
|
+
| Ethfinex | Y | Y | Y | | Y |
|
65
69
|
| Exmo | Y | Y | Y | | Y |
|
66
70
|
| Gate | Y | Y | Y | | Y |
|
67
71
|
| Gatecoin | Y | | | | Y |
|
@@ -73,6 +77,7 @@ Or install it yourself as:
|
|
73
77
|
| Itbit | Y | | | | User-Defined|
|
74
78
|
| KKex | Y | Y | Y | | Y |
|
75
79
|
| Jubi | Y | | | | Y |
|
80
|
+
| Koinex | Y | | | | Y |
|
76
81
|
| Korbit | Y | | | | User-Defined|
|
77
82
|
| Kraken | Y | | | | Y |
|
78
83
|
| Kucoin | Y | | | | Y |
|
@@ -93,19 +98,22 @@ Or install it yourself as:
|
|
93
98
|
| Qryptos | Y | | | | Y |
|
94
99
|
| QuadrigaCX | Y | | | | User-Defined|
|
95
100
|
| Quoine | Y | | | | Y |
|
101
|
+
| RadarRelay | Y | | | | User-Defined|
|
96
102
|
| Stocks Exchange | Y | | | | Y |
|
97
103
|
| SZZC | Y | | | | Y |
|
98
104
|
| The Rock Trading | Y | | | | Y |
|
99
105
|
| Tidex | Y | | | | Y |
|
106
|
+
| TradeOgre | Y | Y | Y | | Y |
|
100
107
|
| Trade Satoshi | Y | | | | Y |
|
101
108
|
| TuxExchange | Y | | | | Y |
|
102
109
|
| Unocoin | | | | | |
|
103
110
|
| Viabtc | Y | | | | User-Defined|
|
104
|
-
| Wex | Y | Y |
|
111
|
+
| Wex | Y | Y | Y | | Y |
|
105
112
|
| Yobit | Y | | | | Y |
|
106
113
|
| Yuanbao | Y | | | | User-Defined|
|
107
114
|
| Yunbi | Y | | | | Y |
|
108
115
|
| Zaif | Y | Y | Y | | Y |
|
116
|
+
| ZB | Y | Y | Y | | Y |
|
109
117
|
|
110
118
|
## Usage
|
111
119
|
|
data/cryptoexchange.gemspec
CHANGED
@@ -26,9 +26,9 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "rspec", "~> 3.0"
|
27
27
|
spec.add_development_dependency "pry"
|
28
28
|
spec.add_development_dependency "rb-readline"
|
29
|
-
spec.add_development_dependency "vcr", "~>
|
30
|
-
spec.add_development_dependency "webmock"
|
31
|
-
|
32
|
-
spec.add_dependency "http", '~>
|
29
|
+
spec.add_development_dependency "vcr", "~> 4.0.0"
|
30
|
+
spec.add_development_dependency "webmock", '~> 3.3.0'
|
31
|
+
|
32
|
+
spec.add_dependency "http", '~> 3.0.0'
|
33
33
|
spec.add_dependency "lru_redux"
|
34
34
|
end
|
data/lib/cryptoexchange/error.rb
CHANGED
@@ -5,6 +5,9 @@ module Cryptoexchange
|
|
5
5
|
class HttpResponseError < Error
|
6
6
|
end
|
7
7
|
|
8
|
+
class HttpBadRequestError < Error
|
9
|
+
end
|
10
|
+
|
8
11
|
class HttpConnectionError < Error
|
9
12
|
end
|
10
13
|
|
@@ -16,4 +19,7 @@ module Cryptoexchange
|
|
16
19
|
|
17
20
|
class TypeFormatError < Error
|
18
21
|
end
|
22
|
+
|
23
|
+
class ResultParseError < Error
|
24
|
+
end
|
19
25
|
end
|
@@ -10,20 +10,17 @@ module Cryptoexchange::Exchanges
|
|
10
10
|
|
11
11
|
def fetch(market_pair)
|
12
12
|
output = super(ticker_url(market_pair))
|
13
|
-
adapt(output)
|
13
|
+
adapt(output, market_pair)
|
14
14
|
end
|
15
15
|
|
16
16
|
def ticker_url(market_pair)
|
17
17
|
"#{Cryptoexchange::Exchanges::Anx::Market::API_URL}/#{market_pair.base}#{market_pair.target}/money/ticker"
|
18
18
|
end
|
19
19
|
|
20
|
-
def adapt(output)
|
20
|
+
def adapt(output, market_pair)
|
21
21
|
ticker = Cryptoexchange::Models::Ticker.new
|
22
|
-
base
|
23
|
-
target
|
24
|
-
|
25
|
-
ticker.base = base
|
26
|
-
ticker.target = target
|
22
|
+
ticker.base = market_pair.base
|
23
|
+
ticker.target = market_pair.target
|
27
24
|
ticker.market = Anx::Market::NAME
|
28
25
|
ticker.ask = NumericHelper.to_d(output['data']['sell']['value'])
|
29
26
|
ticker.bid = NumericHelper.to_d(output['data']['buy']['value'])
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Cryptoexchange::Exchanges
|
2
|
+
module Bancor
|
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::Bancor::Market::API_URL}/currencies/#{market_pair.base}/ticker?fromCurrencyCode=#{market_pair.target}"
|
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 = Bancor::Market::NAME
|
25
|
+
ticker.last = NumericHelper.to_d(output['data']['price'])
|
26
|
+
ticker.high = NumericHelper.to_d(output['data']['price24hLow'])
|
27
|
+
ticker.low = NumericHelper.to_d(output['data']['price24hLow'])
|
28
|
+
ticker.volume = NumericHelper.divide(NumericHelper.to_d(output['data']['volume24h'].to_f / 10 ** 18), ticker.last)
|
29
|
+
ticker.timestamp = Time.now.to_i
|
30
|
+
ticker.payload = output
|
31
|
+
ticker
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Cryptoexchange::Exchanges
|
2
|
+
module Bancor
|
3
|
+
module Services
|
4
|
+
class Pairs < Cryptoexchange::Services::Pairs
|
5
|
+
PAIRS_URL = "#{Cryptoexchange::Exchanges::Bancor::Market::API_URL}/currencies/convertiblePairs"
|
6
|
+
|
7
|
+
def fetch
|
8
|
+
output = super
|
9
|
+
adapt(output)
|
10
|
+
end
|
11
|
+
|
12
|
+
def adapt(output)
|
13
|
+
output['data'].map do |base, target|
|
14
|
+
Cryptoexchange::Models::MarketPair.new(
|
15
|
+
base: base,
|
16
|
+
target: target,
|
17
|
+
market: Bancor::Market::NAME
|
18
|
+
)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Cryptoexchange::Exchanges
|
2
|
+
module Bigone
|
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::Bigone::Market::API_URL}/markets"
|
18
|
+
end
|
19
|
+
|
20
|
+
def adapt_all(output)
|
21
|
+
output['data'].map do |pair|
|
22
|
+
base = pair['quote']
|
23
|
+
target = pair['base']
|
24
|
+
market_pair = Cryptoexchange::Models::MarketPair.new(
|
25
|
+
base: base,
|
26
|
+
target: target,
|
27
|
+
market: Bigone::Market::NAME
|
28
|
+
)
|
29
|
+
adapt(market_pair, pair['ticker'])
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def adapt(market_pair, output)
|
34
|
+
ticker = Cryptoexchange::Models::Ticker.new
|
35
|
+
ticker.base = market_pair.base
|
36
|
+
ticker.target = market_pair.target
|
37
|
+
ticker.market = Bigone::Market::NAME
|
38
|
+
ticker.last = NumericHelper.to_d(output['price'].to_f)
|
39
|
+
ticker.high = NumericHelper.to_d(output['high'].to_f)
|
40
|
+
ticker.low = NumericHelper.to_d(output['low'].to_f)
|
41
|
+
ticker.volume = NumericHelper.to_d(output['volume'].to_f)
|
42
|
+
ticker.timestamp = Time.now.to_i
|
43
|
+
ticker.payload = output
|
44
|
+
ticker
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Cryptoexchange::Exchanges
|
2
|
+
module Bigone
|
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::Bigone::Market::API_URL}/markets/#{market_pair.base}-#{market_pair.target}/book"
|
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 = Bigone::Market::NAME
|
27
|
+
order_book.asks = adapt_orders(output["data"]["asks"])
|
28
|
+
order_book.bids = adapt_orders(output["data"]["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["price"],
|
37
|
+
amount: order_entry["amount"],
|
38
|
+
timestamp: nil)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Cryptoexchange::Exchanges
|
2
|
+
module Bigone
|
3
|
+
module Services
|
4
|
+
class Pairs < Cryptoexchange::Services::Pairs
|
5
|
+
PAIRS_URL = "#{Cryptoexchange::Exchanges::Bigone::Market::API_URL}/markets"
|
6
|
+
|
7
|
+
def fetch
|
8
|
+
output = super
|
9
|
+
market_pairs = []
|
10
|
+
output['data'].each do |pair|
|
11
|
+
market_pairs << Cryptoexchange::Models::MarketPair.new(
|
12
|
+
base: pair['quote'],
|
13
|
+
target: pair['base'],
|
14
|
+
market: Bigone::Market::NAME
|
15
|
+
)
|
16
|
+
end
|
17
|
+
market_pairs
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Cryptoexchange::Exchanges
|
2
|
+
module Bigone
|
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::Bigone::Market::API_URL}/markets/#{market_pair.base}-#{market_pair.target}/trades"
|
12
|
+
end
|
13
|
+
|
14
|
+
def adapt(output, market_pair)
|
15
|
+
output["data"].collect do |trade|
|
16
|
+
tr = Cryptoexchange::Models::Trade.new
|
17
|
+
tr.trade_id = trade["trade_id"]
|
18
|
+
tr.base = market_pair.base
|
19
|
+
tr.target = market_pair.target
|
20
|
+
tr.market = Bigone::Market::NAME
|
21
|
+
tr.type = trade["trade_side"] == "ASK" ? "sell" : "buy"
|
22
|
+
tr.price = trade["price"]
|
23
|
+
tr.amount = trade["amount"]
|
24
|
+
tr.timestamp = trade["created_at"].to_i
|
25
|
+
tr.payload = trade
|
26
|
+
tr
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -10,18 +10,17 @@ module Cryptoexchange::Exchanges
|
|
10
10
|
|
11
11
|
def fetch(market_pair)
|
12
12
|
output = super(ticker_url(market_pair))
|
13
|
-
adapt(output)
|
13
|
+
adapt(output, market_pair)
|
14
14
|
end
|
15
15
|
|
16
16
|
def ticker_url(market_pair)
|
17
17
|
"#{Cryptoexchange::Exchanges::Bitflyer::Market::API_URL}/ticker?product_code=#{market_pair.base}_#{market_pair.target}"
|
18
18
|
end
|
19
19
|
|
20
|
-
def adapt(output)
|
20
|
+
def adapt(output, market_pair)
|
21
21
|
ticker = Cryptoexchange::Models::Ticker.new
|
22
|
-
base
|
23
|
-
ticker.
|
24
|
-
ticker.target = target
|
22
|
+
ticker.base = market_pair.base
|
23
|
+
ticker.target = market_pair.target
|
25
24
|
ticker.market = Bitflyer::Market::NAME
|
26
25
|
ticker.ask = NumericHelper.to_d(output['best_ask'])
|
27
26
|
ticker.bid = NumericHelper.to_d(output['best_bid'])
|
@@ -21,6 +21,7 @@ module Cryptoexchange::Exchanges
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def adapt(output, market_pair)
|
24
|
+
handle_invalid(output)
|
24
25
|
ticker = Cryptoexchange::Models::Ticker.new
|
25
26
|
market = output['result'][0]
|
26
27
|
|
@@ -37,6 +38,12 @@ module Cryptoexchange::Exchanges
|
|
37
38
|
ticker.payload = market
|
38
39
|
ticker
|
39
40
|
end
|
41
|
+
|
42
|
+
def handle_invalid(output)
|
43
|
+
if output['message'] == 'INVALID_MARKET'
|
44
|
+
raise Cryptoexchange::ResultParseError, { response: output }
|
45
|
+
end
|
46
|
+
end
|
40
47
|
end
|
41
48
|
end
|
42
49
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Cryptoexchange::Exchanges
|
2
|
+
module Coinbene
|
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::Coinbene::Market::API_URL}/market/ticker?symbol=all"
|
18
|
+
end
|
19
|
+
|
20
|
+
def adapt_all(output)
|
21
|
+
output['ticker'].map do |ticker|
|
22
|
+
separator = /(USDT|BTC|ETH)\z/ =~ ticker['symbol']
|
23
|
+
base = ticker['symbol'][0..separator - 1]
|
24
|
+
target = ticker['symbol'][separator..-1]
|
25
|
+
market_pair = Cryptoexchange::Models::MarketPair.new(
|
26
|
+
base: base,
|
27
|
+
target: target,
|
28
|
+
market: Coinbene::Market::NAME
|
29
|
+
)
|
30
|
+
adapt(ticker, market_pair)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def adapt(output, market_pair)
|
35
|
+
ticker = Cryptoexchange::Models::Ticker.new
|
36
|
+
ticker.base = market_pair.base
|
37
|
+
ticker.target = market_pair.target
|
38
|
+
ticker.market = Coinbene::Market::NAME
|
39
|
+
ticker.last = NumericHelper.to_d(output['last'])
|
40
|
+
ticker.bid = NumericHelper.to_d(output['bid'])
|
41
|
+
ticker.ask = NumericHelper.to_d(output['ask'])
|
42
|
+
ticker.high = NumericHelper.to_d(output['24hrHigh'])
|
43
|
+
ticker.low = NumericHelper.to_d(output['24hrLow'])
|
44
|
+
ticker.volume = NumericHelper.to_d(output['24hrVol'])
|
45
|
+
ticker.timestamp = Time.now.to_i
|
46
|
+
ticker.payload = output
|
47
|
+
ticker
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|