ouroboros-consensus-0.26.0.0: Consensus layer for the Ouroboros blockchain protocol
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.HardFork.Combinator.Abstract.SingleEraBlock

Synopsis

Single era block

class (LedgerSupportsProtocol blk, InspectLedger blk, LedgerSupportsMempool blk, ConvertRawTxId (GenTx blk), BlockSupportsLedgerQuery blk, HasPartialConsensusConfig (BlockProtocol blk), HasPartialLedgerConfig blk, ConvertRawHash blk, ReconstructNestedCtxt Header blk, CommonProtocolParams blk, LedgerSupportsPeerSelection blk, ConfigSupportsNode blk, NodeInitStorage blk, BlockSupportsDiffusionPipelining blk, BlockSupportsMetrics blk, SerialiseNodeToClient blk (PartialLedgerConfig blk), CanStowLedgerTables (LedgerState blk), HasLedgerTables (LedgerState blk), HasLedgerTables (Ticked (LedgerState blk)), Eq (GenTx blk), Eq (Validated (GenTx blk)), Eq (ApplyTxErr blk), Show blk, Show (Header blk), Show (CannotForge blk), Show (ForgeStateInfo blk), Show (ForgeStateUpdateError blk)) ⇒ SingleEraBlock blk where Source #

Blocks from which we can assemble a hard fork

Methods

singleEraTransition Source #

Arguments

∷ ∀ (mk ∷ MapKind). PartialLedgerConfig blk 
EraParams

Current era parameters

Bound

Start of this era

LedgerState blk mk 
Maybe EpochNo 

Era transition

This should only report the transition point once it is stable (rollback cannot affect it anymore).

Since we need this to construct the HardForkSummary (and hence the EpochInfo), this takes the partial config, not the full config (or we'd end up with a catch-22).

singleEraInfo ∷ proxy blk → SingleEraInfo blk Source #

Era information (for use in error messages)

Era index

newtype EraIndex (xs ∷ [Type]) Source #

Constructors

EraIndex 

Fields

eraIndexEmptyEraIndex ('[] ∷ [Type]) → Void Source #

eraIndexFromIndex ∷ ∀ (xs ∷ [Type]) blk. SListI xs ⇒ Index xs blk → EraIndex xs Source #

eraIndexFromNS ∷ ∀ (xs ∷ [Type]) (f ∷ TypeType). SListI xs ⇒ NS f xs → EraIndex xs Source #

eraIndexSucc ∷ ∀ (xs ∷ [Type]) x. EraIndex xs → EraIndex (x ': xs) Source #

eraIndexToInt ∷ ∀ (xs ∷ [Type]). EraIndex xs → Int Source #

eraIndexZero ∷ ∀ x (xs ∷ [Type]). EraIndex (x ': xs) Source #