Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Web.Gemini
Description
Request functions & response types for the Gemini Exchange API.
Synopsis
- data GeminiApiM a
- runApi :: GeminiConfig -> GeminiApiM a -> IO a
- data GeminiConfig = GeminiConfig {
- gcApiKey :: Text
- gcApiSecret :: Text
- data GeminiError = GeminiError {}
- getSymbolDetails :: MonadHttp m => Text -> m SymbolDetails
- data SymbolDetails = SymbolDetails {}
- getMyTrades :: Maybe (UTCTime, UTCTime) -> GeminiApiM [Trade]
- data Trade = Trade {
- tId :: Integer
- tSymbol :: Text
- tPrice :: Scientific
- tAmount :: Scientific
- tFeeCurrency :: Text
- tFeeAmount :: Scientific
- tIsBuy :: Bool
- tIsAggressor :: Bool
- tTimestamp :: POSIXTime
- tOrderId :: Text
- getMyTransfers :: Maybe (UTCTime, UTCTime) -> GeminiApiM [Transfer]
- data Transfer = Transfer {}
- getMyEarnTransactions :: Maybe (UTCTime, UTCTime) -> GeminiApiM [EarnTransaction]
- data EarnHistory = EarnHistory {}
- data EarnTransaction = EarnTransaction {}
- protectedGeminiRequest :: (MonadHttp m, HttpMethod method, HttpBodyAllowed (AllowsBody method) (ProvidesBody NoReqBody), ToJSON body, FromJSON response, MonadReader GeminiConfig m) => method -> Url scheme -> body -> m (JsonResponse response)
- retryWithRateLimit :: (MonadHttp m, MonadCatch m) => m a -> m a
- createSignature :: GeminiConfig -> ByteString -> ByteString
- makeNonce :: MonadIO m => m Integer
Documentation
data GeminiApiM a Source #
Monad in which Gemini API requests are run.
Instances
runApi :: GeminiConfig -> GeminiApiM a -> IO a Source #
Run a series of API requests with the given Config.
data GeminiConfig Source #
Required configuration data for making requests to the Gemini API.
Constructors
GeminiConfig | |
Fields
|
Instances
Read GeminiConfig Source # | |
Defined in Web.Gemini Methods readsPrec :: Int -> ReadS GeminiConfig # readList :: ReadS [GeminiConfig] # | |
Show GeminiConfig Source # | |
Defined in Web.Gemini Methods showsPrec :: Int -> GeminiConfig -> ShowS # show :: GeminiConfig -> String # showList :: [GeminiConfig] -> ShowS # | |
Eq GeminiConfig Source # | |
Defined in Web.Gemini | |
Ord GeminiConfig Source # | |
Defined in Web.Gemini Methods compare :: GeminiConfig -> GeminiConfig -> Ordering # (<) :: GeminiConfig -> GeminiConfig -> Bool # (<=) :: GeminiConfig -> GeminiConfig -> Bool # (>) :: GeminiConfig -> GeminiConfig -> Bool # (>=) :: GeminiConfig -> GeminiConfig -> Bool # max :: GeminiConfig -> GeminiConfig -> GeminiConfig # min :: GeminiConfig -> GeminiConfig -> GeminiConfig # | |
MonadReader GeminiConfig GeminiApiM Source # | |
Defined in Web.Gemini Methods ask :: GeminiApiM GeminiConfig # local :: (GeminiConfig -> GeminiConfig) -> GeminiApiM a -> GeminiApiM a # reader :: (GeminiConfig -> a) -> GeminiApiM a # |
data GeminiError Source #
Potential error response body from the API.
Constructors
GeminiError | |
Instances
FromJSON GeminiError Source # | |
Defined in Web.Gemini | |
Read GeminiError Source # | |
Defined in Web.Gemini Methods readsPrec :: Int -> ReadS GeminiError # readList :: ReadS [GeminiError] # readPrec :: ReadPrec GeminiError # readListPrec :: ReadPrec [GeminiError] # | |
Show GeminiError Source # | |
Defined in Web.Gemini Methods showsPrec :: Int -> GeminiError -> ShowS # show :: GeminiError -> String # showList :: [GeminiError] -> ShowS # | |
Eq GeminiError Source # | |
Defined in Web.Gemini | |
Ord GeminiError Source # | |
Defined in Web.Gemini Methods compare :: GeminiError -> GeminiError -> Ordering # (<) :: GeminiError -> GeminiError -> Bool # (<=) :: GeminiError -> GeminiError -> Bool # (>) :: GeminiError -> GeminiError -> Bool # (>=) :: GeminiError -> GeminiError -> Bool # max :: GeminiError -> GeminiError -> GeminiError # min :: GeminiError -> GeminiError -> GeminiError # |
Requests
Symbol Details
getSymbolDetails :: MonadHttp m => Text -> m SymbolDetails Source #
Fetch the details on a supported symbol.
data SymbolDetails Source #
Currency & Precision details for a Trade
Symbol.
Constructors
SymbolDetails | |
Fields |
Instances
Trade History
Arguments
:: Maybe (UTCTime, UTCTime) | Optional |
-> GeminiApiM [Trade] |
Fetch all my Gemini Trades
A single, completed Trade.
Constructors
Trade | |
Fields
|
Instances
Transfer History
Arguments
:: Maybe (UTCTime, UTCTime) | Optional |
-> GeminiApiM [Transfer] |
Fetch all my Gemini Transfers
A single fiat or cryptocurrency transfer, credit, deposit, or withdrawal.
Constructors
Transfer | |
Instances
Earn History
getMyEarnTransactions :: Maybe (UTCTime, UTCTime) -> GeminiApiM [EarnTransaction] Source #
Fetch all my Gemini Earn Transactions
data EarnHistory Source #
Earn Transactions grouped by a Provider/Borrower.
Constructors
EarnHistory | |
Fields |
Instances
FromJSON EarnHistory Source # | |
Defined in Web.Gemini |
data EarnTransaction Source #
A single Earn transaction.
Constructors
EarnTransaction | |
Fields
|
Instances
Helpers
protectedGeminiRequest :: (MonadHttp m, HttpMethod method, HttpBodyAllowed (AllowsBody method) (ProvidesBody NoReqBody), ToJSON body, FromJSON response, MonadReader GeminiConfig m) => method -> Url scheme -> body -> m (JsonResponse response) Source #
Run a request that requires authorization against the Gemini API.
retryWithRateLimit :: (MonadHttp m, MonadCatch m) => m a -> m a Source #
Attempt a request & retry if a 429
RateLimited
error is returned.
We attempt to parse the retry wait time from the message
field but
fallback to one second.
Arguments
:: GeminiConfig | API Credentials |
-> ByteString | Base64-encoded request body. |
-> ByteString |