tests
Safe HaskellSafe-Inferred
LanguageGHC2021

Hydra.Model.MockChain

Synopsis

Documentation

mockChainAndNetwork :: forall m. (MonadTimer m, MonadAsync m, MonadMask m, MonadThrow (STM m), MonadLabelledSTM m, MonadFork m, MonadDelay m) => Tracer m DirectChainLog -> [(SigningKey HydraKey, CardanoSigningKey)] -> UTxO -> m (SimulatedChainNetwork Tx m) Source #

Create a mocked chain which connects nodes through ChainSyncHandler and Chain interfaces. It calls connected chain sync handlers $sel:onRollForward:ChainSyncHandler on every blockTime and performs $sel:rollbackAndForward:SimulatedChainNetwork every couple blocks.

scriptLedger :: TxIn -> Ledger Tx Source #

A trimmed down ledger whose only purpose is to validate on-chain scripts.

The initial UTxO set is primed with a dedicated UTxO for the seedInput and

findOwnCardanoKey :: Party -> [(SigningKey HydraKey, CardanoSigningKey)] -> (VerificationKey PaymentKey, [VerificationKey PaymentKey]) Source #

Find Cardano vkey corresponding to our Hydra vkey using signing keys lookup. This is a bit cumbersome and a tribute to the fact the HydraNode itself has no direct knowlege of the cardano keys which are stored only at the ChainComponent level.

createMockNetwork :: MonadSTM m => HydraNode Tx m -> TVar m [MockHydraNode m] -> Network m (Message Tx) Source #

data MockHydraNode m Source #

Constructors

MockHydraNode 

Fields

createMockChain :: (MonadTimer m, MonadThrow (STM m)) => Tracer m DirectChainLog -> ChainContext -> SubmitTx m -> m TimeHandle -> TxIn -> LocalChainState m Tx -> Chain Tx m Source #

mkMockTxIn :: VerificationKey PaymentKey -> Word -> TxIn Source #