haskell-bitmex-client-0.1.0.0: lib/BitMEXClient/Wrapper/Types.hs
module BitMEXClient.Wrapper.Types
( BitMEXWrapperConfig(..)
, BitMEXReader(..)
, Environment(..)
, BitMEXApp
) where
import BitMEX
( LogContext
, LogExecWithContext
)
import BitMEXClient.CustomPrelude
import qualified Data.ByteString as BS
( ByteString
)
import qualified Data.ByteString.Lazy as LBS
( ByteString
)
import Data.Text (Text)
data Environment
= MainNet
| TestNet
deriving (Eq)
instance Show Environment where
show MainNet = "https://www.bitmex.com"
show TestNet = "https://testnet.bitmex.com"
data BitMEXWrapperConfig = BitMEXWrapperConfig
{ environment :: !Environment
, pathREST :: !(Maybe LBS.ByteString)
, pathWS :: !(Maybe LBS.ByteString)
, manager :: !(Maybe Manager)
, publicKey :: !Text
, privateKey :: !BS.ByteString
, logExecContext :: !LogExecWithContext
, logContext :: !LogContext
}
newtype BitMEXReader a = BitMEXReader
{ run :: (ReaderT BitMEXWrapperConfig IO) a
} deriving ( Applicative
, Functor
, Monad
, MonadIO
, MonadReader BitMEXWrapperConfig
)
type BitMEXApp a = Connection -> BitMEXReader a