Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Request functions & response types for the Binance.US API
Synopsis
- data BinanceApiM a
- runApi :: BinanceConfig -> BinanceApiM a -> IO a
- data BinanceConfig = BinanceConfig {
- bcApiKey :: Text
- bcApiSecret :: Text
- data BinanceError = BinanceError {}
- getExchangeInfo :: (MonadHttp m, MonadCatch m) => [Text] -> m (Either BinanceError ExchangeInfo)
- newtype ExchangeInfo = ExchangeInfo {
- eiSymbols :: [SymbolDetails]
- data SymbolDetails = SymbolDetails {}
- getTradeHistory :: (MonadHttp m, MonadReader BinanceConfig m) => Text -> Maybe UTCTime -> Maybe UTCTime -> m [Trade]
- data Trade = Trade {
- tSymbol :: Text
- tId :: Integer
- tOrderId :: Integer
- tPrice :: Scientific
- tQuantity :: Scientific
- tQuoteQuantity :: Scientific
- tCommission :: Scientific
- tCommissionAsset :: Text
- tTime :: POSIXTime
- tIsBuyer :: Bool
- tIsMaker :: Bool
- tIsBestMatch :: Bool
- runSignedRequest :: (MonadHttp m, HttpMethod method, HttpBody body, HttpResponse response, HttpBodyAllowed (AllowsBody method) (ProvidesBody body), MonadReader BinanceConfig m) => method -> Url scheme -> body -> Proxy response -> Option scheme -> m response
- mkSignature :: BinanceConfig -> ByteString -> ByteString -> ByteString
API
data BinanceApiM a Source #
The monad in which Binance API requests are run.
Instances
runApi :: BinanceConfig -> BinanceApiM a -> IO a Source #
Run a series of API requests with the given Config.
data BinanceConfig Source #
Necessary configuration data for making requests to the Binance API.
BinanceConfig | |
|
Instances
data BinanceError Source #
Error responses from the API.
Instances
FromJSON BinanceError Source # | |
Defined in Web.Binance parseJSON :: Value -> Parser BinanceError # parseJSONList :: Value -> Parser [BinanceError] # | |
Read BinanceError Source # | |
Defined in Web.Binance readsPrec :: Int -> ReadS BinanceError # readList :: ReadS [BinanceError] # | |
Show BinanceError Source # | |
Defined in Web.Binance showsPrec :: Int -> BinanceError -> ShowS # show :: BinanceError -> String # showList :: [BinanceError] -> ShowS # | |
Eq BinanceError Source # | |
Defined in Web.Binance (==) :: BinanceError -> BinanceError -> Bool # (/=) :: BinanceError -> BinanceError -> Bool # | |
Ord BinanceError Source # | |
Defined in Web.Binance compare :: BinanceError -> BinanceError -> Ordering # (<) :: BinanceError -> BinanceError -> Bool # (<=) :: BinanceError -> BinanceError -> Bool # (>) :: BinanceError -> BinanceError -> Bool # (>=) :: BinanceError -> BinanceError -> Bool # max :: BinanceError -> BinanceError -> BinanceError # min :: BinanceError -> BinanceError -> BinanceError # |
Requests
Exchange Info
getExchangeInfo :: (MonadHttp m, MonadCatch m) => [Text] -> m (Either BinanceError ExchangeInfo) Source #
Get Exchange Information for the Given Symbol. Right now, just returns the requested symbol information.
Returns Left if a passed symbol is invalid.
newtype ExchangeInfo Source #
General information about the exchange. Currently we only parse out the details of requested symbols.
Instances
FromJSON ExchangeInfo Source # | |
Defined in Web.Binance parseJSON :: Value -> Parser ExchangeInfo # parseJSONList :: Value -> Parser [ExchangeInfo] # | |
Read ExchangeInfo Source # | |
Defined in Web.Binance readsPrec :: Int -> ReadS ExchangeInfo # readList :: ReadS [ExchangeInfo] # | |
Show ExchangeInfo Source # | |
Defined in Web.Binance showsPrec :: Int -> ExchangeInfo -> ShowS # show :: ExchangeInfo -> String # showList :: [ExchangeInfo] -> ShowS # | |
Eq ExchangeInfo Source # | |
Defined in Web.Binance (==) :: ExchangeInfo -> ExchangeInfo -> Bool # (/=) :: ExchangeInfo -> ExchangeInfo -> Bool # | |
Ord ExchangeInfo Source # | |
Defined in Web.Binance compare :: ExchangeInfo -> ExchangeInfo -> Ordering # (<) :: ExchangeInfo -> ExchangeInfo -> Bool # (<=) :: ExchangeInfo -> ExchangeInfo -> Bool # (>) :: ExchangeInfo -> ExchangeInfo -> Bool # (>=) :: ExchangeInfo -> ExchangeInfo -> Bool # max :: ExchangeInfo -> ExchangeInfo -> ExchangeInfo # min :: ExchangeInfo -> ExchangeInfo -> ExchangeInfo # |
data SymbolDetails Source #
The asset pairs for a trade symbol, along with Binance's precisions for each asset.
SymbolDetails | |
|
Instances
FromJSON SymbolDetails Source # | |
Defined in Web.Binance parseJSON :: Value -> Parser SymbolDetails # parseJSONList :: Value -> Parser [SymbolDetails] # | |
Read SymbolDetails Source # | |
Defined in Web.Binance readsPrec :: Int -> ReadS SymbolDetails # readList :: ReadS [SymbolDetails] # | |
Show SymbolDetails Source # | |
Defined in Web.Binance showsPrec :: Int -> SymbolDetails -> ShowS # show :: SymbolDetails -> String # showList :: [SymbolDetails] -> ShowS # | |
Eq SymbolDetails Source # | |
Defined in Web.Binance (==) :: SymbolDetails -> SymbolDetails -> Bool # (/=) :: SymbolDetails -> SymbolDetails -> Bool # | |
Ord SymbolDetails Source # | |
Defined in Web.Binance compare :: SymbolDetails -> SymbolDetails -> Ordering # (<) :: SymbolDetails -> SymbolDetails -> Bool # (<=) :: SymbolDetails -> SymbolDetails -> Bool # (>) :: SymbolDetails -> SymbolDetails -> Bool # (>=) :: SymbolDetails -> SymbolDetails -> Bool # max :: SymbolDetails -> SymbolDetails -> SymbolDetails # min :: SymbolDetails -> SymbolDetails -> SymbolDetails # |
Trade History
:: (MonadHttp m, MonadReader BinanceConfig m) | |
=> Text | Full symbol/pair of trades to fetch, e.g. |
-> Maybe UTCTime | Start of time range |
-> Maybe UTCTime | End of time range |
-> m [Trade] |
Get Trade History for the Given Symbol.
A single trade made on Binance.
Trade | |
|
Helpers
runSignedRequest :: (MonadHttp m, HttpMethod method, HttpBody body, HttpResponse response, HttpBodyAllowed (AllowsBody method) (ProvidesBody body), MonadReader BinanceConfig m) => method -> Url scheme -> body -> Proxy response -> Option scheme -> m response Source #
Run a request for a SIGNED
endpoint by inserting the signature into
the query string before making the request.
:: BinanceConfig | API Credentials |
-> ByteString | Query parameters (with no leading |
-> ByteString | Request body |
-> ByteString |
Generate a HMAC Crpto.Hash.SHA256 signature for a SIGNED
api
request.