| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Singular.Provider.Koios.Provider
Description
The shipping generic Koios constructor. The caller supplies scope and observation effects; the shared client owns every HTTP decoder and page.
Synopsis
- koiosProvider :: Monad m => ProviderRuntime m -> Network -> m (Either ReadFailure TimeSource) -> Koios m -> LedgerProvider NoWitness m
- data ProviderRuntime (m :: Type -> Type) = ProviderRuntime {
- scopedSession :: forall a. (SessionId -> m a) -> (SessionId -> m ()) -> m a
- sessionOpen :: SessionId -> m Bool
- recordEvent :: ProviderEvent -> m ()
- measureRead :: forall a. SessionId -> Text -> (a -> ProviderEvent) -> m a -> m a
- data ProviderEvent
- = SessionOpened SessionId Network
- | SessionClosed SessionId
- | RawExchange SessionId RawRequest Exchange
- | RawTime SessionId TimeSource
- | RawTimeFailure SessionId ReadFailure
- data TimeSource = TimeSource NetworkTimeManifest ByteString ByteString
Documentation
koiosProvider :: Monad m => ProviderRuntime m -> Network -> m (Either ReadFailure TimeSource) -> Koios m -> LedgerProvider NoWitness m Source #
data ProviderRuntime (m :: Type -> Type) Source #
Scope effects are explicit. Pure State implementations keep their open session set and events in State; IO implementations release on exceptions.
Constructors
| ProviderRuntime | |
Fields
| |
data ProviderEvent Source #
Every exchange and local raw time read carries its acquisition identity. Authorization headers are removed before an observation leaves this module.
Constructors
| SessionOpened SessionId Network | |
| SessionClosed SessionId | |
| RawExchange SessionId RawRequest Exchange | |
| RawTime SessionId TimeSource | |
| RawTimeFailure SessionId ReadFailure |
data TimeSource #
Constructors
| TimeSource NetworkTimeManifest ByteString ByteString |