hydra-node
Safe HaskellSafe-Inferred
LanguageGHC2021

Hydra.Chain.Blockfrost

Contents

Synopsis

Documentation

newtype BlockfrostBackend a Source #

Instances

Instances details
MonadIO BlockfrostBackend Source # 
Instance details

Defined in Hydra.Chain.Blockfrost

Applicative BlockfrostBackend Source # 
Instance details

Defined in Hydra.Chain.Blockfrost

Functor BlockfrostBackend Source # 
Instance details

Defined in Hydra.Chain.Blockfrost

Monad BlockfrostBackend Source # 
Instance details

Defined in Hydra.Chain.Blockfrost

ChainBackend BlockfrostBackend Source # 
Instance details

Defined in Hydra.Chain.Blockfrost

MonadCatch BlockfrostBackend Source # 
Instance details

Defined in Hydra.Chain.Blockfrost

MonadThrow BlockfrostBackend Source # 
Instance details

Defined in Hydra.Chain.Blockfrost

data BlockfrostEnv Source #

Constructors

BlockfrostEnv 

Fields

memoizeIO :: TVar IO (Maybe a) -> IO a -> IO a Source #

Return the cached value or run the action once and store its result. Concurrent callers may run the action more than once (last write wins), which is safe for immutable values.

runQuery :: BlockfrostClientT IO a -> BlockfrostBackend a Source #

Run a Blockfrost client action with the backend's project.

withNetworkId :: (NetworkId -> BlockfrostClientT IO a) -> BlockfrostBackend a Source #

Run a Blockfrost client action that needs the (cached) network id.

blockfrostChain :: (MonadIO m, MonadFail m, MonadCatch m, MonadAsync m, MonadDelay m, MonadLabelledSTM m, MonadMask m) => Tracer m CardanoChainLog -> TQueue m (Tx, TMVar m (Maybe (PostTxError Tx))) -> Project -> m Genesis -> NonEmpty ChainPoint -> ChainSyncHandler m -> TinyWallet m -> m () Source #

blockfrostChainFollow :: forall m. (MonadIO m, MonadFail m, MonadCatch m, MonadDelay m, MonadLabelledSTM m, MonadMask m) => Tracer m CardanoChainLog -> Project -> m Genesis -> NonEmpty ChainPoint -> ChainSyncHandler m -> TinyWallet m -> m () Source #

processBlock :: (MonadIO m, MonadThrow m) => Tracer m CardanoChainLog -> Project -> ChainSyncHandler m -> TinyWallet m -> Block -> m () Source #

blockfrostSubmissionClient Source #

Arguments

:: forall m. MonadSTM m 
=> Tracer m CardanoChainLog 
-> (Tx -> m (Either Text TxHash))

How to submit a transaction, yielding a rendered failure reason or the transaction hash. Must not throw.

-> TQueue m (Tx, TMVar m (Maybe (PostTxError Tx))) 
-> m () 

submitViaBlockfrost :: MonadIO m => Project -> Tx -> m (Either Text TxHash) Source #

Submit a transaction via Blockfrost, rendering both transport and API level failures into a reason.

toChainPoint :: Block -> ChainPoint Source #

maxBlockBatch :: Int Source #

Maximum number of blocks fetched per poll iteration (the Blockfrost page size limit).

retryOnBlockfrostError :: (MonadIO m, MonadMask m) => Tracer m CardanoChainLog -> RetryPolicyM m -> (RetryStatus -> m a) -> m a Source #

Helpers

toTx :: MonadThrow m => TransactionCBOR -> m Tx Source #