ouroboros-consensus:unstable-cardano-testlib
Safe HaskellNone
LanguageHaskell2010

Test.ThreadNet.Infra.ShelleyBasedHardFork

Description

Test infrastructure to test hard-forking from one Shelley-based era to another, e.g., Shelley to Allegra.

Synopsis

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), SerialiseConstraintsHFC (ShelleyBlock proto1 era1), SerialiseConstraintsHFC (ShelleyBlock proto2 era2), TxLimits (ShelleyBlock proto1 era1), TxLimits (ShelleyBlock proto2 era2), TranslateTxMeasure (TxMeasurePhase1 (ShelleyBlock proto1 era1)) (TxMeasurePhase1 (ShelleyBlock proto2 era2)), TranslateTxMeasure (TxMeasurePhase2 (ShelleyBlock proto1 era1)) (TxMeasurePhase2 (ShelleyBlock proto2 era2)), PreviousEra era2 ~ era1, TranslateEra era2 NewEpochState, TranslateEra era2 (Tx 'TopTx), TranslationError era2 NewEpochState ~ Void, ProtoCrypto proto1 ~ ProtoCrypto proto2, PraosCrypto (ProtoCrypto proto1), proto1 ~ TPraos (ProtoCrypto proto1), proto1 ~ proto2, MemPack (TxOut (ShelleyBlock proto1 era1)), MemPack (TxOut (ShelleyBlock proto2 era2))) Source #

protocolInfoShelleyBasedHardFork ∷ ∀ m proto1 era1 proto2 era2. (KESAgentContext (ProtoCrypto proto2) m, ShelleyBasedHardForkConstraints proto1 era1 proto2 era2) ⇒ SomeHasFS m → ProtocolParamsShelleyBased (ProtoCrypto proto1) → ProtVer → ProtVer → TransitionConfig era2 → TriggerHardFork → m (ProtocolInfo (ShelleyBasedHardForkBlock proto1 era1 proto2 era2), Tracer m KESAgentClientTrace → m [MkBlockForging m (ShelleyBasedHardForkBlock proto1 era1 proto2 era2)]) Source #

Orphan instances

ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 ⇒ SerializeTablesWithHint LedgerState (HardForkBlock (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) Source # 
Instance details

ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 ⇒ IndexedMemPack LedgerState (HardForkBlock (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) (DefaultHardForkTxOut (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) Source # 
Instance details

Eq (CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) Source # 
Instance details

Methods

(==) ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → Bool #

(/=) ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → Bool #

Ord (CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) Source # 
Instance details

Methods

compare ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → Ordering #

(<) ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → Bool #

(<=) ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → Bool #

(>) ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → Bool #

(>=) ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → Bool #

max ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) #

min ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) #

Show (CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) Source # 
Instance details

Methods

showsPrec ∷ Int → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → ShowS #

show ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → String #

showList ∷ [CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2)] → ShowS #

MemPack (CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) Source # 
Instance details

Methods

typeName ∷ String Source #

packedByteCount ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → Int Source #

packM ∷ CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → Pack s () Source #

unpackM ∷ Buffer b ⇒ Unpack s b (CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) Source #

NoThunks (CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) Source # 
Instance details

Methods

noThunks ∷ Context → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → IO (Maybe ThunkInfo) Source #

wNoThunks ∷ Context → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → IO (Maybe ThunkInfo) Source #

showTypeOf ∷ Proxy (CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) → String Source #

ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 ⇒ IndexedMemPack (Ticked LedgerState) (HardForkBlock (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) (DefaultHardForkTxOut (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) Source # 
Instance details

ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 ⇒ BlockSupportsHFLedgerQuery '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2] Source # 
Instance details

Methods

answerBlockQueryHFLookup ∷ (All SingleEraBlock '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2], Monad m) ⇒ Index '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2] x → ExtLedgerCfg x → BlockQuery x 'QFLookupTables result → ReadOnlyForker' m (HardForkBlock '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2]) → m result Source #

answerBlockQueryHFTraverse ∷ (All SingleEraBlock '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2], Monad m) ⇒ Index '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2] x → ExtLedgerCfg x → BlockQuery x 'QFTraverseTables result → ReadOnlyForker' m (HardForkBlock '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2]) → m result Source #

queryLedgerGetTraversingFilter ∷ Index '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2] x → BlockQuery x 'QFTraverseTables result → TxOut (HardForkBlock '[ShelleyBlock proto1 era1, ShelleyBlock proto2 era2]) → Bool Source #

ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 ⇒ CanHardFork (ShelleyBasedHardForkEras proto1 era1 proto2 era2) Source # 
Instance details

Associated Types

type HardForkTxMeasurePhase1 (ShelleyBasedHardForkEras proto1 era1 proto2 era2) 
Instance details

Defined in Test.ThreadNet.Infra.ShelleyBasedHardFork

type HardForkTxMeasurePhase1 (ShelleyBasedHardForkEras proto1 era1 proto2 era2) = TxMeasurePhase1 (ShelleyBlock proto2 era2)
type HardForkTxMeasurePhase2 (ShelleyBasedHardForkEras proto1 era1 proto2 era2) 
Instance details

Defined in Test.ThreadNet.Infra.ShelleyBasedHardFork

type HardForkTxMeasurePhase2 (ShelleyBasedHardForkEras proto1 era1 proto2 era2) = TxMeasurePhase2 (ShelleyBlock proto2 era2)
ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 ⇒ HasCanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) Source # 
Instance details

Associated Types

newtype CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) 
Instance details

Defined in Test.ThreadNet.Infra.ShelleyBasedHardFork

newtype CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) = ShelleyHFCTxIn {}

Methods

injectCanonicalTxIn ∷ Index (ShelleyBasedHardForkEras proto1 era1 proto2 era2) x → TxIn x → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) Source #

ejectCanonicalTxIn ∷ Index (ShelleyBasedHardForkEras proto1 era1 proto2 era2) x → CanonicalTxIn (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → TxIn x Source #

ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 ⇒ HasHardForkTxOut (ShelleyBasedHardForkEras proto1 era1 proto2 era2) Source # 
Instance details

Associated Types

type HardForkTxOut (ShelleyBasedHardForkEras proto1 era1 proto2 era2) 
Instance details

Defined in Test.ThreadNet.Infra.ShelleyBasedHardFork

type HardForkTxOut (ShelleyBasedHardForkEras proto1 era1 proto2 era2) = DefaultHardForkTxOut (ShelleyBasedHardForkEras proto1 era1 proto2 era2)

Methods

injectHardForkTxOut ∷ Index (ShelleyBasedHardForkEras proto1 era1 proto2 era2) x → TxOut x → HardForkTxOut (ShelleyBasedHardForkEras proto1 era1 proto2 era2) Source #

ejectHardForkTxOut ∷ Index (ShelleyBasedHardForkEras proto1 era1 proto2 era2) x → HardForkTxOut (ShelleyBasedHardForkEras proto1 era1 proto2 era2) → TxOut x Source #

txOutEjections ∷ NP ((K (NS WrapTxOut (ShelleyBasedHardForkEras proto1 era1 proto2 era2)) ∷ Type → Type) -.-> WrapTxOut) (ShelleyBasedHardForkEras proto1 era1 proto2 era2) Source #

txOutTranslations ∷ Tails (Fn2 WrapTxOut) (ShelleyBasedHardForkEras proto1 era1 proto2 era2) Source #

ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 ⇒ SerialiseHFC (ShelleyBasedHardForkEras proto1 era1 proto2 era2) Source # 
Instance details

ShelleyBasedHardForkConstraints proto1 era1 proto2 era2 ⇒ SupportedNetworkProtocolVersion (ShelleyBasedHardForkBlock proto1 era1 proto2 era2) Source # 
Instance details

(TxGen (ShelleyBlock proto1 era1), TxGen (ShelleyBlock proto2 era2), ShelleyBasedHardForkConstraints proto1 era1 proto2 era2) ⇒ TxGen (ShelleyBasedHardForkBlock proto1 era1 proto2 era2) Source #

Use a generic implementation for TxGen

Instance details

Associated Types

type TxGenExtra (ShelleyBasedHardForkBlock proto1 era1 proto2 era2) 
Instance details

Defined in Test.ThreadNet.Infra.ShelleyBasedHardFork

type TxGenExtra (ShelleyBasedHardForkBlock proto1 era1 proto2 era2) = NP WrapTxGenExtra (ShelleyBasedHardForkEras proto1 era1 proto2 era2)

Methods

testGenTxs ∷ CoreNodeId → NumCoreNodes → SlotNo → TopLevelConfig (ShelleyBasedHardForkBlock proto1 era1 proto2 era2) → TxGenExtra (ShelleyBasedHardForkBlock proto1 era1 proto2 era2) → LedgerState (ShelleyBasedHardForkBlock proto1 era1 proto2 era2) ValuesMK → Gen [GenTx (ShelleyBasedHardForkBlock proto1 era1 proto2 era2)]