Safe Haskell | None |
---|---|
Language | Haskell2010 |
Test.ThreadNet.Infra.ShelleyBasedHardFork
Description
Test infrastructure to test hard-forking from one Shelley-based era to another, e.g., Shelley to Allegra.
Synopsis
- type ShelleyBasedHardForkBlock proto1 era1 proto2 era2 = HardForkBlock (ShelleyBasedHardForkEras proto1 era1 proto2 era2)
- type ShelleyBasedHardForkEras proto1 era1 proto2 era2 = '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2]
- pattern GenTxShelley1 ∷ GenTx (ShelleyBlock proto1 era1) → ShelleyBasedHardForkGenTx proto1 era1 proto2 era2
- pattern GenTxShelley2 ∷ GenTx (ShelleyBlock proto2 era2) → ShelleyBasedHardForkGenTx proto1 era1 proto2 era2
- type ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 = (ShelleyCompatible proto1 era1, ShelleyCompatible proto2 era2, LedgerSupportsProtocol (ShelleyBlock proto1 era1), LedgerSupportsProtocol (ShelleyBlock proto2 era2), TxLimits (ShelleyBlock proto1 era1), TxLimits (ShelleyBlock proto2 era2), BlockProtocol (ShelleyBlock proto1 era1) ~ proto1, BlockProtocol (ShelleyBlock proto2 era2) ~ proto2, TranslateTxMeasure (TxMeasure (ShelleyBlock proto1 era1)) (TxMeasure (ShelleyBlock proto2 era2)), PreviousEra era2 ~ era1, TranslateEra era2 NewEpochState, TranslateEra era2 WrapTx, TranslationError era2 NewEpochState ~ Void, ProtoCrypto proto1 ~ ProtoCrypto proto2, PraosCrypto (ProtoCrypto proto1), proto1 ~ TPraos (ProtoCrypto proto1), proto1 ~ proto2)
- protocolInfoShelleyBasedHardFork ∷ (IOLike m, ShelleyBasedHardForkConstraints proto1 era1 proto2 era2) ⇒ ProtocolParamsShelleyBased (ProtoCrypto proto1) → ProtVer → ProtVer → TransitionConfig era2 → TriggerHardFork → (ProtocolInfo (ShelleyBasedHardForkBlock proto1 era1 proto2 era2), m [BlockForging m (ShelleyBasedHardForkBlock proto1 era1 proto2 era2)])
Blocks
type ShelleyBasedHardForkBlock proto1 era1 proto2 era2 = HardForkBlock (ShelleyBasedHardForkEras proto1 era1 proto2 era2) Source #
type ShelleyBasedHardForkEras proto1 era1 proto2 era2 = '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2] Source #
Two eras, both Shelley-based.
Transactions
pattern GenTxShelley1 ∷ GenTx (ShelleyBlock proto1 era1) → ShelleyBasedHardForkGenTx proto1 era1 proto2 era2 Source #
pattern GenTxShelley2 ∷ GenTx (ShelleyBlock proto2 era2) → ShelleyBasedHardForkGenTx proto1 era1 proto2 era2 Source #
Node
type ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 = (ShelleyCompatible proto1 era1, ShelleyCompatible proto2 era2, LedgerSupportsProtocol (ShelleyBlock proto1 era1), LedgerSupportsProtocol (ShelleyBlock proto2 era2), TxLimits (ShelleyBlock proto1 era1), TxLimits (ShelleyBlock proto2 era2), BlockProtocol (ShelleyBlock proto1 era1) ~ proto1, BlockProtocol (ShelleyBlock proto2 era2) ~ proto2, TranslateTxMeasure (TxMeasure (ShelleyBlock proto1 era1)) (TxMeasure (ShelleyBlock proto2 era2)), PreviousEra era2 ~ era1, TranslateEra era2 NewEpochState, TranslateEra era2 WrapTx, TranslationError era2 NewEpochState ~ Void, ProtoCrypto proto1 ~ ProtoCrypto proto2, PraosCrypto (ProtoCrypto proto1), proto1 ~ TPraos (ProtoCrypto proto1), proto1 ~ proto2) Source #
protocolInfoShelleyBasedHardFork ∷ (IOLike m, ShelleyBasedHardForkConstraints proto1 era1 proto2 era2) ⇒ ProtocolParamsShelleyBased (ProtoCrypto proto1) → ProtVer → ProtVer → TransitionConfig era2 → TriggerHardFork → (ProtocolInfo (ShelleyBasedHardForkBlock proto1 era1 proto2 era2), m [BlockForging m (ShelleyBasedHardForkBlock proto1 era1 proto2 era2)]) Source #