-- 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)