packages feed

bittrex 0.1.0.0 → 0.2.0.0

raw patch · 4 files changed

+327/−16 lines, 4 filesdep +bittrexdep ~basenew-component:exe:examplePVP ok

version bump matches the API change (PVP)

Dependencies added: bittrex

Dependency ranges changed: base

API changes (from Hackage documentation)

- Bittrex.Types: k :: ByteString
- Bittrex.Types: m :: OrderBook
+ Bittrex.Types: BTC_1ST :: MarketName
+ Bittrex.Types: BTC_2GIVE :: MarketName
+ Bittrex.Types: BTC_ABY :: MarketName
+ Bittrex.Types: BTC_ADT :: MarketName
+ Bittrex.Types: BTC_ADX :: MarketName
+ Bittrex.Types: BTC_AEON :: MarketName
+ Bittrex.Types: BTC_AGRS :: MarketName
+ Bittrex.Types: BTC_AMP :: MarketName
+ Bittrex.Types: BTC_ANT :: MarketName
+ Bittrex.Types: BTC_APX :: MarketName
+ Bittrex.Types: BTC_ARDR :: MarketName
+ Bittrex.Types: BTC_ARK :: MarketName
+ Bittrex.Types: BTC_AUR :: MarketName
+ Bittrex.Types: BTC_BAT :: MarketName
+ Bittrex.Types: BTC_BAY :: MarketName
+ Bittrex.Types: BTC_BCC :: MarketName
+ Bittrex.Types: BTC_BCY :: MarketName
+ Bittrex.Types: BTC_BITB :: MarketName
+ Bittrex.Types: BTC_BLITZ :: MarketName
+ Bittrex.Types: BTC_BLK :: MarketName
+ Bittrex.Types: BTC_BLOCK :: MarketName
+ Bittrex.Types: BTC_BNT :: MarketName
+ Bittrex.Types: BTC_BRK :: MarketName
+ Bittrex.Types: BTC_BRX :: MarketName
+ Bittrex.Types: BTC_BSD :: MarketName
+ Bittrex.Types: BTC_BTCD :: MarketName
+ Bittrex.Types: BTC_BTG :: MarketName
+ Bittrex.Types: BTC_BURST :: MarketName
+ Bittrex.Types: BTC_BYC :: MarketName
+ Bittrex.Types: BTC_CANN :: MarketName
+ Bittrex.Types: BTC_CFI :: MarketName
+ Bittrex.Types: BTC_CLAM :: MarketName
+ Bittrex.Types: BTC_CLOAK :: MarketName
+ Bittrex.Types: BTC_CLUB :: MarketName
+ Bittrex.Types: BTC_COVAL :: MarketName
+ Bittrex.Types: BTC_CPC :: MarketName
+ Bittrex.Types: BTC_CRB :: MarketName
+ Bittrex.Types: BTC_CRW :: MarketName
+ Bittrex.Types: BTC_CURE :: MarketName
+ Bittrex.Types: BTC_CVC :: MarketName
+ Bittrex.Types: BTC_DASH :: MarketName
+ Bittrex.Types: BTC_DCR :: MarketName
+ Bittrex.Types: BTC_DCT :: MarketName
+ Bittrex.Types: BTC_DGB :: MarketName
+ Bittrex.Types: BTC_DGD :: MarketName
+ Bittrex.Types: BTC_DMD :: MarketName
+ Bittrex.Types: BTC_DNT :: MarketName
+ Bittrex.Types: BTC_DOGE :: MarketName
+ Bittrex.Types: BTC_DOPE :: MarketName
+ Bittrex.Types: BTC_DTB :: MarketName
+ Bittrex.Types: BTC_DYN :: MarketName
+ Bittrex.Types: BTC_EBST :: MarketName
+ Bittrex.Types: BTC_EDG :: MarketName
+ Bittrex.Types: BTC_EFL :: MarketName
+ Bittrex.Types: BTC_EGC :: MarketName
+ Bittrex.Types: BTC_EMC :: MarketName
+ Bittrex.Types: BTC_EMC2 :: MarketName
+ Bittrex.Types: BTC_ENG :: MarketName
+ Bittrex.Types: BTC_ENRG :: MarketName
+ Bittrex.Types: BTC_ERC :: MarketName
+ Bittrex.Types: BTC_ETC :: MarketName
+ Bittrex.Types: BTC_ETH :: MarketName
+ Bittrex.Types: BTC_EXCL :: MarketName
+ Bittrex.Types: BTC_EXP :: MarketName
+ Bittrex.Types: BTC_FAIR :: MarketName
+ Bittrex.Types: BTC_FCT :: MarketName
+ Bittrex.Types: BTC_FLDC :: MarketName
+ Bittrex.Types: BTC_FLO :: MarketName
+ Bittrex.Types: BTC_FTC :: MarketName
+ Bittrex.Types: BTC_FUN :: MarketName
+ Bittrex.Types: BTC_GAM :: MarketName
+ Bittrex.Types: BTC_GAME :: MarketName
+ Bittrex.Types: BTC_GBG :: MarketName
+ Bittrex.Types: BTC_GBYTE :: MarketName
+ Bittrex.Types: BTC_GCR :: MarketName
+ Bittrex.Types: BTC_GEO :: MarketName
+ Bittrex.Types: BTC_GLD :: MarketName
+ Bittrex.Types: BTC_GNO :: MarketName
+ Bittrex.Types: BTC_GNT :: MarketName
+ Bittrex.Types: BTC_GOLOS :: MarketName
+ Bittrex.Types: BTC_GRC :: MarketName
+ Bittrex.Types: BTC_GRS :: MarketName
+ Bittrex.Types: BTC_GUP :: MarketName
+ Bittrex.Types: BTC_HMQ :: MarketName
+ Bittrex.Types: BTC_INCNT :: MarketName
+ Bittrex.Types: BTC_INFX :: MarketName
+ Bittrex.Types: BTC_IOC :: MarketName
+ Bittrex.Types: BTC_ION :: MarketName
+ Bittrex.Types: BTC_IOP :: MarketName
+ Bittrex.Types: BTC_KMD :: MarketName
+ Bittrex.Types: BTC_KORE :: MarketName
+ Bittrex.Types: BTC_LBC :: MarketName
+ Bittrex.Types: BTC_LGD :: MarketName
+ Bittrex.Types: BTC_LMC :: MarketName
+ Bittrex.Types: BTC_LSK :: MarketName
+ Bittrex.Types: BTC_LUN :: MarketName
+ Bittrex.Types: BTC_MAID :: MarketName
+ Bittrex.Types: BTC_MANA :: MarketName
+ Bittrex.Types: BTC_MCO :: MarketName
+ Bittrex.Types: BTC_MEME :: MarketName
+ Bittrex.Types: BTC_MER :: MarketName
+ Bittrex.Types: BTC_MLN :: MarketName
+ Bittrex.Types: BTC_MONA :: MarketName
+ Bittrex.Types: BTC_MTL :: MarketName
+ Bittrex.Types: BTC_MUE :: MarketName
+ Bittrex.Types: BTC_MUSIC :: MarketName
+ Bittrex.Types: BTC_MYST :: MarketName
+ Bittrex.Types: BTC_NAV :: MarketName
+ Bittrex.Types: BTC_NBT :: MarketName
+ Bittrex.Types: BTC_NEO :: MarketName
+ Bittrex.Types: BTC_NEOS :: MarketName
+ Bittrex.Types: BTC_NLG :: MarketName
+ Bittrex.Types: BTC_NMR :: MarketName
+ Bittrex.Types: BTC_NXC :: MarketName
+ Bittrex.Types: BTC_NXS :: MarketName
+ Bittrex.Types: BTC_NXT :: MarketName
+ Bittrex.Types: BTC_OK :: MarketName
+ Bittrex.Types: BTC_OMG :: MarketName
+ Bittrex.Types: BTC_OMNI :: MarketName
+ Bittrex.Types: BTC_PART :: MarketName
+ Bittrex.Types: BTC_PAY :: MarketName
+ Bittrex.Types: BTC_PDC :: MarketName
+ Bittrex.Types: BTC_PINK :: MarketName
+ Bittrex.Types: BTC_PIVX :: MarketName
+ Bittrex.Types: BTC_PKB :: MarketName
+ Bittrex.Types: BTC_POT :: MarketName
+ Bittrex.Types: BTC_POWR :: MarketName
+ Bittrex.Types: BTC_PPC :: MarketName
+ Bittrex.Types: BTC_PTC :: MarketName
+ Bittrex.Types: BTC_PTOY :: MarketName
+ Bittrex.Types: BTC_QRL :: MarketName
+ Bittrex.Types: BTC_QTUM :: MarketName
+ Bittrex.Types: BTC_QWARK :: MarketName
+ Bittrex.Types: BTC_RADS :: MarketName
+ Bittrex.Types: BTC_RBY :: MarketName
+ Bittrex.Types: BTC_RCN :: MarketName
+ Bittrex.Types: BTC_RDD :: MarketName
+ Bittrex.Types: BTC_REP :: MarketName
+ Bittrex.Types: BTC_RISE :: MarketName
+ Bittrex.Types: BTC_RLC :: MarketName
+ Bittrex.Types: BTC_SALT :: MarketName
+ Bittrex.Types: BTC_SBD :: MarketName
+ Bittrex.Types: BTC_SC :: MarketName
+ Bittrex.Types: BTC_SEQ :: MarketName
+ Bittrex.Types: BTC_SHIFT :: MarketName
+ Bittrex.Types: BTC_SIB :: MarketName
+ Bittrex.Types: BTC_SLR :: MarketName
+ Bittrex.Types: BTC_SLS :: MarketName
+ Bittrex.Types: BTC_SNRG :: MarketName
+ Bittrex.Types: BTC_SNT :: MarketName
+ Bittrex.Types: BTC_SPHR :: MarketName
+ Bittrex.Types: BTC_SPR :: MarketName
+ Bittrex.Types: BTC_START :: MarketName
+ Bittrex.Types: BTC_STEEM :: MarketName
+ Bittrex.Types: BTC_STORJ :: MarketName
+ Bittrex.Types: BTC_STRAT :: MarketName
+ Bittrex.Types: BTC_SWIFT :: MarketName
+ Bittrex.Types: BTC_SWT :: MarketName
+ Bittrex.Types: BTC_SYNX :: MarketName
+ Bittrex.Types: BTC_SYS :: MarketName
+ Bittrex.Types: BTC_THC :: MarketName
+ Bittrex.Types: BTC_TIX :: MarketName
+ Bittrex.Types: BTC_TKS :: MarketName
+ Bittrex.Types: BTC_TRIG :: MarketName
+ Bittrex.Types: BTC_TRST :: MarketName
+ Bittrex.Types: BTC_TRUST :: MarketName
+ Bittrex.Types: BTC_TX :: MarketName
+ Bittrex.Types: BTC_UBQ :: MarketName
+ Bittrex.Types: BTC_UNB :: MarketName
+ Bittrex.Types: BTC_VIA :: MarketName
+ Bittrex.Types: BTC_VIB :: MarketName
+ Bittrex.Types: BTC_VOX :: MarketName
+ Bittrex.Types: BTC_VRC :: MarketName
+ Bittrex.Types: BTC_VRM :: MarketName
+ Bittrex.Types: BTC_VTC :: MarketName
+ Bittrex.Types: BTC_VTR :: MarketName
+ Bittrex.Types: BTC_WAVES :: MarketName
+ Bittrex.Types: BTC_WINGS :: MarketName
+ Bittrex.Types: BTC_XCP :: MarketName
+ Bittrex.Types: BTC_XDN :: MarketName
+ Bittrex.Types: BTC_XEL :: MarketName
+ Bittrex.Types: BTC_XEM :: MarketName
+ Bittrex.Types: BTC_XLM :: MarketName
+ Bittrex.Types: BTC_XMG :: MarketName
+ Bittrex.Types: BTC_XMR :: MarketName
+ Bittrex.Types: BTC_XMY :: MarketName
+ Bittrex.Types: BTC_XRP :: MarketName
+ Bittrex.Types: BTC_XST :: MarketName
+ Bittrex.Types: BTC_XVC :: MarketName
+ Bittrex.Types: BTC_XVG :: MarketName
+ Bittrex.Types: BTC_XWC :: MarketName
+ Bittrex.Types: BTC_XZC :: MarketName
+ Bittrex.Types: BTC_ZCL :: MarketName
+ Bittrex.Types: BTC_ZEC :: MarketName
+ Bittrex.Types: BTC_ZEN :: MarketName
+ Bittrex.Types: ETH_1ST :: MarketName
+ Bittrex.Types: ETH_ADA :: MarketName
+ Bittrex.Types: ETH_ADT :: MarketName
+ Bittrex.Types: ETH_ADX :: MarketName
+ Bittrex.Types: ETH_ANT :: MarketName
+ Bittrex.Types: ETH_BAT :: MarketName
+ Bittrex.Types: ETH_BCC :: MarketName
+ Bittrex.Types: ETH_BNT :: MarketName
+ Bittrex.Types: ETH_BTG :: MarketName
+ Bittrex.Types: ETH_CFI :: MarketName
+ Bittrex.Types: ETH_CRB :: MarketName
+ Bittrex.Types: ETH_CVC :: MarketName
+ Bittrex.Types: ETH_DASH :: MarketName
+ Bittrex.Types: ETH_DGB :: MarketName
+ Bittrex.Types: ETH_DGD :: MarketName
+ Bittrex.Types: ETH_DNT :: MarketName
+ Bittrex.Types: ETH_ENG :: MarketName
+ Bittrex.Types: ETH_ETC :: MarketName
+ Bittrex.Types: ETH_FCT :: MarketName
+ Bittrex.Types: ETH_FUN :: MarketName
+ Bittrex.Types: ETH_GNO :: MarketName
+ Bittrex.Types: ETH_GNT :: MarketName
+ Bittrex.Types: ETH_GUP :: MarketName
+ Bittrex.Types: ETH_HMQ :: MarketName
+ Bittrex.Types: ETH_LGD :: MarketName
+ Bittrex.Types: ETH_LTC :: MarketName
+ Bittrex.Types: ETH_LUN :: MarketName
+ Bittrex.Types: ETH_MANA :: MarketName
+ Bittrex.Types: ETH_MCO :: MarketName
+ Bittrex.Types: ETH_MTL :: MarketName
+ Bittrex.Types: ETH_MYST :: MarketName
+ Bittrex.Types: ETH_NEO :: MarketName
+ Bittrex.Types: ETH_NMR :: MarketName
+ Bittrex.Types: ETH_OMG :: MarketName
+ Bittrex.Types: ETH_PAY :: MarketName
+ Bittrex.Types: ETH_POWR :: MarketName
+ Bittrex.Types: ETH_PTOY :: MarketName
+ Bittrex.Types: ETH_QRL :: MarketName
+ Bittrex.Types: ETH_QTUM :: MarketName
+ Bittrex.Types: ETH_RCN :: MarketName
+ Bittrex.Types: ETH_REP :: MarketName
+ Bittrex.Types: ETH_RLC :: MarketName
+ Bittrex.Types: ETH_SALT :: MarketName
+ Bittrex.Types: ETH_SC :: MarketName
+ Bittrex.Types: ETH_SNT :: MarketName
+ Bittrex.Types: ETH_STORJ :: MarketName
+ Bittrex.Types: ETH_STRAT :: MarketName
+ Bittrex.Types: ETH_TIX :: MarketName
+ Bittrex.Types: ETH_TRST :: MarketName
+ Bittrex.Types: ETH_VIB :: MarketName
+ Bittrex.Types: ETH_WAVES :: MarketName
+ Bittrex.Types: ETH_WINGS :: MarketName
+ Bittrex.Types: ETH_XEM :: MarketName
+ Bittrex.Types: ETH_XLM :: MarketName
+ Bittrex.Types: ETH_XMR :: MarketName
+ Bittrex.Types: ETH_XRP :: MarketName
+ Bittrex.Types: ETH_ZEC :: MarketName
+ Bittrex.Types: USDT_BCC :: MarketName
+ Bittrex.Types: USDT_BTC :: MarketName
+ Bittrex.Types: USDT_BTG :: MarketName
+ Bittrex.Types: USDT_DASH :: MarketName
+ Bittrex.Types: USDT_ETC :: MarketName
+ Bittrex.Types: USDT_ETH :: MarketName
+ Bittrex.Types: USDT_LTC :: MarketName
+ Bittrex.Types: USDT_NEO :: MarketName
+ Bittrex.Types: USDT_OMG :: MarketName
+ Bittrex.Types: USDT_XMR :: MarketName
+ Bittrex.Types: USDT_XRP :: MarketName
+ Bittrex.Types: USDT_ZEC :: MarketName
+ Bittrex.Types: instance GHC.Classes.Eq Bittrex.Types.MarketName
+ Bittrex.Types: instance GHC.Generics.Generic Bittrex.Types.MarketName
- Bittrex.API: getOrderBook :: MarketName -> OrderBookType -> IO (Either ErrorMessage OrderBook)
+ Bittrex.API: getOrderBook :: MarketName -> OrderBookType -> IO (Either ErrorMessage [OrderBook])

