Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.Ledger.Extended
Synopsis
-
newtype
ExtLedgerCfg
blk =
ExtLedgerCfg
{
- getExtLedgerCfg :: TopLevelConfig blk
-
data
ExtLedgerState
blk =
ExtLedgerState
{
- ledgerState :: !( LedgerState blk)
- headerState :: !( HeaderState blk)
-
data
ExtValidationError
blk
- = ExtValidationErrorLedger !( LedgerError blk)
- | ExtValidationErrorHeader !( HeaderError blk)
- decodeExtLedgerState :: ( forall s. Decoder s ( LedgerState blk)) -> ( forall s. Decoder s ( ChainDepState ( BlockProtocol blk))) -> ( forall s. Decoder s ( AnnTip blk)) -> forall s. Decoder s ( ExtLedgerState blk)
- encodeExtLedgerState :: ( LedgerState blk -> Encoding ) -> ( ChainDepState ( BlockProtocol blk) -> Encoding ) -> ( AnnTip blk -> Encoding ) -> ExtLedgerState blk -> Encoding
- castExtLedgerState :: ( Coercible ( LedgerState blk) ( LedgerState blk'), Coercible ( ChainDepState ( BlockProtocol blk)) ( ChainDepState ( BlockProtocol blk')), TipInfo blk ~ TipInfo blk') => ExtLedgerState blk -> ExtLedgerState blk'
- data family Ticked st :: Type
Extended ledger state
newtype ExtLedgerCfg blk Source #
" Ledger " configuration for the extended ledger
Since the extended ledger also does the consensus protocol validation, we also need the consensus config.
Constructors
ExtLedgerCfg | |
Fields
|
Instances
Generic ( ExtLedgerCfg blk) Source # | |
Defined in Ouroboros.Consensus.Ledger.Extended Methods from :: ExtLedgerCfg blk -> Rep ( ExtLedgerCfg blk) x Source # to :: Rep ( ExtLedgerCfg blk) x -> ExtLedgerCfg blk Source # |
|
( ConsensusProtocol ( BlockProtocol blk), NoThunks ( BlockConfig blk), NoThunks ( CodecConfig blk), NoThunks ( LedgerConfig blk), NoThunks ( StorageConfig blk)) => NoThunks ( ExtLedgerCfg blk) Source # | |
Defined in Ouroboros.Consensus.Ledger.Extended |
|
type Rep ( ExtLedgerCfg blk) Source # | |
Defined in Ouroboros.Consensus.Ledger.Extended
type
Rep
(
ExtLedgerCfg
blk) =
D1
('
MetaData
"ExtLedgerCfg" "Ouroboros.Consensus.Ledger.Extended" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" '
True
) (
C1
('
MetaCons
"ExtLedgerCfg" '
PrefixI
'
True
) (
S1
('
MetaSel
('
Just
"getExtLedgerCfg") '
NoSourceUnpackedness
'
NoSourceStrictness
'
DecidedLazy
) (
Rec0
(
TopLevelConfig
blk))))
|
data ExtLedgerState blk Source #
Extended ledger state
This is the combination of the header state and the ledger state proper.
Constructors
ExtLedgerState | |
Fields
|
Instances
data ExtValidationError blk Source #
Constructors
ExtValidationErrorLedger !( LedgerError blk) | |
ExtValidationErrorHeader !( HeaderError blk) |
Instances
Serialisation
decodeExtLedgerState :: ( forall s. Decoder s ( LedgerState blk)) -> ( forall s. Decoder s ( ChainDepState ( BlockProtocol blk))) -> ( forall s. Decoder s ( AnnTip blk)) -> forall s. Decoder s ( ExtLedgerState blk) Source #
encodeExtLedgerState :: ( LedgerState blk -> Encoding ) -> ( ChainDepState ( BlockProtocol blk) -> Encoding ) -> ( AnnTip blk -> Encoding ) -> ExtLedgerState blk -> Encoding Source #
Casts
castExtLedgerState :: ( Coercible ( LedgerState blk) ( LedgerState blk'), Coercible ( ChainDepState ( BlockProtocol blk)) ( ChainDepState ( BlockProtocol blk')), TipInfo blk ~ TipInfo blk') => ExtLedgerState blk -> ExtLedgerState blk' Source #
Type family instances
data family Ticked st :: Type Source #
" Ticked " piece of state (
LedgerState
,
LedgerView
,
ChainIndepState
)
Ticking refers to the passage of time (the ticking of the clock). When a piece of state is marked as ticked, it means that time-related changes have been applied to the state (or forecast).
Some examples of time related changes:
- Scheduled delegations might have been applied in Byron
- New leader schedule computed for Shelley
- Transition from Byron to Shelley activated in the hard fork combinator.
- Nonces switched out at the start of a new epoch.