cryptoexchange 0.24.0 → 0.27.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/.travis.yml +1 -1
- data/PULL_REQUEST_TEMPLATE +8 -1
- data/README.md +187 -25
- data/Rakefile +13 -0
- data/bin/console +0 -0
- data/bin/setup +0 -0
- data/cryptoexchange.gemspec +2 -0
- data/lib/cryptoexchange.rb +4 -0
- data/lib/cryptoexchange/EM.run do +39 -0
- data/lib/cryptoexchange/client.rb +68 -2
- data/lib/cryptoexchange/credentials.rb +1 -1
- data/lib/cryptoexchange/exchanges/airswap/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/airswap/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/airswap/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/allbit/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/allbit/services/market.rb +46 -0
- data/lib/cryptoexchange/exchanges/allbit/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/allcoin/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/allcoin/services/market.rb +11 -14
- data/lib/cryptoexchange/exchanges/allcoin/services/order_book.rb +6 -8
- data/lib/cryptoexchange/exchanges/allcoin/services/pairs.rb +10 -7
- data/lib/cryptoexchange/exchanges/allcoin/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/alluma/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/alluma/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/alluma/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/alterdice/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/alterdice/services/market.rb +38 -0
- data/lib/cryptoexchange/exchanges/alterdice/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/altilly/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/altilly/services/market.rb +5 -11
- data/lib/cryptoexchange/exchanges/altmarkets/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/altmarkets/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/altmarkets/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/altmarkets/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/altmarkets/services/trades.rb +35 -0
- data/lib/cryptoexchange/exchanges/aphelion/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/aphelion/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/aphelion/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/axnet/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/axnet/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/axnet/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/axnet/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/axnet/services/trades.rb +40 -0
- data/lib/cryptoexchange/exchanges/b2bx/market.rb +2 -1
- data/lib/cryptoexchange/exchanges/b2bx/services/market.rb +7 -7
- data/lib/cryptoexchange/exchanges/b2bx/services/pairs.rb +8 -6
- data/lib/cryptoexchange/exchanges/bankera/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/bankera/services/market.rb +41 -0
- data/lib/cryptoexchange/exchanges/bankera/services/order_book.rb +47 -0
- data/lib/cryptoexchange/exchanges/bankera/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/bankera/services/trades.rb +35 -0
- data/lib/cryptoexchange/exchanges/bcoin/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bcoin/services/market.rb +47 -0
- data/lib/cryptoexchange/exchanges/bcoin/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/bgogo/market.rb +57 -0
- data/lib/cryptoexchange/exchanges/bgogo/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/bgogo/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/bgogo/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/bgogo/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/bilaxy/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/bishang/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bishang/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/bishang/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/bisq/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bisq/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/bisq/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/bisq/services/trades.rb +36 -0
- data/lib/cryptoexchange/exchanges/bit_z/market.rb +5 -1
- data/lib/cryptoexchange/exchanges/bit_z/services/market.rb +8 -7
- data/lib/cryptoexchange/exchanges/bit_z/services/pairs.rb +1 -1
- data/lib/cryptoexchange/exchanges/bitbay/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/bitbegin/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/bitbegin/services/market.rb +43 -0
- data/lib/cryptoexchange/exchanges/bitbegin/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/bitbns/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/bitbox/market.rb +5 -1
- data/lib/cryptoexchange/exchanges/bitbox/services/market.rb +27 -13
- data/lib/cryptoexchange/exchanges/bitbox/services/pairs.rb +11 -10
- data/lib/cryptoexchange/exchanges/bitbox_private/authentication.rb +24 -0
- data/lib/cryptoexchange/exchanges/bitbox_private/bitbox_private.yml +14 -0
- data/lib/cryptoexchange/exchanges/bitbox_private/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/bitbox_private/services/market.rb +59 -0
- data/lib/cryptoexchange/exchanges/bitbox_private/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/bitex/bitex.yml +3 -0
- data/lib/cryptoexchange/exchanges/bitex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bitex/services/market.rb +38 -0
- data/lib/cryptoexchange/exchanges/{bitbox → bitex}/services/order_book.rb +11 -9
- data/lib/cryptoexchange/exchanges/bitex/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/bitexlive/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/bitexlive/services/market.rb +46 -0
- data/lib/cryptoexchange/exchanges/bitexlive/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/bitfex/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/bitfex/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/bitfex/services/pairs.rb +19 -0
- data/lib/cryptoexchange/exchanges/bitfinex/market.rb +1 -0
- data/lib/cryptoexchange/exchanges/bitfinex/services/market.rb +11 -11
- data/lib/cryptoexchange/exchanges/bitfinex/services/market_stream.rb +52 -0
- data/lib/cryptoexchange/exchanges/bitfinex/services/order_book_stream.rb +56 -0
- data/lib/cryptoexchange/exchanges/bitfinex/services/trade_stream.rb +48 -0
- data/lib/cryptoexchange/exchanges/bitflyer/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/bitforex/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/bithumb/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/bithumb/services/market.rb +19 -15
- data/lib/cryptoexchange/exchanges/bitibu/market.rb +5 -3
- data/lib/cryptoexchange/exchanges/bitinfi/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bitinfi/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/bitinfi/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/bitinfi/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/bitinka/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bitinka/services/market.rb +55 -0
- data/lib/cryptoexchange/exchanges/{b2bx → bitinka}/services/order_book.rb +12 -10
- data/lib/cryptoexchange/exchanges/bitinka/services/pairs.rb +28 -0
- data/lib/cryptoexchange/exchanges/{b2bx → bitinka}/services/trades.rb +0 -0
- data/lib/cryptoexchange/exchanges/bitker/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/bitker/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/bitker/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/bitkub/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/bitkub/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/bitkub/services/order_book.rb +55 -0
- data/lib/cryptoexchange/exchanges/bitkub/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/bitkub/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/bitmart/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bitmart/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/bitmart/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/bitmart/services/pairs.rb +29 -0
- data/lib/cryptoexchange/exchanges/bitmart/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/bitmax/market.rb +14 -0
- data/lib/cryptoexchange/exchanges/bitmax/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/bitmax/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/bitmax/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/bitmax/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/bitonbay/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bitonbay/services/market.rb +45 -0
- data/lib/cryptoexchange/exchanges/bitonbay/services/order_book.rb +53 -0
- data/lib/cryptoexchange/exchanges/bitonbay/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/bitonbay/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/bitrabbit/market.rb +14 -0
- data/lib/cryptoexchange/exchanges/bitrabbit/services/market.rb +47 -0
- data/lib/cryptoexchange/exchanges/bitrabbit/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/bitrue/market.rb +15 -0
- data/lib/cryptoexchange/exchanges/bitrue/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/bitrue/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/bitsane/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bitsane/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/bitsane/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/bitsane/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/bitsten/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/bitsten/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/bitsten/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/bitsten/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/bittrex/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/bkex/market.rb +13 -0
- data/lib/cryptoexchange/exchanges/bkex/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/bkex/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/bleutrade/services/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/blockonix/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/blockonix/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/blockonix/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/blockonix/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/blockonix/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/blokmy/market.rb +14 -0
- data/lib/cryptoexchange/exchanges/blokmy/services/market.rb +46 -0
- data/lib/cryptoexchange/exchanges/blokmy/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/blokmy/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/blokmy/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/btc_alpha/services/market.rb +27 -16
- data/lib/cryptoexchange/exchanges/btc_alpha/services/pairs.rb +1 -1
- data/lib/cryptoexchange/exchanges/btc_alpha/services/trades.rb +1 -1
- data/lib/cryptoexchange/exchanges/btc_exchange/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/btc_exchange/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/btc_exchange/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/btc_exchange/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/btc_exchange/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/btcmarkets/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/btcmarkets/services/market.rb +36 -0
- data/lib/cryptoexchange/exchanges/btcmarkets/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/btcmarkets/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/bw/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/bw/services/market.rb +47 -0
- data/lib/cryptoexchange/exchanges/bw/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/bw/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/bytex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/bytex/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/bytex/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/c2cx/services/market.rb +2 -2
- data/lib/cryptoexchange/exchanges/c2cx/services/order_book.rb +1 -1
- data/lib/cryptoexchange/exchanges/chaince/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/chaince/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/chaince/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/chaince/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/chaince/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/chainex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/chainex/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/chainex/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/chainex/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/chainex/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/chainrift/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/chainrift/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/chainrift/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/chainrift/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/chainrift/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/cobinhood/services/order_book.rb +2 -2
- data/lib/cryptoexchange/exchanges/coinall/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinall/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/coinall/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/coinall/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/coinall/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/coinasset/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/coinasset/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/coinasset/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/coinasset/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/coinasset/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/coinbe/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinbe/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/coinbe/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/coinchangex/market.rb +47 -0
- data/lib/cryptoexchange/exchanges/coinchangex/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/coinchangex/services/order_book.rb +53 -0
- data/lib/cryptoexchange/exchanges/coinchangex/services/pairs.rb +29 -0
- data/lib/cryptoexchange/exchanges/coinchangex/services/trades.rb +39 -0
- data/lib/cryptoexchange/exchanges/coindeal/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/coindeal/services/market.rb +36 -0
- data/lib/cryptoexchange/exchanges/coindeal/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/coindeal/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/coindirect/market.rb +14 -0
- data/lib/cryptoexchange/exchanges/coindirect/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/coindirect/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/coineal/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coineal/services/market.rb +38 -0
- data/lib/cryptoexchange/exchanges/coineal/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/coineal/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/coineal/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/coinex/services/market.rb +3 -1
- data/lib/cryptoexchange/exchanges/coinhub/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinhub/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/coinhub/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/coinhub/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/coinhub/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/coinjar/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/coinmex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinmex/services/market.rb +37 -0
- data/lib/cryptoexchange/exchanges/coinmex/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/coinmex/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/{tdax → coinmex}/services/trades.rb +8 -10
- data/lib/cryptoexchange/exchanges/coinone/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/coinpark/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/coinpark/services/market.rb +42 -0
- data/lib/cryptoexchange/exchanges/coinpark/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/coinpark/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/coinpark/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/coinplace/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinplace/services/market.rb +53 -0
- data/lib/cryptoexchange/exchanges/coinplace/services/pairs.rb +29 -0
- data/lib/cryptoexchange/exchanges/coinsbank/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinsbank/services/market.rb +36 -0
- data/lib/cryptoexchange/exchanges/coinsbank/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/coinsbit/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/coinsbit/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/coinsbit/services/pairs.rb +28 -0
- data/lib/cryptoexchange/exchanges/coinzest/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/coinzest/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/coinzest/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/coinzest/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/cryptaldash/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/cryptaldash/services/market.rb +53 -0
- data/lib/cryptoexchange/exchanges/cryptaldash/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/cryptaldash/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/cryptaldash/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/cryptology/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/cryptology/services/market.rb +46 -0
- data/lib/cryptoexchange/exchanges/cryptology/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/crytrex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/crytrex/services/market.rb +37 -0
- data/lib/cryptoexchange/exchanges/crytrex/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/crytrex/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/crytrex/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/dakuce/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/dakuce/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/dakuce/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/dakuce/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/dakuce/services/trades.rb +31 -0
- data/lib/cryptoexchange/exchanges/dcoin/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/dcoin/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/dcoin/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/ddex/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/ddex/services/market.rb +5 -5
- data/lib/cryptoexchange/exchanges/ddex/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/ddex/services/pairs.rb +4 -5
- data/lib/cryptoexchange/exchanges/ddex/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/deex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/deex/services/market.rb +38 -0
- data/lib/cryptoexchange/exchanges/deex/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/dextop/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/dextop/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/dextop/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/dextop/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/dextop/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/dobitrade/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/dobitrade/services/market.rb +38 -0
- data/lib/cryptoexchange/exchanges/dobitrade/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/dobitrade/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/dobitrade/services/trades.rb +31 -0
- data/lib/cryptoexchange/exchanges/dragonex/market.rb +14 -0
- data/lib/cryptoexchange/exchanges/dragonex/services/market.rb +54 -0
- data/lib/cryptoexchange/exchanges/dragonex/services/order_book.rb +50 -0
- data/lib/cryptoexchange/exchanges/dragonex/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/escodex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/escodex/services/market.rb +47 -0
- data/lib/cryptoexchange/exchanges/escodex/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/etherflyer/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/etherflyer/services/market.rb +46 -0
- data/lib/cryptoexchange/exchanges/etherflyer/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/ethex/market.rb +11 -0
- data/lib/cryptoexchange/exchanges/ethex/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/ethex/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/ethfinex/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/everbloom/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/everbloom/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/everbloom/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/exrates/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/exx/market.rb +2 -1
- data/lib/cryptoexchange/exchanges/fatbtc/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/fatbtc/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/fatbtc/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/fatbtc/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/fatbtc/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/fifty_eight_coin/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/fifty_eight_coin/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/fifty_eight_coin/services/order_book.rb +47 -0
- data/lib/cryptoexchange/exchanges/fifty_eight_coin/services/pairs.rb +29 -0
- data/lib/cryptoexchange/exchanges/fifty_eight_coin/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/finexbox/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/finexbox/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/finexbox/services/order_book.rb +45 -0
- data/lib/cryptoexchange/exchanges/finexbox/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/finexbox/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/forkdelta/services/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/gbx/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/gbx/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/gbx/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/gdac/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/gdac/services/market.rb +47 -0
- data/lib/cryptoexchange/exchanges/gdac/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/gdax/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/gobaba/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/gobaba/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/gobaba/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/golix/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/golix/services/market.rb +38 -0
- data/lib/cryptoexchange/exchanges/golix/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/golix/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/hb_top/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/hb_top/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/hb_top/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/hitbtc/market.rb +5 -1
- data/lib/cryptoexchange/exchanges/hitbtc/services/market.rb +2 -3
- data/lib/cryptoexchange/exchanges/hitbtc/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/hitbtc/services/pairs.rb +4 -4
- data/lib/cryptoexchange/exchanges/hitbtc/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/hpx/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/hpx/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/hpx/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/hpx/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/hpx/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/ice3x/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/ice3x/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/ice3x/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/ice3x/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/ice3x/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/incorex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/incorex/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/incorex/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/incorex/services/pairs.rb +28 -0
- data/lib/cryptoexchange/exchanges/incorex/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/indodax/indodax.yml +82 -0
- data/lib/cryptoexchange/exchanges/indodax/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/{bitcoin_indonesia → indodax}/services/market.rb +3 -3
- data/lib/cryptoexchange/exchanges/indodax/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/indodax/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/indodax/services/trades.rb +35 -0
- data/lib/cryptoexchange/exchanges/iqfinex/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/iqfinex/services/market.rb +46 -0
- data/lib/cryptoexchange/exchanges/iqfinex/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/iqfinex/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/iqfinex/services/trades.rb +35 -0
- data/lib/cryptoexchange/exchanges/ironex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/ironex/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/ironex/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/ironex/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/ironex/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/jex/services/market.rb +3 -3
- data/lib/cryptoexchange/exchanges/jex/services/pairs.rb +3 -1
- data/lib/cryptoexchange/exchanges/joyso/services/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/kairex/kairex.yml +13 -0
- data/lib/cryptoexchange/exchanges/kairex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/kairex/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/kairex/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/{bitcoin_indonesia → kairex}/services/pairs.rb +5 -5
- data/lib/cryptoexchange/exchanges/korbit/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/kraken/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/lakebtc/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/letsdocoinz/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/letsdocoinz/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/letsdocoinz/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/letsdocoinz/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/letsdocoinz/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/litebiteu/services/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/luno/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/maplechange/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/maplechange/services/market.rb +56 -0
- data/lib/cryptoexchange/exchanges/maplechange/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/maplechange/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/max_maicoin/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/nanu_exchange/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/nanu_exchange/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/nanu_exchange/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/nanu_exchange/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/nanu_exchange/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/negociecoins/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/negociecoins/negociecoins.yml +11 -0
- data/lib/cryptoexchange/exchanges/negociecoins/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/negociecoins/services/order_book.rb +44 -0
- data/lib/cryptoexchange/exchanges/negociecoins/services/pairs.rb +19 -0
- data/lib/cryptoexchange/exchanges/negociecoins/services/trades.rb +35 -0
- data/lib/cryptoexchange/exchanges/newdex/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/newdex/services/market.rb +44 -0
- data/lib/cryptoexchange/exchanges/newdex/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/novadax/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/novadax/services/market.rb +39 -0
- data/lib/cryptoexchange/exchanges/novadax/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/novadax/services/trades.rb +38 -0
- data/lib/cryptoexchange/exchanges/nusax/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/nusax/services/market.rb +41 -0
- data/lib/cryptoexchange/exchanges/nusax/services/pairs.rb +21 -0
- data/lib/cryptoexchange/exchanges/oax/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/oax/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/oax/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/oax/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/oax/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/p2pb2b/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/p2pb2b/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/p2pb2b/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/p2pb2b/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/p2pb2b/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/paroexchange/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/paroexchange/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/paroexchange/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/paroexchange/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/paroexchange/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/poloniex/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/purcow/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/purcow/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/purcow/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/qbtc/market.rb +5 -1
- data/lib/cryptoexchange/exchanges/quoine/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/radar_relay/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/radar_relay/services/market.rb +31 -12
- data/lib/cryptoexchange/exchanges/radar_relay/services/pairs.rb +9 -2
- data/lib/cryptoexchange/exchanges/raisex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/raisex/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/raisex/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/raisex/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/raisex/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/safe_trade/services/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/secondbtc/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/secondbtc/services/market.rb +46 -0
- data/lib/cryptoexchange/exchanges/secondbtc/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/sistemkoin/services/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/south_xchange/services/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/stellar_term/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/stellar_term/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/stellar_term/services/pairs.rb +30 -0
- data/lib/cryptoexchange/exchanges/swiftex/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/swiftex/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/swiftex/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/swiftex/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/switcheo/market.rb +3 -3
- data/lib/cryptoexchange/exchanges/tdax/market.rb +5 -1
- data/lib/cryptoexchange/exchanges/tdax/services/market.rb +23 -19
- data/lib/cryptoexchange/exchanges/tdax/services/pairs.rb +5 -4
- data/lib/cryptoexchange/exchanges/therocktrading/services/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/thinkbit/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/thinkbit/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/thinkbit/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/thinkbit/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/thinkbit/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/tideal/market.rb +13 -0
- data/lib/cryptoexchange/exchanges/tideal/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/tideal/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/tideal/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/tideal/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/tidebit/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/tokens_net/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/tokens_net/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/tokens_net/services/order_book.rb +46 -0
- data/lib/cryptoexchange/exchanges/tokens_net/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/tokens_net/services/trades.rb +34 -0
- data/lib/cryptoexchange/exchanges/tokok/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/tokok/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/tokok/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/tokok/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/tokok/services/trades.rb +31 -0
- data/lib/cryptoexchange/exchanges/tradeio/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/tradeio/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/tradeio/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/trx_market/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/trx_market/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/trx_market/services/pairs.rb +27 -0
- data/lib/cryptoexchange/exchanges/uex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/uex/services/market.rb +40 -0
- data/lib/cryptoexchange/exchanges/uex/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/upbit/market.rb +1 -1
- data/lib/cryptoexchange/exchanges/vaultmex/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/vaultmex/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/vaultmex/services/order_book.rb +49 -0
- data/lib/cryptoexchange/exchanges/vaultmex/services/pairs.rb +24 -0
- data/lib/cryptoexchange/exchanges/vaultmex/services/trades.rb +33 -0
- data/lib/cryptoexchange/exchanges/vbitex/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/vbitex/services/market.rb +43 -0
- data/lib/cryptoexchange/exchanges/vbitex/services/pairs.rb +25 -0
- data/lib/cryptoexchange/exchanges/waves/services/pairs.rb +3 -1
- data/lib/cryptoexchange/exchanges/wazirx/market.rb +9 -0
- data/lib/cryptoexchange/exchanges/wazirx/services/market.rb +49 -0
- data/lib/cryptoexchange/exchanges/wazirx/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/wazirx/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/worldcore/market.rb +12 -0
- data/lib/cryptoexchange/exchanges/worldcore/services/market.rb +48 -0
- data/lib/cryptoexchange/exchanges/worldcore/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/worldcore/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/worldcore/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/yobit/market.rb +4 -0
- data/lib/cryptoexchange/exchanges/zbg/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/zbg/services/market.rb +51 -0
- data/lib/cryptoexchange/exchanges/zbg/services/order_book.rb +42 -0
- data/lib/cryptoexchange/exchanges/zbg/services/pairs.rb +23 -0
- data/lib/cryptoexchange/exchanges/zbg/services/trades.rb +31 -0
- data/lib/cryptoexchange/exchanges/zeniex/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/zeniex/services/market.rb +52 -0
- data/lib/cryptoexchange/exchanges/zeniex/services/order_book.rb +41 -0
- data/lib/cryptoexchange/exchanges/zeniex/services/pairs.rb +22 -0
- data/lib/cryptoexchange/exchanges/zeniex/services/trades.rb +32 -0
- data/lib/cryptoexchange/exchanges/zgtop/market.rb +8 -0
- data/lib/cryptoexchange/exchanges/zgtop/services/market.rb +50 -0
- data/lib/cryptoexchange/exchanges/zgtop/services/order_book.rb +43 -0
- data/lib/cryptoexchange/exchanges/zgtop/services/pairs.rb +26 -0
- data/lib/cryptoexchange/exchanges/zgtop/services/trades.rb +31 -0
- data/lib/cryptoexchange/helpers/numeric_helper.rb +3 -1
- data/lib/cryptoexchange/lru_ttl_cache.rb +2 -2
- data/lib/cryptoexchange/models/ticker.rb +2 -0
- data/lib/cryptoexchange/services/market_stream.rb +21 -0
- data/lib/cryptoexchange/services/order_book_stream.rb +21 -0
- data/lib/cryptoexchange/services/trade_stream.rb +21 -0
- data/lib/cryptoexchange/version.rb +1 -1
- metadata +495 -12
- data/lib/cryptoexchange/exchanges/allcoin/allcoin.yml +0 -69
- data/lib/cryptoexchange/exchanges/bitbox/services/trades.rb +0 -33
- data/lib/cryptoexchange/exchanges/bitcoin_indonesia/bitcoin_indonesia.yml +0 -30
- data/lib/cryptoexchange/exchanges/bitcoin_indonesia/market.rb +0 -8
data/Rakefile
CHANGED
|
@@ -4,3 +4,16 @@ require "rspec/core/rake_task"
|
|
|
4
4
|
RSpec::Core::RakeTask.new(:spec)
|
|
5
5
|
|
|
6
6
|
task :default => :spec
|
|
7
|
+
|
|
8
|
+
task :console do
|
|
9
|
+
require 'pry'
|
|
10
|
+
require 'cryptoexchange'
|
|
11
|
+
|
|
12
|
+
def reload!
|
|
13
|
+
files = $LOADED_FEATURES.select { |feat| feat =~ /\/cryptoexchange\// }
|
|
14
|
+
files.each { |file| load file }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
ARGV.clear
|
|
18
|
+
Pry.start
|
|
19
|
+
end
|
data/bin/console
CHANGED
|
File without changes
|
data/bin/setup
CHANGED
|
File without changes
|
data/cryptoexchange.gemspec
CHANGED
|
@@ -28,7 +28,9 @@ Gem::Specification.new do |spec|
|
|
|
28
28
|
spec.add_development_dependency "rb-readline"
|
|
29
29
|
spec.add_development_dependency "vcr", "~> 4.0.0"
|
|
30
30
|
spec.add_development_dependency "webmock", '~> 3.3.0'
|
|
31
|
+
spec.add_development_dependency "byebug"
|
|
31
32
|
|
|
32
33
|
spec.add_dependency "http", '~> 3.0.0'
|
|
33
34
|
spec.add_dependency "lru_redux"
|
|
35
|
+
spec.add_dependency "websocket-eventmachine-client"
|
|
34
36
|
end
|
data/lib/cryptoexchange.rb
CHANGED
|
@@ -10,6 +10,9 @@ require "cryptoexchange/models/market_pair"
|
|
|
10
10
|
require "cryptoexchange/models/market"
|
|
11
11
|
require "cryptoexchange/services/market"
|
|
12
12
|
require "cryptoexchange/services/pairs"
|
|
13
|
+
require "cryptoexchange/services/market_stream"
|
|
14
|
+
require "cryptoexchange/services/trade_stream"
|
|
15
|
+
require "cryptoexchange/services/order_book_stream"
|
|
13
16
|
require "cryptoexchange/services/authentication"
|
|
14
17
|
|
|
15
18
|
path_files = Dir[File.join(File.dirname(__dir__), 'lib', 'cryptoexchange', '**', '*.rb')]
|
|
@@ -20,3 +23,4 @@ end
|
|
|
20
23
|
|
|
21
24
|
require "http"
|
|
22
25
|
require "lru_redux"
|
|
26
|
+
require "websocket-eventmachine-client"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
EM.run do
|
|
2
|
+
|
|
3
|
+
ws = WebSocket::EventMachine::Client.connect(:uri => 'wss://ws-feed.pro.coinbase.com')
|
|
4
|
+
|
|
5
|
+
ws.onopen do
|
|
6
|
+
puts "Connected"
|
|
7
|
+
ws.send({
|
|
8
|
+
"type": "subscribe",
|
|
9
|
+
"product_ids": [
|
|
10
|
+
"ETH-USD",
|
|
11
|
+
"ETH-EUR"
|
|
12
|
+
],
|
|
13
|
+
"channels": [
|
|
14
|
+
"level2",
|
|
15
|
+
"heartbeat",
|
|
16
|
+
{
|
|
17
|
+
"name": "ticker",
|
|
18
|
+
"product_ids": [
|
|
19
|
+
"ETH-BTC",
|
|
20
|
+
"ETH-USD"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
})
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
ws.onmessage do |msg, type|
|
|
28
|
+
puts "Received message: #{msg}"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
ws.onclose do |code, reason|
|
|
32
|
+
puts "Disconnected with status code: #{code}"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
EventMachine.next_tick do
|
|
36
|
+
ws.send "Hello Server!"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Cryptoexchange
|
|
2
2
|
class Client
|
|
3
|
-
def initialize(ticker_ttl: 3)
|
|
4
|
-
LruTtlCache.ticker_cache(ticker_ttl)
|
|
3
|
+
def initialize(ticker_ttl: 3, cache_size: 200)
|
|
4
|
+
LruTtlCache.ticker_cache(ticker_ttl, cache_size)
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
def trade_page_url(exchange, args={})
|
|
@@ -80,5 +80,71 @@ module Cryptoexchange
|
|
|
80
80
|
trades = market_class.new
|
|
81
81
|
trades.fetch(market_pair)
|
|
82
82
|
end
|
|
83
|
+
|
|
84
|
+
def ticker_stream(market_pair:, onopen: nil, onmessage:, onclose: nil)
|
|
85
|
+
fetch_stream(
|
|
86
|
+
market_pair: market_pair,
|
|
87
|
+
onopen: onopen,
|
|
88
|
+
onmessage: onmessage,
|
|
89
|
+
onclose: onclose,
|
|
90
|
+
stream_type: 'market'
|
|
91
|
+
)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def trade_stream(market_pair:, onopen: nil, onmessage:, onclose: nil)
|
|
95
|
+
fetch_stream(
|
|
96
|
+
market_pair: market_pair,
|
|
97
|
+
onopen: onopen,
|
|
98
|
+
onmessage: onmessage,
|
|
99
|
+
onclose: onclose,
|
|
100
|
+
stream_type: 'trade'
|
|
101
|
+
)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def order_book_stream(market_pair:, onopen: nil, onmessage:, onclose: nil)
|
|
105
|
+
fetch_stream(
|
|
106
|
+
market_pair: market_pair,
|
|
107
|
+
onopen: onopen,
|
|
108
|
+
onmessage: onmessage,
|
|
109
|
+
onclose: onclose,
|
|
110
|
+
stream_type: 'order_book'
|
|
111
|
+
)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
private
|
|
115
|
+
|
|
116
|
+
# NOTE: # https://ruby-doc.org/core-2.5.0/Thread.html#method-c-abort_on_exception
|
|
117
|
+
# When set to true, if any thread is aborted by an exception, the raised exception will be re-raised in the main thread.
|
|
118
|
+
def fetch_stream(market_pair:, onopen: nil, onmessage:, onclose: nil, stream_type:)
|
|
119
|
+
fail 'stream_type must be one of "market", "trade", "order_book"' unless %w(market trade order_book).include?(stream_type)
|
|
120
|
+
|
|
121
|
+
exchange = market_pair.market
|
|
122
|
+
stream_classname = "Cryptoexchange::Exchanges::#{StringHelper.camelize(exchange)}::Services::#{StringHelper.camelize(stream_type)}Stream"
|
|
123
|
+
stream_class = Object.const_get(stream_classname)
|
|
124
|
+
stream = stream_class.new
|
|
125
|
+
|
|
126
|
+
Thread.new do
|
|
127
|
+
EM.run do
|
|
128
|
+
ws = WebSocket::EventMachine::Client.connect(uri: stream.url)
|
|
129
|
+
|
|
130
|
+
ws.onopen do
|
|
131
|
+
onopen.call if onopen
|
|
132
|
+
ws.send(stream.subscribe_event(market_pair))
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
ws.onmessage do |message, _|
|
|
136
|
+
message = JSON.parse(message)
|
|
137
|
+
|
|
138
|
+
if stream.valid_message?(message)
|
|
139
|
+
onmessage.call(stream.parse_message(message, market_pair))
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
ws.onclose do
|
|
144
|
+
onclose.call if onclose
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
end
|
|
83
149
|
end
|
|
84
150
|
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
module Cryptoexchange::Exchanges
|
|
2
|
+
module Airswap
|
|
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::Airswap::Market::API_URL}/ticker"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def adapt_all(output)
|
|
21
|
+
output.map do |pair, output|
|
|
22
|
+
target, base = pair.split('_')
|
|
23
|
+
market_pair = Cryptoexchange::Models::MarketPair.new(
|
|
24
|
+
base: base,
|
|
25
|
+
target: target,
|
|
26
|
+
market: Airswap::Market::NAME
|
|
27
|
+
)
|
|
28
|
+
adapt(output, 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 = Airswap::Market::NAME
|
|
37
|
+
|
|
38
|
+
ticker.volume = NumericHelper.to_d(output['quoteVolume'])
|
|
39
|
+
ticker.last = NumericHelper.to_d(output['last'])
|
|
40
|
+
ticker.high = NumericHelper.to_d(output['high24hr'])
|
|
41
|
+
ticker.low = NumericHelper.to_d(output['low24hr'])
|
|
42
|
+
ticker.payload = output
|
|
43
|
+
ticker
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Cryptoexchange::Exchanges
|
|
2
|
+
module Airswap
|
|
3
|
+
module Services
|
|
4
|
+
class Pairs < Cryptoexchange::Services::Pairs
|
|
5
|
+
PAIRS_URL = "#{Cryptoexchange::Exchanges::Airswap::Market::API_URL}/ticker"
|
|
6
|
+
def fetch
|
|
7
|
+
output = super
|
|
8
|
+
adapt(output)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def adapt(output)
|
|
12
|
+
output.map do |pair|
|
|
13
|
+
target, base = pair[0].split('_')
|
|
14
|
+
Cryptoexchange::Models::MarketPair.new(
|
|
15
|
+
base: base,
|
|
16
|
+
target: target,
|
|
17
|
+
market: Airswap::Market::NAME
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module Cryptoexchange::Exchanges
|
|
2
|
+
module Allbit
|
|
3
|
+
class Market < Cryptoexchange::Models::Market
|
|
4
|
+
NAME = 'allbit'
|
|
5
|
+
API_URL = 'https://allbit.com/api'
|
|
6
|
+
|
|
7
|
+
def self.trade_page_url(args = {})
|
|
8
|
+
"https://allbit.com/exchange/#{args[:base]}"
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module Cryptoexchange::Exchanges
|
|
2
|
+
module Allbit
|
|
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::Allbit::Market::API_URL}/coin-market-cap-data/"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def adapt_all(output)
|
|
21
|
+
output.map do |pair, ticker|
|
|
22
|
+
next unless ticker['isFrozen'] == 0
|
|
23
|
+
adapt(pair, ticker)
|
|
24
|
+
end.compact
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def adapt(pair, output)
|
|
28
|
+
target, base = pair.split('_')
|
|
29
|
+
ticker = Cryptoexchange::Models::Ticker.new
|
|
30
|
+
ticker.base = base
|
|
31
|
+
ticker.target = target
|
|
32
|
+
ticker.market = Allbit::Market::NAME
|
|
33
|
+
ticker.last = NumericHelper.to_d(output['last'])
|
|
34
|
+
ticker.high = NumericHelper.to_d(output['high24hr'])
|
|
35
|
+
ticker.low = NumericHelper.to_d(output['low24hr'])
|
|
36
|
+
ticker.bid = NumericHelper.to_d(output['highestBid'])
|
|
37
|
+
ticker.ask = NumericHelper.to_d(output['lowestAsk'])
|
|
38
|
+
ticker.volume = NumericHelper.to_d(output['baseVolume'])
|
|
39
|
+
ticker.change = NumericHelper.to_d(output['percentChange'])
|
|
40
|
+
ticker.payload = output
|
|
41
|
+
ticker
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Cryptoexchange::Exchanges
|
|
2
|
+
module Allbit
|
|
3
|
+
module Services
|
|
4
|
+
class Pairs < Cryptoexchange::Services::Pairs
|
|
5
|
+
PAIRS_URL = "#{Cryptoexchange::Exchanges::Allbit::Market::API_URL}/coin-market-cap-data/"
|
|
6
|
+
|
|
7
|
+
def fetch
|
|
8
|
+
output = super
|
|
9
|
+
adapt(output)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def adapt(output)
|
|
13
|
+
output.map do |pair, ticker|
|
|
14
|
+
next unless ticker['isFrozen'] == 0
|
|
15
|
+
target, base = pair.split('_')
|
|
16
|
+
Cryptoexchange::Models::MarketPair.new(
|
|
17
|
+
base: base,
|
|
18
|
+
target: target,
|
|
19
|
+
market: Allbit::Market::NAME
|
|
20
|
+
)
|
|
21
|
+
end.compact
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -10,28 +10,25 @@ module Cryptoexchange::Exchanges
|
|
|
10
10
|
|
|
11
11
|
def fetch(market_pair)
|
|
12
12
|
output = super(ticker_url(market_pair))
|
|
13
|
-
adapt(output, market_pair)
|
|
13
|
+
adapt(output['data'], market_pair)
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def ticker_url(market_pair)
|
|
17
|
-
"#{Cryptoexchange::Exchanges::Allcoin::Market::API_URL}/ticker?symbol=#{market_pair.base.downcase}
|
|
17
|
+
"#{Cryptoexchange::Exchanges::Allcoin::Market::API_URL}/Api_Order/ticker?symbol=#{market_pair.base.downcase}2#{market_pair.target.downcase}"
|
|
18
18
|
end
|
|
19
19
|
|
|
20
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 = Allcoin::Market::NAME
|
|
28
|
-
ticker.ask = NumericHelper.to_d(output['
|
|
29
|
-
ticker.bid = NumericHelper.to_d(output['
|
|
30
|
-
ticker.last = NumericHelper.to_d(output['
|
|
31
|
-
ticker.high = NumericHelper.to_d(output['
|
|
32
|
-
ticker.low = NumericHelper.to_d(output['
|
|
33
|
-
ticker.volume = NumericHelper.to_d(output['
|
|
34
|
-
ticker.timestamp =
|
|
25
|
+
ticker.ask = NumericHelper.to_d(output['sell'].to_f)
|
|
26
|
+
ticker.bid = NumericHelper.to_d(output['buy'].to_f)
|
|
27
|
+
ticker.last = NumericHelper.to_d(output['last'].to_f)
|
|
28
|
+
ticker.high = NumericHelper.to_d(output['high'].to_f)
|
|
29
|
+
ticker.low = NumericHelper.to_d(output['low'].to_f)
|
|
30
|
+
ticker.volume = NumericHelper.to_d(output['vol'].to_f)
|
|
31
|
+
ticker.timestamp = nil
|
|
35
32
|
ticker.payload = output
|
|
36
33
|
ticker
|
|
37
34
|
end
|
|
@@ -14,28 +14,26 @@ module Cryptoexchange::Exchanges
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def ticker_url(market_pair)
|
|
17
|
-
"#{Cryptoexchange::Exchanges::Allcoin::Market::API_URL}/depth?symbol=#{market_pair.base.downcase}
|
|
17
|
+
"#{Cryptoexchange::Exchanges::Allcoin::Market::API_URL}/Api_Order/depth?symbol=#{market_pair.base.downcase}2#{market_pair.target.downcase}"
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def adapt(output, market_pair)
|
|
21
21
|
order_book = Cryptoexchange::Models::OrderBook.new
|
|
22
|
-
timestamp = Time.now.to_i
|
|
23
22
|
|
|
24
23
|
order_book.base = market_pair.base
|
|
25
24
|
order_book.target = market_pair.target
|
|
26
25
|
order_book.market = Allcoin::Market::NAME
|
|
27
|
-
order_book.asks = adapt_orders output['asks']
|
|
28
|
-
order_book.bids = adapt_orders output['bids']
|
|
29
|
-
order_book.timestamp =
|
|
26
|
+
order_book.asks = adapt_orders output['data']['asks']
|
|
27
|
+
order_book.bids = adapt_orders output['data']['bids']
|
|
28
|
+
order_book.timestamp = output['data']['date']
|
|
30
29
|
order_book.payload = output
|
|
31
30
|
order_book
|
|
32
31
|
end
|
|
33
32
|
|
|
34
33
|
def adapt_orders(orders)
|
|
35
34
|
orders.collect do |order_entry|
|
|
36
|
-
price
|
|
37
|
-
|
|
38
|
-
amount: amount,
|
|
35
|
+
Cryptoexchange::Models::Order.new(price: order_entry[0],
|
|
36
|
+
amount: order_entry[1],
|
|
39
37
|
timestamp: nil)
|
|
40
38
|
end
|
|
41
39
|
end
|
|
@@ -2,6 +2,7 @@ module Cryptoexchange::Exchanges
|
|
|
2
2
|
module Allcoin
|
|
3
3
|
module Services
|
|
4
4
|
class Pairs < Cryptoexchange::Services::Pairs
|
|
5
|
+
PAIRS_URL = "#{Cryptoexchange::Exchanges::Allcoin::Market::API_URL}/Api_Market/getPriceList"
|
|
5
6
|
|
|
6
7
|
def fetch
|
|
7
8
|
output = super
|
|
@@ -10,13 +11,15 @@ module Cryptoexchange::Exchanges
|
|
|
10
11
|
|
|
11
12
|
def adapt(output)
|
|
12
13
|
market_pairs = []
|
|
13
|
-
output.each do |
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
output.each do |coin|
|
|
15
|
+
coin.drop(1).flatten.each do |pair|
|
|
16
|
+
market_pairs << Cryptoexchange::Models::MarketPair.new(
|
|
17
|
+
base: pair['coin_from'].upcase,
|
|
18
|
+
target: pair['coin_to'].upcase,
|
|
19
|
+
market: Allcoin::Market::NAME
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
20
23
|
market_pairs
|
|
21
24
|
end
|
|
22
25
|
end
|