Files

bittrex.cabal view
@@ -1,5 +1,5 @@ name:                bittrex-version:             0.1.0.0+version:             0.2.0.0 synopsis:            API bindings to bittrex.com description:         Haskell bindings to the Bittrex exchange homepage:            https://github.com/dmjio/bittrex@@ -12,6 +12,12 @@ build-type:          Simple extra-source-files:  ChangeLog.md cabal-version:       >=1.10++executable example+  main-is: Main.hs+  hs-source-dirs: example+  default-language: Haskell2010+  build-depends: base, bittrex  library   exposed-modules:     Bittrex
+ example/Main.hs view
@@ -0,0 +1,45 @@+module Main where++import Bittrex+import Control.Monad++main :: IO ()+main = do+  [api,secret] <- lines <$> readFile "/Users/david/.bittrex"+  let keys = APIKeys api secret++  -- Public Usage+  putStrLn "Markets"+  Right ms <- getMarkets+  forM_ ms $ \m ->+    print (marketName m)++  putStrLn "Currencies"+  Right cs <- getCurrencies+  mapM_ print cs++  putStrLn "Ticker for BTC-DOGE market"+  t <- getTicker BTC_DOGE+  print t++  putStrLn "Summary of BTC-DOGE market"+  Right t <- getMarketSummary BTC_DOGE+  print t++  putStrLn "Order book for BTC-DOGE market"+  book <- getOrderBook BTC_DOGE Both+  print book++  putStrLn "Market history for BTC-DOGE"+  Right history <- getMarketHistory BTC_DOGE+  forM_ history print++  -- Market usage+  putStrLn "Retrieve your open orders"+  Right openOrders <- getOpenOrders keys BTC_DOGE+  forM_ openOrders print++  -- Account usage,+  putStrLn "Check your balances (for all currencies)"+  Right balances <- getBalances keys+  forM_ balances print
src/Bittrex/API.hs view
@@ -32,10 +32,11 @@   ) where  import           Data.Aeson+import           Data.Char import           Data.Monoid+import           Data.Scientific import           Data.Text        (Text) import qualified Data.Text        as T-import           Data.Scientific  import           Bittrex.Types import           Bittrex.Util@@ -70,7 +71,7 @@   -> IO (Either ErrorMessage Ticker) getTicker market =   callAPI defOpts {-      qParams = [("market", show market)]+      qParams = [("market", camelToDash $ show market)]     , path = "getticker"     } @@ -86,7 +87,7 @@   -> IO (Either ErrorMessage Value) getMarketSummary market =   callAPI defOpts {-      qParams = [("market", show market)]+      qParams = pure ("market", camelToDash $ show market)     , path = "getmarketsummary"     } @@ -94,12 +95,12 @@ getOrderBook   :: MarketName -- ^ a string literal for the market (ex: `BTC-LTC`)   -> OrderBookType -- ^ buy, sell or both to identify the type of orderbook to return.-  -> IO (Either ErrorMessage OrderBook)+  -> IO (Either ErrorMessage [OrderBook]) getOrderBook market orderBookType =   callAPI defOpts {       path = "getorderbook"-    , qParams = [ ("market", show market)-                , ("type", show orderBookType)+    , qParams = [ ("market", camelToDash $ show market)+                , ("type", map toLower $ show orderBookType)                 ]     } @@ -110,7 +111,7 @@ getMarketHistory market =   callAPI defOpts {       path = "getmarkethistory"-    , qParams = pure ("market", show market)+    , qParams = pure ("market", camelToDash $ show market)     }  -- | Get all orders that you currently have opened. A specific market can be requested
src/Bittrex/Types.hs view
@@ -58,9 +58,273 @@ instance FromJSON BittrexError  data MarketName-  = BTC_ADA-  | BTC_LTC-  deriving (Show)+  = BTC_LTC+  | BTC_DOGE+  | BTC_VTC+  | BTC_PPC+  | BTC_FTC+  | BTC_RDD+  | BTC_NXT+  | BTC_DASH+  | BTC_POT+  | BTC_BLK+  | BTC_EMC2+  | BTC_XMY+  | BTC_AUR+  | BTC_EFL+  | BTC_GLD+  | BTC_SLR+  | BTC_PTC+  | BTC_GRS+  | BTC_NLG+  | BTC_RBY+  | BTC_XWC+  | BTC_MONA+  | BTC_THC+  | BTC_ENRG+  | BTC_ERC+  | BTC_VRC+  | BTC_CURE+  | BTC_XMR+  | BTC_CLOAK+  | BTC_START+  | BTC_KORE+  | BTC_XDN+  | BTC_TRUST+  | BTC_NAV+  | BTC_XST+  | BTC_BTCD+  | BTC_VIA+  | BTC_PINK+  | BTC_IOC+  | BTC_CANN+  | BTC_SYS+  | BTC_NEOS+  | BTC_DGB+  | BTC_BURST+  | BTC_EXCL+  | BTC_SWIFT+  | BTC_DOPE+  | BTC_BLOCK+  | BTC_ABY+  | BTC_BYC+  | BTC_XMG+  | BTC_BLITZ+  | BTC_BAY+  | BTC_FAIR+  | BTC_SPR+  | BTC_VTR+  | BTC_XRP+  | BTC_GAME+  | BTC_COVAL+  | BTC_NXS+  | BTC_XCP+  | BTC_BITB+  | BTC_GEO+  | BTC_FLDC+  | BTC_GRC+  | BTC_FLO+  | BTC_NBT+  | BTC_MUE+  | BTC_XEM+  | BTC_CLAM+  | BTC_DMD+  | BTC_GAM+  | BTC_SPHR+  | BTC_OK+  | BTC_SNRG+  | BTC_PKB+  | BTC_CPC+  | BTC_AEON+  | BTC_ETH+  | BTC_GCR+  | BTC_TX+  | BTC_BCY+  | BTC_EXP+  | BTC_INFX+  | BTC_OMNI+  | BTC_AMP+  | BTC_AGRS+  | BTC_XLM+  | USDT_BTC+  | BTC_CLUB+  | BTC_VOX+  | BTC_EMC+  | BTC_FCT+  | BTC_MAID+  | BTC_EGC+  | BTC_SLS+  | BTC_RADS+  | BTC_DCR+  | BTC_BSD+  | BTC_XVG+  | BTC_PIVX+  | BTC_XVC+  | BTC_MEME+  | BTC_STEEM+  | BTC_2GIVE+  | BTC_LSK+  | BTC_PDC+  | BTC_BRK+  | BTC_DGD+  | ETH_DGD+  | BTC_WAVES+  | BTC_RISE+  | BTC_LBC+  | BTC_SBD+  | BTC_BRX+  | BTC_ETC+  | ETH_ETC+  | BTC_STRAT+  | BTC_UNB+  | BTC_SYNX+  | BTC_TRIG+  | BTC_EBST+  | BTC_VRM+  | BTC_SEQ+  | BTC_REP+  | BTC_SHIFT+  | BTC_ARDR+  | BTC_XZC+  | BTC_NEO+  | BTC_ZEC+  | BTC_ZCL+  | BTC_IOP+  | BTC_GOLOS+  | BTC_UBQ+  | BTC_KMD+  | BTC_GBG+  | BTC_SIB+  | BTC_ION+  | BTC_LMC+  | BTC_QWARK+  | BTC_CRW+  | BTC_SWT+  | BTC_MLN+  | BTC_ARK+  | BTC_DYN+  | BTC_TKS+  | BTC_MUSIC+  | BTC_DTB+  | BTC_INCNT+  | BTC_GBYTE+  | BTC_GNT+  | BTC_NXC+  | BTC_EDG+  | BTC_LGD+  | BTC_TRST+  | ETH_GNT+  | ETH_REP+  | USDT_ETH+  | ETH_WINGS+  | BTC_WINGS+  | BTC_RLC+  | BTC_GNO+  | BTC_GUP+  | BTC_LUN+  | ETH_GUP+  | ETH_RLC+  | ETH_LUN+  | ETH_GNO+  | BTC_APX+  | BTC_HMQ+  | ETH_HMQ+  | BTC_ANT+  | ETH_TRST+  | ETH_ANT+  | BTC_SC+  | ETH_BAT+  | BTC_BAT+  | BTC_ZEN+  | BTC_1ST+  | BTC_QRL+  | ETH_1ST+  | ETH_QRL+  | BTC_CRB+  | ETH_CRB+  | ETH_LGD+  | BTC_PTOY+  | ETH_PTOY+  | BTC_MYST+  | ETH_MYST+  | BTC_CFI+  | ETH_CFI+  | BTC_BNT+  | ETH_BNT+  | BTC_NMR+  | ETH_NMR+  | ETH_LTC+  | ETH_XRP+  | BTC_SNT+  | ETH_SNT+  | BTC_DCT+  | BTC_XEL+  | BTC_MCO+  | ETH_MCO+  | BTC_ADT+  | ETH_ADT+  | BTC_FUN+  | ETH_FUN+  | BTC_PAY+  | ETH_PAY+  | BTC_MTL+  | ETH_MTL+  | BTC_STORJ+  | ETH_STORJ+  | BTC_ADX+  | ETH_ADX+  | ETH_DASH+  | ETH_SC+  | ETH_ZEC+  | USDT_ZEC+  | USDT_LTC+  | USDT_ETC+  | USDT_XRP+  | BTC_OMG+  | ETH_OMG+  | BTC_CVC+  | ETH_CVC+  | BTC_PART+  | BTC_QTUM+  | ETH_QTUM+  | ETH_XMR+  | ETH_XEM+  | ETH_XLM+  | ETH_NEO+  | USDT_XMR+  | USDT_DASH+  | ETH_BCC+  | USDT_BCC+  | BTC_BCC+  | BTC_DNT+  | ETH_DNT+  | USDT_NEO+  | ETH_WAVES+  | ETH_STRAT+  | ETH_DGB+  | ETH_FCT+  | USDT_OMG+  | BTC_ADA+  | BTC_MANA+  | ETH_MANA+  | BTC_SALT+  | ETH_SALT+  | BTC_TIX+  | ETH_TIX+  | BTC_RCN+  | ETH_RCN+  | BTC_VIB+  | ETH_VIB+  | BTC_MER+  | BTC_POWR+  | ETH_POWR+  | BTC_BTG+  | ETH_BTG+  | USDT_BTG+  | ETH_ADA+  | BTC_ENG+  | ETH_ENG+  deriving (Show, Eq, Generic)  data Ticker = Ticker   { bid :: Double@@ -146,11 +410,6 @@   parseJSON = withObject "OrderBookEntry" $ \o ->     OrderBookEntry <$> o .: "Quantity"                    <*> o .: "Rate"--k :: ByteString-k = "{\"buy\":[{\"Quantity\":12.37000000,\"Rate\":0.02525000}],\"sell\":[{\"Quantity\":32.55412402,\"Rate\":0.02540000}]}"--Right m = eitherDecode (L.fromStrict k) :: Either String OrderBook  data MarketHistory   = MarketHistory