Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Hydra.Model.MockChain
Synopsis
- mockChainAndNetwork :: forall m. (MonadTimer m, MonadAsync m, MonadMask m, MonadThrow (STM m), MonadLabelledSTM m, MonadFork m, MonadDelay m) => Tracer m DirectChainLog -> [(SigningKey HydraKey, CardanoSigningKey)] -> ContestationPeriod -> m (SimulatedChainNetwork Tx m)
- findOwnCardanoKey :: Party -> [(SigningKey HydraKey, CardanoSigningKey)] -> (VerificationKey PaymentKey, [VerificationKey PaymentKey])
- createMockNetwork :: MonadSTM m => HydraNode Tx m -> TVar m [MockHydraNode m] -> Network m (Message Tx)
- data MockHydraNode m = MockHydraNode {
- node :: HydraNode Tx m
- chainHandler :: ChainSyncHandler m
- createMockChain :: (MonadTimer m, MonadThrow (STM m)) => Tracer m DirectChainLog -> ChainContext -> SubmitTx m -> m TimeHandle -> TxIn -> LocalChainState m -> Chain Tx m
- mkMockTxIn :: VerificationKey PaymentKey -> Word -> TxIn
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)] -> ContestationPeriod -> 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.
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 -> Chain Tx m Source #
mkMockTxIn :: VerificationKey PaymentKey -> Word -> TxIn Source #