| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Ouroboros.Consensus.Ledger.Extended
Synopsis
- newtype ExtLedgerCfg blk = ExtLedgerCfg {}
- data ExtLedgerState blk (mk ∷ MapKind) = ExtLedgerState {
- ledgerState ∷ !(LedgerState blk mk)
- headerState ∷ !(HeaderState blk)
- perasState ∷ !(PerasState blk)
- data ExtValidationError blk
- decodeDiskExtLedgerState ∷ (DecodeDisk blk (LedgerState blk EmptyMK), DecodeDisk blk (ChainDepState (BlockProtocol blk)), DecodeDisk blk (AnnTip blk), DecodeDisk blk (PerasState blk)) ⇒ CodecConfig blk → ∀ s. Decoder s (ExtLedgerState blk EmptyMK)
- 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)
- encodeDiskExtLedgerState ∷ (EncodeDisk blk (LedgerState blk EmptyMK), EncodeDisk blk (ChainDepState (BlockProtocol blk)), EncodeDisk blk (AnnTip blk), EncodeDisk blk (PerasState blk)) ⇒ CodecConfig blk → ExtLedgerState blk EmptyMK → Encoding
- encodeExtLedgerState ∷ ∀ blk (mk ∷ MapKind). (LedgerState blk mk → Encoding) → (ChainDepState (BlockProtocol blk) → Encoding) → (AnnTip blk → Encoding) → (PerasState blk → Encoding) → ExtLedgerState blk mk → Encoding
- initPerasEpochContextResolver ∷ (All (Top ∷ Type → Constraint) (HardForkIndices blk), StateSupportsPerasEpochContext blk) ⇒ LedgerConfig blk → LedgerState blk EmptyMK → HeaderState blk → PerasEpochContextResolver blk
- mkPerasEpochContextResolverHandle ∷ ∀ (m ∷ Type → Type) blk (mk ∷ MapKind). MonadSTM m ⇒ STM m (ExtLedgerState blk mk) → PerasEpochContextResolverHandle m blk
- newtype LedgerTables blk (mk ∷ MapKind) = LedgerTables {
- getLedgerTables ∷ mk (TxIn blk) (TxOut blk)
- data family Ticked (st ∷ k) ∷ k
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
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
| (GetBlockKeySets blk, LedgerSupportsProtocol blk, BlockSupportsPeras blk, StateSupportsPerasEpochContext blk, All (Top ∷ Type → Constraint) (HardForkIndices blk)) ⇒ ApplyBlock ExtLedgerState blk Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Methods applyBlockLedgerResultWithValidation ∷ ValidationPolicy → ComputeLedgerEvents → LedgerCfg ExtLedgerState blk → blk → Ticked ExtLedgerState blk ValuesMK → Except (LedgerErr ExtLedgerState blk) (LedgerResult blk (ExtLedgerState blk DiffMK)) Source # applyBlockLedgerResult ∷ ComputeLedgerEvents → LedgerCfg ExtLedgerState blk → blk → Ticked ExtLedgerState blk ValuesMK → Except (LedgerErr ExtLedgerState blk) (LedgerResult blk (ExtLedgerState blk DiffMK)) Source # reapplyBlockLedgerResult ∷ ComputeLedgerEvents → LedgerCfg ExtLedgerState blk → blk → Ticked ExtLedgerState blk ValuesMK → LedgerResult blk (ExtLedgerState blk DiffMK) Source # | |||||
| (LedgerSupportsProtocol blk, BlockSupportsPeras blk, StateSupportsPerasEpochContext blk, All (Top ∷ Type → Constraint) (HardForkIndices blk)) ⇒ IsLedger ExtLedgerState blk Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Associated Types
Methods applyChainTickLedgerResult ∷ ComputeLedgerEvents → LedgerCfg ExtLedgerState blk → SlotNo → ExtLedgerState blk EmptyMK → LedgerResult blk (Ticked ExtLedgerState blk DiffMK) Source # | |||||
| CanUpgradeLedgerTables LedgerState blk ⇒ CanUpgradeLedgerTables ExtLedgerState blk Source # | |||||
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 # | |||||
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 # | |||||
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 # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Methods encodeTablesWithHint ∷ ExtLedgerState blk EmptyMK → LedgerTables blk ValuesMK → Encoding Source # decodeTablesWithHint ∷ ExtLedgerState blk EmptyMK → Decoder s (LedgerTables blk ValuesMK) Source # | |||||
| (txout ~ TxOut blk, IndexedMemPack LedgerState blk txout) ⇒ IndexedMemPack ExtLedgerState blk txout Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Methods indexedPackedByteCount ∷ ExtLedgerState blk EmptyMK → txout → Int Source # indexedPackM ∷ ExtLedgerState blk EmptyMK → txout → Pack s () Source # indexedUnpackM ∷ Buffer b ⇒ ∀ s. ExtLedgerState blk EmptyMK → Unpack s b txout Source # indexedTypeName ∷ Proxy txout → ExtLedgerState blk EmptyMK → String Source # | |||||
| IsLedger LedgerState blk ⇒ GetTip (ExtLedgerState blk) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Methods getTip ∷ ∀ (mk ∷ MapKind). ExtLedgerState blk mk → Point (ExtLedgerState blk) Source # | |||||
| CanStowLedgerTables (LedgerState blk) ⇒ CanStowLedgerTables (ExtLedgerState blk) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Methods stowLedgerTables ∷ ExtLedgerState blk ValuesMK → ExtLedgerState blk EmptyMK Source # unstowLedgerTables ∷ ExtLedgerState blk EmptyMK → ExtLedgerState blk ValuesMK Source # | |||||
| (EqMK mk, Eq (PerasState blk), LedgerSupportsProtocol blk) ⇒ Eq (ExtLedgerState blk mk) Source # | |||||
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 # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Associated Types
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 # | |||||
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 This makes debugging a bit easier, as the block gets used to resolve all kinds of type families. | ||||
Defined in Ouroboros.Consensus.Ledger.Extended | |||||
| (NoThunks (TxIn blk), NoThunks (TxOut blk), HasLedgerTables (Ticked LedgerState) blk) ⇒ HasLedgerTables (Ticked ExtLedgerState) blk Source # | |||||
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 # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended | |||||
| IsLedger LedgerState blk ⇒ GetTip (Ticked ExtLedgerState blk) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Methods getTip ∷ ∀ (mk ∷ MapKind). Ticked ExtLedgerState blk mk → Point (Ticked ExtLedgerState blk) Source # | |||||
| Inject (Flip ExtLedgerState mk) Source # | |||||
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 # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary Methods project ∷ NoHardForks blk ⇒ Flip ExtLedgerState mk (HardForkBlock '[blk]) → Flip ExtLedgerState mk blk Source # inject ∷ NoHardForks blk ⇒ Flip ExtLedgerState mk blk → Flip ExtLedgerState mk (HardForkBlock '[blk]) Source # | |||||
| type LedgerCfg ExtLedgerState blk Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended | |||||
| type LedgerErr ExtLedgerState blk Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended | |||||
| type Rep (ExtLedgerState blk mk) Source # | |||||
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 # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended data Ticked ExtLedgerState (blk ∷ Type) (mk ∷ MapKind) = TickedExtLedgerState {
| |||||
| type HeaderHash (ExtLedgerState blk ∷ MapKind → Type) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended | |||||
data ExtValidationError blk Source #
Constructors
| ExtValidationErrorLedger !(LedgerErr LedgerState blk) | |
| ExtValidationErrorHeader !(HeaderError blk) | |
| ExtValidationErrorPerasEpochContextResolver !PerasEpochContextNotFoundForRound | |
| ExtValidationErrorPerasCertInBlock !(PerasError blk) |
Instances
| (Eq (PerasError blk), LedgerSupportsProtocol blk) ⇒ Eq (ExtValidationError blk) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Methods (==) ∷ ExtValidationError blk → ExtValidationError blk → Bool # (/=) ∷ ExtValidationError blk → ExtValidationError blk → Bool # | |||||
| Generic (ExtValidationError blk) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Associated Types
Methods from ∷ ExtValidationError blk → Rep (ExtValidationError blk) x # to ∷ Rep (ExtValidationError blk) x → ExtValidationError blk # | |||||
| (Show (PerasError blk), LedgerSupportsProtocol blk) ⇒ Show (ExtValidationError blk) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended Methods showsPrec ∷ Int → ExtValidationError blk → ShowS # show ∷ ExtValidationError blk → String # showList ∷ [ExtValidationError blk] → ShowS # | |||||
| (NoThunks (PerasError blk), LedgerSupportsProtocol blk) ⇒ NoThunks (ExtValidationError blk) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Extended | |||||
| type Rep (ExtValidationError blk) Source # | |||||
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
decodeDiskExtLedgerState ∷ (DecodeDisk blk (LedgerState blk EmptyMK), DecodeDisk blk (ChainDepState (BlockProtocol blk)), DecodeDisk blk (AnnTip blk), DecodeDisk blk (PerasState blk)) ⇒ CodecConfig blk → ∀ s. Decoder s (ExtLedgerState blk EmptyMK) Source #
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 #
encodeDiskExtLedgerState ∷ (EncodeDisk blk (LedgerState blk EmptyMK), EncodeDisk blk (ChainDepState (BlockProtocol blk)), EncodeDisk blk (AnnTip blk), EncodeDisk blk (PerasState blk)) ⇒ CodecConfig blk → ExtLedgerState blk EmptyMK → Encoding 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'.
mkPerasEpochContextResolverHandle ∷ ∀ (m ∷ Type → Type) blk (mk ∷ MapKind). MonadSTM m ⇒ STM m (ExtLedgerState blk mk) → PerasEpochContextResolverHandle m blk Source #
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
| (∀ k v. LedgerTableConstraints' l k v ⇒ Monoid (mk k v), LedgerTableConstraints l) ⇒ Monoid (LedgerTables l mk) Source # | |||||
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 # | |||||
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 # | |||||
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 # | |||||
Defined in Ouroboros.Consensus.Ledger.Tables.Basics Associated Types
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 # | |||||
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 # | |||||
Defined in Ouroboros.Consensus.Ledger.Tables.Basics | |||||
| type Rep (LedgerTables blk mk) Source # | |||||
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
must equal
forecastFor
(ledgerViewForecastAt cfg st)
slot. Thus a
protocolLedgerView cfg
(applyChainTick cfg slot st)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)LedgerStatewhere its kind gets concretized toStateKind -> StateKindTicked (HeaderState blk)where its kind gets concretized toType -> Type
Instances
| Show (Ticked ()) Source # | |
| CanHardFork xs ⇒ ChainDepStateSupportsPeras (Ticked (HardForkChainDepState xs)) Source # | |
Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol Methods getEpochNonce ∷ Ticked (HardForkChainDepState xs) → Nonce Source # | |
| ChainDepStateSupportsPeras (Ticked (ChainDepState (BlockProtocol blk))) ⇒ ChainDepStateSupportsPeras (Ticked (HeaderState blk)) Source # | |
Defined in Ouroboros.Consensus.HeaderValidation Methods getEpochNonce ∷ Ticked (HeaderState blk) → Nonce Source # | |
| ChainDepStateSupportsPeras (Ticked (PBftState c)) Source # | |
Defined in Ouroboros.Consensus.Protocol.PBFT | |
| ChainDepStateSupportsPeras (Ticked ()) Source # | |
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 # | |
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 # | |
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState (HardForkBlock xs) mk → LedgerTables (HardForkBlock xs) mk Source # withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked LedgerState (HardForkBlock xs) any → LedgerTables (HardForkBlock xs) mk → Ticked LedgerState (HardForkBlock xs) mk Source # | |
| (Bridge m a, HasLedgerTables (Ticked LedgerState) m) ⇒ HasLedgerTables (Ticked LedgerState) (DualBlock m a) Source # | |
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 # | |
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods getTip ∷ ∀ (mk ∷ MapKind). Ticked LedgerState (HardForkBlock xs) mk → Point (Ticked LedgerState (HardForkBlock xs)) Source # | |
| Bridge m a ⇒ GetTip (Ticked LedgerState (DualBlock m a)) Source # | |
Defined in Ouroboros.Consensus.Ledger.Dual | |
| IsLedger LedgerState blk ⇒ GetTip (Ticked ExtLedgerState blk) Source # | |
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 # |
|
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods getPoolDistr ∷ Ticked LedgerState (HardForkBlock xs) EmptyMK → PoolDistr Source # getPerasParams ∷ proxy blk → Ticked LedgerState (HardForkBlock xs) EmptyMK → PerasParams blk Source # | |
| LedgerStateSupportsPeras (Ticked LedgerState (DualBlock m a)) Source # | |
Defined in Ouroboros.Consensus.Ledger.Dual Methods getPoolDistr ∷ Ticked LedgerState (DualBlock m a) EmptyMK → PoolDistr Source # getPerasParams ∷ proxy blk → Ticked LedgerState (DualBlock m a) EmptyMK → PerasParams blk Source # | |
| NoThunks (Ticked LedgerState (DualBlock m a) mk) Source # | |
Defined in Ouroboros.Consensus.Ledger.Dual | |
| Show (Ticked (f a)) ⇒ Show (((Ticked ∷ Type → Type) :.: f) a) Source # | |
| NoThunks (Ticked (f a)) ⇒ NoThunks (((Ticked ∷ Type → Type) :.: f) a) Source # | |
| data Ticked () Source # | |
Defined in Ouroboros.Consensus.Ticked | |
| data Ticked (HardForkChainDepState xs ∷ Type) Source # | |
| data Ticked (HeaderState blk ∷ Type) Source # | |
Defined in Ouroboros.Consensus.HeaderValidation | |
| data Ticked (PBftState c ∷ Type) Source # | |
Defined in Ouroboros.Consensus.Protocol.PBFT | |
| newtype Ticked (WrapChainDepState blk ∷ Type) Source # | |
Defined in Ouroboros.Consensus.TypeFamilyWrappers | |
| type HeaderHash (Ticked l blk ∷ k2) Source # | |
Defined in Ouroboros.Consensus.Ticked | |
| data Ticked ExtLedgerState (blk ∷ Type) (mk ∷ MapKind) Source # | |
Defined in Ouroboros.Consensus.Ledger.Extended data Ticked ExtLedgerState (blk ∷ Type) (mk ∷ MapKind) = TickedExtLedgerState {
| |
| data Ticked LedgerState (HardForkBlock xs ∷ Type) (mk ∷ MapKind) Source # | |
| data Ticked LedgerState (DualBlock m a ∷ Type) (mk ∷ MapKind) Source # | |
Defined in Ouroboros.Consensus.Ledger.Dual | |