bittrex-0.6.0.0: example/Main.hs
module Main where
import Bittrex
import Control.Monad
import Data.Function ((&))
import Data.Maybe
import Data.Text (Text)
import qualified Data.Text.IO as T
import System.Environment (getEnv, lookupEnv)
main :: IO ()
main = do
-- Get Bittrex API credentials
homeDirectory <- getEnv "HOME"
credentialFile <- fromMaybe (homeDirectory ++ "/.bittrex")
<$> lookupEnv "BITTREX_CREDENTIAL_FILE"
[api, secret] <- lines <$> readFile credentialFile
let keys = APIKeys api secret
-- Define helper functions
let putHeader x = putStrLn ("\ESC[1m" ++ x ++ "\ESC[0m")
let printInd x = let indent = " "
wrap line = indent ++ "\ESC[34m" ++ line ++ "\ESC[0m"
shown = unlines $ map wrap $ lines $ show x
in putStrLn shown
-- Public API example
putHeader "Markets"
Right ms <- getMarkets
forM_ ms (printInd . marketName)
putHeader "Currencies"
Right cs <- getCurrencies
mapM_ printInd cs
putHeader "Ticker for BTC-DOGE market"
t <- getTicker (MarketName BTC_DOGE)
printInd t
putHeader "Summary of BTC-DOGE market"
Right t <- getMarketSummary (MarketName BTC_DOGE)
printInd t
putHeader "Get market summaries"
Right t <- getMarketSummaries
printInd t
putHeader "Order book sells for for BTC-DOGE market"
book <- getOrderBookSells (MarketName BTC_DOGE)
printInd book
putHeader "Order book buys for for BTC-DOGE market"
book <- getOrderBookBuys (MarketName BTC_DOGE)
printInd book
putHeader "Market history for BTC-DOGE"
Right history <- getMarketHistory (MarketName BTC_DOGE)
forM_ history printInd
-- Market API example
putHeader "Retrieve your open orders"
Right openOrders <- getOpenOrders keys (MarketName BTC_DOGE)
forM_ openOrders printInd
-- Account API example
putHeader "Check your balances (for all currencies)"
Right balances <- getBalances keys
forM_ balances printInd