ouroboros-consensus
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Ledger.Extended

Synopsis

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 

Instances

Instances details
Generic (ExtLedgerCfg blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Associated Types

type Rep (ExtLedgerCfg blk) 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type Rep (ExtLedgerCfg blk) = D1 ('MetaData "ExtLedgerCfg" "Ouroboros.Consensus.Ledger.Extended" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "ExtLedgerCfg" 'PrefixI 'True) (S1 ('MetaSel ('Just "getExtLedgerCfg") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TopLevelConfig blk))))

Methods

from ∷ ExtLedgerCfg blk → Rep (ExtLedgerCfg blk) x #

to ∷ Rep (ExtLedgerCfg blk) x → ExtLedgerCfg blk #

(ConsensusProtocol (BlockProtocol blk), NoThunks (BlockConfig blk), NoThunks (CodecConfig blk), NoThunks (LedgerConfig blk), NoThunks (StorageConfig blk), NoThunks (HeaderHash blk)) ⇒ NoThunks (ExtLedgerCfg blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type Rep (ExtLedgerCfg blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type Rep (ExtLedgerCfg blk) = D1 ('MetaData "ExtLedgerCfg" "Ouroboros.Consensus.Ledger.Extended" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "ExtLedgerCfg" 'PrefixI 'True) (S1 ('MetaSel ('Just "getExtLedgerCfg") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TopLevelConfig blk))))

data ExtLedgerState blk (mk ∷ MapKind) Source #

Extended ledger state

This is the combination of the header state and the ledger state proper.

Constructors

ExtLedgerState 

Fields

Instances

Instances details
(GetBlockKeySets blk, LedgerSupportsProtocol blk, BlockSupportsPeras blk, StateSupportsPerasEpochContext blk, All (Top ∷ Type → Constraint) (HardForkIndices blk)) ⇒ ApplyBlock ExtLedgerState blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

(LedgerSupportsProtocol blk, BlockSupportsPeras blk, StateSupportsPerasEpochContext blk, All (Top ∷ Type → Constraint) (HardForkIndices blk)) ⇒ IsLedger ExtLedgerState blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Associated Types

type LedgerErr ExtLedgerState blk 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

CanUpgradeLedgerTables LedgerState blk ⇒ CanUpgradeLedgerTables ExtLedgerState blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

upgradeTables ∷ ∀ (mk1 ∷ MapKind) (mk2 ∷ MapKind). ExtLedgerState blk mk1 → ExtLedgerState blk mk2 → LedgerTables blk ValuesMK → LedgerTables blk ValuesMK Source #

(NoThunks (TxIn blk), NoThunks (TxOut blk), HasLedgerTables LedgerState blk) ⇒ HasLedgerTables ExtLedgerState blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ ExtLedgerState blk mk → LedgerTables blk mk Source #

withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ ExtLedgerState blk any → LedgerTables blk mk → ExtLedgerState blk mk Source #

LedgerTablesAreTrivial LedgerState blk ⇒ LedgerTablesAreTrivial ExtLedgerState blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

convertMapKind ∷ ∀ (mk ∷ MapKind) (mk' ∷ MapKind). ExtLedgerState blk mk → ExtLedgerState blk mk' Source #

SerializeTablesWithHint LedgerState blk ⇒ SerializeTablesWithHint ExtLedgerState blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

(txout ~ TxOut blk, IndexedMemPack LedgerState blk txout) ⇒ IndexedMemPack ExtLedgerState blk txout Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

IsLedger LedgerState blk ⇒ GetTip (ExtLedgerState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

getTip ∷ ∀ (mk ∷ MapKind). ExtLedgerState blk mk → Point (ExtLedgerState blk) Source #

CanStowLedgerTables (LedgerState blk) ⇒ CanStowLedgerTables (ExtLedgerState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

(EqMK mk, Eq (PerasState blk), LedgerSupportsProtocol blk) ⇒ Eq (ExtLedgerState blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

(==) ∷ ExtLedgerState blk mk → ExtLedgerState blk mk → Bool #

(/=) ∷ ExtLedgerState blk mk → ExtLedgerState blk mk → Bool #

Generic (ExtLedgerState blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Associated Types

type Rep (ExtLedgerState blk mk) 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type Rep (ExtLedgerState blk mk) = D1 ('MetaData "ExtLedgerState" "Ouroboros.Consensus.Ledger.Extended" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "ExtLedgerState" 'PrefixI 'True) (S1 ('MetaSel ('Just "ledgerState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LedgerState blk mk)) :*: (S1 ('MetaSel ('Just "headerState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (HeaderState blk)) :*: S1 ('MetaSel ('Just "perasState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasState blk)))))

Methods

from ∷ ExtLedgerState blk mk → Rep (ExtLedgerState blk mk) x #

to ∷ Rep (ExtLedgerState blk mk) x → ExtLedgerState blk mk #

(ShowMK mk, Show (PerasState blk), LedgerSupportsProtocol blk) ⇒ Show (ExtLedgerState blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

showsPrec ∷ Int → ExtLedgerState blk mk → ShowS #

show ∷ ExtLedgerState blk mk → String #

showList ∷ [ExtLedgerState blk mk] → ShowS #

(NoThunksMK mk, NoThunks (PerasState blk), LedgerSupportsProtocol blk) ⇒ NoThunks (ExtLedgerState blk mk) Source #

We override showTypeOf to show the type of the block

This makes debugging a bit easier, as the block gets used to resolve all kinds of type families.

Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

(NoThunks (TxIn blk), NoThunks (TxOut blk), HasLedgerTables (Ticked LedgerState) blk) ⇒ HasLedgerTables (Ticked ExtLedgerState) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked ExtLedgerState blk mk → LedgerTables blk mk Source #

withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked ExtLedgerState blk any → LedgerTables blk mk → Ticked ExtLedgerState blk mk Source #

(NFData (HeaderHash blk), NoThunks (HeaderHash blk), Typeable (HeaderHash blk), Show (HeaderHash blk), Ord (HeaderHash blk), Eq (HeaderHash blk)) ⇒ StandardHash (ExtLedgerState blk ∷ MapKind → Type) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

IsLedger LedgerState blk ⇒ GetTip (Ticked ExtLedgerState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

getTip ∷ ∀ (mk ∷ MapKind). Ticked ExtLedgerState blk mk → Point (Ticked ExtLedgerState blk) Source #

Inject (Flip ExtLedgerState mk) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Nary

Methods

inject ∷ ∀ x (xs ∷ [Type]). (CanHardFork xs, HasCanonicalTxIn xs, HasHardForkTxOut xs) ⇒ InjectionIndex xs x → Flip ExtLedgerState mk x → Flip ExtLedgerState mk (HardForkBlock xs) Source #

Isomorphic (Flip ExtLedgerState mk) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary

type LedgerCfg ExtLedgerState blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type LedgerErr ExtLedgerState blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type Rep (ExtLedgerState blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type Rep (ExtLedgerState blk mk) = D1 ('MetaData "ExtLedgerState" "Ouroboros.Consensus.Ledger.Extended" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "ExtLedgerState" 'PrefixI 'True) (S1 ('MetaSel ('Just "ledgerState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LedgerState blk mk)) :*: (S1 ('MetaSel ('Just "headerState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (HeaderState blk)) :*: S1 ('MetaSel ('Just "perasState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasState blk)))))
data Ticked ExtLedgerState (blk ∷ Type) (mk ∷ MapKind) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type HeaderHash (ExtLedgerState blk ∷ MapKind → Type) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

data ExtValidationError blk Source #

Instances

Instances details
(Eq (PerasError blk), LedgerSupportsProtocol blk) ⇒ Eq (ExtValidationError blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Generic (ExtValidationError blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Associated Types

type Rep (ExtValidationError blk) 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type Rep (ExtValidationError blk) = D1 ('MetaData "ExtValidationError" "Ouroboros.Consensus.Ledger.Extended" "ouroboros-consensus-4.0.0.0-inplace" 'False) ((C1 ('MetaCons "ExtValidationErrorLedger" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LedgerErr LedgerState blk))) :+: C1 ('MetaCons "ExtValidationErrorHeader" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (HeaderError blk)))) :+: (C1 ('MetaCons "ExtValidationErrorPerasEpochContextResolver" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasEpochContextNotFoundForRound)) :+: C1 ('MetaCons "ExtValidationErrorPerasCertInBlock" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasError blk)))))
(Show (PerasError blk), LedgerSupportsProtocol blk) ⇒ Show (ExtValidationError blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

(NoThunks (PerasError blk), LedgerSupportsProtocol blk) ⇒ NoThunks (ExtValidationError blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type Rep (ExtValidationError blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

type Rep (ExtValidationError blk) = D1 ('MetaData "ExtValidationError" "Ouroboros.Consensus.Ledger.Extended" "ouroboros-consensus-4.0.0.0-inplace" 'False) ((C1 ('MetaCons "ExtValidationErrorLedger" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (LedgerErr LedgerState blk))) :+: C1 ('MetaCons "ExtValidationErrorHeader" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (HeaderError blk)))) :+: (C1 ('MetaCons "ExtValidationErrorPerasEpochContextResolver" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PerasEpochContextNotFoundForRound)) :+: C1 ('MetaCons "ExtValidationErrorPerasCertInBlock" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerasError blk)))))

Serialisation

decodeExtLedgerState ∷ (∀ s. Decoder s (LedgerState blk EmptyMK)) → (∀ s. Decoder s (ChainDepState (BlockProtocol blk))) → (∀ s. Decoder s (AnnTip blk)) → (∀ s. Decoder s (PerasState blk)) → ∀ s. Decoder s (ExtLedgerState blk EmptyMK) Source #

encodeExtLedgerState ∷ ∀ blk (mk ∷ MapKind). (LedgerState blk mk → Encoding) → (ChainDepState (BlockProtocol blk) → Encoding) → (AnnTip blk → Encoding) → (PerasState blk → Encoding) → ExtLedgerState blk mk → Encoding Source #

initPerasEpochContextResolver ∷ (All (Top ∷ Type → Constraint) (HardForkIndices blk), StateSupportsPerasEpochContext blk) ⇒ LedgerConfig blk → LedgerState blk EmptyMK → HeaderState blk → PerasEpochContextResolver blk Source #

Initialize a PerasEpochContextResolver from a ledger and header state.

NOTES: 1. We may later decide that a PerasEpochContextResolver is always initiated with empty/error value, and rely on the first ticking to properly initialize it. In the current architecture, however, that would work only if the first ticking happens when the previous slot is either Origin, or a slot from a previous epoch compared to the target slot. 2. Given that we have no assumption that (1) would work, we made a polymorphic system where a BoundedEpochContext can be created from either a ticked or unticked ledger+header state (see LedgerStateSupportsPeras and ChainDepStateSupportsPeras helper classes). This way, a PerasEpochContextResolver can be initialized from unticked LedgerState and HeaderState, but then ticked by using the 'Ticked LedgerState' and 'Ticked HeaderState'. 3. If in the future we move on to a system where the resolver is always initialized with empty/error value, we can remove the polymorphic system and only create a BoundedPerasEpochContext from 'Ticked LedgerState' and 'Ticked HeaderState'.

Type family instances

newtype LedgerTables blk (mk ∷ MapKind) Source #

The Ledger Tables represent the portion of the data on disk that has been pulled from disk and attached to the in-memory Ledger State or that will eventually be written to disk.

With UTxO-HD and the split of the Ledger ledger state into the in-memory part and the on-disk part, this splitting was reflected in the new type parameter added to the (Consensus) LedgerState, to which we refer as "the MapKind" or mk.

Every LedgerState (or LedgerState-like type, such as the ExtLedgerState) is associated with a LedgerTables and they both share the mk. They both are of kind LedgerStateKind. LedgerTables is just a way to refer only to a partial view of the on-disk data without having the rest of the in-memory LedgerState in scope.

The mk can be instantiated to anything that is map-like, i.e. that expects two type parameters, the key and the value.

Constructors

LedgerTables 

Fields

Instances

Instances details
(∀ k v. LedgerTableConstraints' l k v ⇒ Monoid (mk k v), LedgerTableConstraints l) ⇒ Monoid (LedgerTables l mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Combinators

Methods

mempty ∷ LedgerTables l mk #

mappend ∷ LedgerTables l mk → LedgerTables l mk → LedgerTables l mk #

mconcat ∷ [LedgerTables l mk] → LedgerTables l mk #

(∀ k v. LedgerTableConstraints' blk k v ⇒ Semigroup (mk k v), LedgerTableConstraints blk) ⇒ Semigroup (LedgerTables blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Combinators

Methods

(<>) ∷ LedgerTables blk mk → LedgerTables blk mk → LedgerTables blk mk #

sconcat ∷ NonEmpty (LedgerTables blk mk) → LedgerTables blk mk #

stimes ∷ Integral b ⇒ b → LedgerTables blk mk → LedgerTables blk mk #

Eq (mk (TxIn blk) (TxOut blk)) ⇒ Eq (LedgerTables blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Basics

Methods

(==) ∷ LedgerTables blk mk → LedgerTables blk mk → Bool #

(/=) ∷ LedgerTables blk mk → LedgerTables blk mk → Bool #

Generic (LedgerTables blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Basics

Associated Types

type Rep (LedgerTables blk mk) 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Basics

type Rep (LedgerTables blk mk) = D1 ('MetaData "LedgerTables" "Ouroboros.Consensus.Ledger.Tables.Basics" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "LedgerTables" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLedgerTables") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (mk (TxIn blk) (TxOut blk)))))

Methods

from ∷ LedgerTables blk mk → Rep (LedgerTables blk mk) x #

to ∷ Rep (LedgerTables blk mk) x → LedgerTables blk mk #

Show (mk (TxIn blk) (TxOut blk)) ⇒ Show (LedgerTables blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Basics

Methods

showsPrec ∷ Int → LedgerTables blk mk → ShowS #

show ∷ LedgerTables blk mk → String #

showList ∷ [LedgerTables blk mk] → ShowS #

NoThunks (mk (TxIn blk) (TxOut blk)) ⇒ NoThunks (LedgerTables blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Basics

type Rep (LedgerTables blk mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Tables.Basics

type Rep (LedgerTables blk mk) = D1 ('MetaData "LedgerTables" "Ouroboros.Consensus.Ledger.Tables.Basics" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "LedgerTables" 'PrefixI 'True) (S1 ('MetaSel ('Just "getLedgerTables") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (mk (TxIn blk) (TxOut blk)))))

data family Ticked (st ∷ k) ∷ k Source #

" Ticked " piece of state, either LedgerState or ChainDepState

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. There are exactly two methods in the interface that do that: tickChainDepState and applyChainTickLedgerResult.

Also note that a successful forecast forecastFor (ledgerViewForecastAt cfg st) slot must equal protocolLedgerView cfg (applyChainTick cfg slot st). Thus a LedgerView can only be projected from a Ticked state, but cannot itself be ticked.

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.

Ticked is used mainly in two ways:

  • Ticked (Ext)LedgerState where its kind gets concretized to StateKind -> StateKind
  • Ticked (HeaderState blk) where its kind gets concretized to Type -> Type

Instances

Instances details
Show (Ticked ()) Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

Methods

showsPrec ∷ Int → Ticked () → ShowS #

show ∷ Ticked () → String #

showList ∷ [Ticked ()] → ShowS #

CanHardFork xs ⇒ ChainDepStateSupportsPeras (Ticked (HardForkChainDepState xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

ChainDepStateSupportsPeras (Ticked (ChainDepState (BlockProtocol blk))) ⇒ ChainDepStateSupportsPeras (Ticked (HeaderState blk)) Source # 
Instance details

Defined in Ouroboros.Consensus.HeaderValidation

ChainDepStateSupportsPeras (Ticked (PBftState c)) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

ChainDepStateSupportsPeras (Ticked ()) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.Abstract

Methods

getEpochNonce ∷ Ticked () → Nonce Source #

(NoThunks (TxIn blk), NoThunks (TxOut blk), HasLedgerTables (Ticked LedgerState) blk) ⇒ HasLedgerTables (Ticked ExtLedgerState) blk Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked ExtLedgerState blk mk → LedgerTables blk mk Source #

withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked ExtLedgerState blk any → LedgerTables blk mk → Ticked ExtLedgerState blk mk Source #

(CanHardFork xs, HasCanonicalTxIn xs, HasHardForkTxOut xs) ⇒ HasLedgerTables (Ticked LedgerState) (HardForkBlock xs) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

(Bridge m a, HasLedgerTables (Ticked LedgerState) m) ⇒ HasLedgerTables (Ticked LedgerState) (DualBlock m a) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Methods

projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState (DualBlock m a) mk → LedgerTables (DualBlock m a) mk Source #

withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState (DualBlock m a) any → LedgerTables (DualBlock m a) mk → Ticked LedgerState (DualBlock m a) mk Source #

CanHardFork xs ⇒ GetTip (Ticked LedgerState (HardForkBlock xs)) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

Bridge m a ⇒ GetTip (Ticked LedgerState (DualBlock m a)) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Methods

getTip ∷ ∀ (mk ∷ MapKind). Ticked LedgerState (DualBlock m a) mk → Point (Ticked LedgerState (DualBlock m a)) Source #

IsLedger LedgerState blk ⇒ GetTip (Ticked ExtLedgerState blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

Methods

getTip ∷ ∀ (mk ∷ MapKind). Ticked ExtLedgerState blk mk → Point (Ticked ExtLedgerState blk) Source #

CanHardFork xs ⇒ LedgerStateSupportsPeras (Ticked LedgerState (HardForkBlock xs)) Source #

LedgerStateSupportsPeras for the ticked hard fork ledger state, mirroring the instance for the unticked ledger state in Ouroboros.Consensus.HardFork.Combinator.Basics.

Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

LedgerStateSupportsPeras (Ticked LedgerState (DualBlock m a)) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

NoThunks (Ticked LedgerState (DualBlock m a) mk) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Show (Ticked (f a)) ⇒ Show (((Ticked ∷ Type → Type) :.: f) a) Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

Methods

showsPrec ∷ Int → ((Ticked ∷ Type → Type) :.: f) a → ShowS #

show ∷ ((Ticked ∷ Type → Type) :.: f) a → String #

showList ∷ [((Ticked ∷ Type → Type) :.: f) a] → ShowS #

NoThunks (Ticked (f a)) ⇒ NoThunks (((Ticked ∷ Type → Type) :.: f) a) Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

Methods

noThunks ∷ Context → ((Ticked ∷ Type → Type) :.: f) a → IO (Maybe ThunkInfo) Source #

wNoThunks ∷ Context → ((Ticked ∷ Type → Type) :.: f) a → IO (Maybe ThunkInfo) Source #

showTypeOf ∷ Proxy (((Ticked ∷ Type → Type) :.: f) a) → String Source #

data Ticked () Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

data Ticked (HardForkChainDepState xs ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

data Ticked (HeaderState blk ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.HeaderValidation

data Ticked (PBftState c ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

newtype Ticked (WrapChainDepState blk ∷ Type) Source # 
Instance details

Defined in Ouroboros.Consensus.TypeFamilyWrappers

type HeaderHash (Ticked l blk ∷ k2) Source # 
Instance details

Defined in Ouroboros.Consensus.Ticked

type HeaderHash (Ticked l blk ∷ k2) = HeaderHash (l blk)
data Ticked ExtLedgerState (blk ∷ Type) (mk ∷ MapKind) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

data Ticked LedgerState (HardForkBlock xs ∷ Type) (mk ∷ MapKind) Source # 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

data Ticked LedgerState (DualBlock m a ∷ Type) (mk ∷ MapKind) Source # 
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual