-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Bindings for Cryptsy cryptocurrency exchange API. -- @package cryptsy-api @version 0.2.1 -- | Default type for times returned by the API. module Cryptsy.API.Public.Types.Time -- | Native date/time type for the API, newtype for custom FromJSON -- instance, which only accepts JSON strings newtype CryptsyTime CryptsyTime :: LocalTime -> CryptsyTime toLocalTime :: CryptsyTime -> LocalTime instance Eq CryptsyTime instance Ord CryptsyTime instance Show CryptsyTime instance Read CryptsyTime instance NFData CryptsyTime instance ParseTime CryptsyTime instance FormatTime CryptsyTime instance FromJSON CryptsyTime -- | Sum type for any error conditions in a API request. module Cryptsy.API.Public.Types.Error -- | error conditions w/ debugging information for an API request data CryptsyError BadURL :: String -> HttpException -> CryptsyError badURL :: CryptsyError -> String httpException :: CryptsyError -> HttpException FailReadResponse :: Request -> HttpException -> CryptsyError request :: CryptsyError -> Request httpException :: CryptsyError -> HttpException FailParseResponse :: ParsingError -> CryptsyError parsingError :: CryptsyError -> ParsingError ErrorResponse :: Value -> CryptsyError errorValue :: CryptsyError -> Value UnsuccessfulResponse :: Value -> CryptsyError jsonResponse :: CryptsyError -> Value FailParseReturn :: Value -> String -> CryptsyError dataValue :: CryptsyError -> Value errorMessage :: CryptsyError -> String instance Show CryptsyError -- | Default numeric type for prices, quanities, and total returned from -- the API. module Cryptsy.API.Public.Types.Num -- | Custom resolution for Fixed; 1e8. data E8 -- | Native number type for the API, newtype for custom FromJSON instance, -- which only accepts JSON strings. newtype CryptsyNum CryptsyNum :: Fixed E8 -> CryptsyNum toFixed :: CryptsyNum -> Fixed E8 instance Eq CryptsyNum instance Ord CryptsyNum instance Show CryptsyNum instance Read CryptsyNum instance Num CryptsyNum instance Real CryptsyNum instance Fractional CryptsyNum instance Enum CryptsyNum instance RealFrac CryptsyNum instance FromJSON CryptsyNum instance HasResolution E8 -- | Type for individual orders (order book entries) from the API. module Cryptsy.API.Public.Types.Order -- | generalized order data GOrder p q t Order :: p -> q -> t -> GOrder p q t orderPrice :: GOrder p q t -> p orderQuantity :: GOrder p q t -> q orderTotal :: GOrder p q t -> t -- | default order type Order = GOrder CryptsyNum CryptsyNum CryptsyNum -- | Combine component parsers into JSON Object parser. parseOrder :: (Value -> Parser p) -> (Value -> Parser q) -> (Value -> Parser t) -> Value -> Parser (GOrder p q t) instance (Show p, Show q, Show t) => Show (GOrder p q t) instance (FromJSON p, FromJSON q, FromJSON t) => FromJSON (GOrder p q t) -- | Type for individual executed trades from the API. module Cryptsy.API.Public.Types.Trade -- | generalized trade data GTrade dt p q t Trade :: Text -> dt -> p -> q -> t -> GTrade dt p q t tradeId :: GTrade dt p q t -> Text tradeTime :: GTrade dt p q t -> dt tradePrice :: GTrade dt p q t -> p tradeQuantity :: GTrade dt p q t -> q tradeTotal :: GTrade dt p q t -> t -- | standard trade type Trade = GTrade CryptsyTime CryptsyNum CryptsyNum CryptsyNum -- | Combine component parsers into JSON Object parser. parseTrade :: (Value -> Parser dt) -> (Value -> Parser p) -> (Value -> Parser q) -> (Value -> Parser t) -> Value -> Parser (GTrade dt p q t) instance (Show dt, Show p, Show q, Show t) => Show (GTrade dt p q t) instance (FromJSON dt, FromJSON p, FromJSON q, FromJSON t) => FromJSON (GTrade dt p q t) -- | Type for order books returned from the API. module Cryptsy.API.Public.Types.OrderBook -- | general order book data GOrderBook p q t OrderBook :: Text -> Text -> Text -> Text -> Text -> Text -> Vector (GOrder p q t) -> Vector (GOrder p q t) -> GOrderBook p q t obMarketId :: GOrderBook p q t -> Text obLabel :: GOrderBook p q t -> Text obPrimaryName :: GOrderBook p q t -> Text obPrimaryCode :: GOrderBook p q t -> Text obSecondaryName :: GOrderBook p q t -> Text obSecondaryCode :: GOrderBook p q t -> Text obSellOrders :: GOrderBook p q t -> Vector (GOrder p q t) obBuyOrders :: GOrderBook p q t -> Vector (GOrder p q t) -- | default order book type OrderBook = GOrderBook CryptsyNum CryptsyNum CryptsyNum -- | Build parser for orderbook from parser for a single order. parseOrderBook :: (Value -> Parser (GOrder p q t)) -> Value -> Parser (GOrderBook p q t) instance (Show p, Show q, Show t) => Show (GOrderBook p q t) instance FromJSON (GOrder p q t) => FromJSON (GOrderBook p q t) -- | Type for individual market information returned from API. module Cryptsy.API.Public.Types.Market -- | generalized market data GMarket p q dt t Market :: Text -> Text -> p -> q -> dt -> Text -> Text -> Text -> Text -> Vector (GTrade dt p q t) -> Vector (GOrder p q t) -> Vector (GOrder p q t) -> GMarket p q dt t mktMarketid :: GMarket p q dt t -> Text mktLabel :: GMarket p q dt t -> Text mktLastTradePrice :: GMarket p q dt t -> p mktVolume :: GMarket p q dt t -> q mktLastTradeTime :: GMarket p q dt t -> dt mktPrimaryName :: GMarket p q dt t -> Text mktPrimaryCode :: GMarket p q dt t -> Text mktSecondaryName :: GMarket p q dt t -> Text mktSecondaryCode :: GMarket p q dt t -> Text mktRecentTrades :: GMarket p q dt t -> Vector (GTrade dt p q t) mktSellOrders :: GMarket p q dt t -> Vector (GOrder p q t) mktBuyOrders :: GMarket p q dt t -> Vector (GOrder p q t) -- | default market type Market = GMarket CryptsyNum CryptsyNum CryptsyTime CryptsyNum -- | Combine component parsers into JSON Object parser. parseMarket :: (Value -> Parser p) -> (Value -> Parser q) -> (Value -> Parser dt) -> (Value -> Parser t) -> Value -> Parser (GMarket p q dt t) instance (Show p, Show q, Show dt, Show t) => Show (GMarket p q dt t) instance (FromJSON p, FromJSON q, FromJSON dt, FromJSON t) => FromJSON (GMarket p q dt t) -- | Monad in which public API requests occur. module Cryptsy.API.Public.Types.Monad -- | request monad type PubCryptsy = ReaderT Manager (EitherT CryptsyError (StateT (Maybe CookieJar) IO)) -- | Type for all data returned by a market data request. module Cryptsy.API.Public.Types.MarketData -- | general market data parameterized by types for prices, quantities, -- date/time values, and totals (price * quantity) newtype GMarketData p q dt t MarketData :: HashMap Text (GMarket p q dt t) -> GMarketData p q dt t markets :: GMarketData p q dt t -> HashMap Text (GMarket p q dt t) -- | default market data type MarketData = GMarketData CryptsyNum CryptsyNum CryptsyTime CryptsyNum -- | Build parser for multiple markets from parser for single market. parseMarketData :: (Value -> Parser (GMarket p q dt t)) -> Value -> Parser (GMarketData p q dt t) instance (Show p, Show q, Show dt, Show t) => Show (GMarketData p q dt t) instance FromJSON (GMarket p q dt t) => FromJSON (GMarketData p q dt t) -- | Request for a single order book by market id. module Cryptsy.API.Public.OrderBook -- | single orderbook API request singleOrderBook :: FromJSON (GOrderBook p q t) => Text -> PubCryptsy (GOrderBook p q t) -- | Type and request for order book for all markets. module Cryptsy.API.Public.OrderData -- | general order data parameterized by types for prices, quantities, and -- totals (price * quantity) newtype GOrderData p q t OrderData :: HashMap Text (GOrderBook p q t) -> GOrderData p q t orderBooks :: GOrderData p q t -> HashMap Text (GOrderBook p q t) -- | default order data type OrderData = GOrderData CryptsyNum CryptsyNum CryptsyNum -- | Build parser for multiple orderbooks from parser for single orderbook. parseOrderData :: (Value -> Parser (GOrderBook p q t)) -> Value -> Parser (GOrderData p q t) -- | Request full order book for all markets. orderData :: FromJSON (GOrderData p q t) => PubCryptsy (GOrderData p q t) instance (Show p, Show q, Show t) => Show (GOrderData p q t) instance FromJSON (GOrderBook p q t) => FromJSON (GOrderData p q t) -- | Request for a single market by market id. module Cryptsy.API.Public.Market -- | single market API request singleMarket :: FromJSON (GMarket p q dt t) => Text -> PubCryptsy (GMarket p q dt t) -- | Request for new-style market data, without ambiguous keys module Cryptsy.API.Public.MarketData.New -- | Request all markets. marketData :: FromJSON (GMarketData p q dt t) => PubCryptsy (GMarketData p q dt t) -- | Request for market data in old format, with ambiguous keys module Cryptsy.API.Public.MarketData.Old -- | Request all markets in old format. oldMarketData :: FromJSON (GMarketData p q dt t) => PubCryptsy (GMarketData p q dt t) -- | Re-exports the entire Cryptsy.API.Public.Types.* heirarchy. module Cryptsy.API.Public.Types -- | Re-exports the entire Cryptsy.API.Public.* heirarchy. module Cryptsy.API.Public -- | Like defaultRunPubCryptsy, but the resulting cookir jar is -- ignored. defaultEvalPubCryptsy :: PubCryptsy a -> IO (Either CryptsyError a) -- | Converts a public cryptsy action to an action in the IO Monad, using a -- new manager created from tlsManagerSettings and closed as the -- last part of the IO action and starting from an empty cookie jar. Both -- the resulting cookie jar and either the resolt of the public cryptsy -- action or the first cryptsy error encountered are the results of the -- IO action. defaultRunPubCryptsy :: PubCryptsy a -> IO (Either CryptsyError a, CookieJar)