cryptoexchange 0.20.0 → 0.21.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|