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 +7/−1
- example/Main.hs +45/−0
- src/Bittrex/API.hs +8/−7
- src/Bittrex/Types.hs +267/−8
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