cardano-protocol-tpraos-1.3.0.0: Cardano Protocol: Transitional Praos
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cardano.Protocol.TPraos.Rules.Overlay

Synopsis

Documentation

data OVERLAY c Source #

Instances

Instances details
(Crypto c, DSignable c (OCertSignable c), KESignable c (BHBody c), Signable (VRF c) Seed) ⇒ STS (OVERLAY c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Associated Types

type State (OVERLAY c) Source #

type Signal (OVERLAY c) Source #

type Environment (OVERLAY c) Source #

type BaseM (OVERLAY c) ∷ TypeType Source #

type Event (OVERLAY c) Source #

type PredicateFailure (OVERLAY c) Source #

(Crypto c, DSignable c (OCertSignable c), KESignable c (BHBody c), Signable (VRF c) Seed) ⇒ Embed (OCERT c) (OVERLAY c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

(Crypto c, DSignable c (OCertSignable c), KESignable c (BHBody c), VRFSignable c Seed) ⇒ Embed (OVERLAY c) (PRTCL c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Prtcl

type BaseM (OVERLAY c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Environment (OVERLAY c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Event (OVERLAY c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Event (OVERLAY c) = Void
type PredicateFailure (OVERLAY c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Signal (OVERLAY c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Signal (OVERLAY c) = BHeader c
type State (OVERLAY c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type family PredicateFailure a Source #

Descriptive type for the possible failures which might cause a transition to fail.

As a convention, PredicateFailures which are "structural" (meaning that they are not "throwable" in practice, and are used to pass control from one transition rule to another) are prefixed with S_.

Structural PredicateFailures represent conditions between rules where the disjunction of all rules' preconditions is equal to True. That is, either one rule will throw a structural PredicateFailure and the other will succeed, or vice-versa.

Instances

Instances details
type PredicateFailure TICKN Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Tickn

type PredicateFailure (AllegraUTXO era) 
Instance details

Defined in Cardano.Ledger.Allegra.Rules.Utxo

type PredicateFailure (AllegraUTXOW era) 
Instance details

Defined in Cardano.Ledger.Allegra.Rules.Utxow

type PredicateFailure (AlonzoBBODY era) 
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Bbody

type PredicateFailure (AlonzoLEDGER era) 
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Ledger

type PredicateFailure (AlonzoUTXO era) 
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Utxo

type PredicateFailure (AlonzoUTXOS era) 
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Utxos

type PredicateFailure (AlonzoUTXOW era) 
Instance details

Defined in Cardano.Ledger.Alonzo.Rules.Utxow

type PredicateFailure (BabbageLEDGER era) 
Instance details

Defined in Cardano.Ledger.Babbage.Rules.Ledger

type PredicateFailure (BabbageUTXO era) 
Instance details

Defined in Cardano.Ledger.Babbage.Rules.Utxo

type PredicateFailure (BabbageUTXOS era) 
Instance details

Defined in Cardano.Ledger.Babbage.Rules.Utxos

type PredicateFailure (BabbageUTXOW era) 
Instance details

Defined in Cardano.Ledger.Babbage.Rules.Utxow

type PredicateFailure (ConwayBBODY era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Bbody

type PredicateFailure (ConwayCERT era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Cert

type PredicateFailure (ConwayCERTS era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Certs

type PredicateFailure (ConwayDELEG era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Deleg

type PredicateFailure (ConwayENACT era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Enact

type PredicateFailure (ConwayEPOCH era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Epoch

type PredicateFailure (ConwayGOV era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Gov

type PredicateFailure (ConwayGOVCERT era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.GovCert

type PredicateFailure (ConwayHARDFORK era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.HardFork

type PredicateFailure (ConwayLEDGER era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Ledger

type PredicateFailure (ConwayMEMPOOL era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Mempool

type PredicateFailure (ConwayNEWEPOCH era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.NewEpoch

type PredicateFailure (ConwayRATIFY era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Ratify

type PredicateFailure (ConwayRATIFY era) = Void
type PredicateFailure (ConwayTICKF era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Tickf

type PredicateFailure (ConwayUTXO era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Utxo

type PredicateFailure (ConwayUTXO era) = ConwayUtxoPredFailure era
type PredicateFailure (ConwayUTXOS era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Utxos

type PredicateFailure (ConwayUTXOW era) 
Instance details

Defined in Cardano.Ledger.Conway.Rules.Utxow

type PredicateFailure (ShelleyBBODY era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Bbody

type PredicateFailure (ShelleyDELEG era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Deleg

type PredicateFailure (ShelleyDELEGS era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Delegs

type PredicateFailure (ShelleyDELPL era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Delpl

type PredicateFailure (ShelleyEPOCH era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Epoch

type PredicateFailure (ShelleyLEDGER era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Ledger

type PredicateFailure (ShelleyLEDGERS era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Ledgers

type PredicateFailure (ShelleyMIR era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Mir

type PredicateFailure (ShelleyNEWEPOCH era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.NewEpoch

type PredicateFailure (ShelleyNEWPP era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Newpp

type PredicateFailure (ShelleyPOOL era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Pool

type PredicateFailure (ShelleyPOOLREAP era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.PoolReap

type PredicateFailure (ShelleyPPUP era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Ppup

type PredicateFailure (ShelleyRUPD era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Rupd

type PredicateFailure (ShelleySNAP era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Snap

type PredicateFailure (ShelleyTICK era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Tick

type PredicateFailure (ShelleyTICKF era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Tick

type PredicateFailure (ShelleyUPEC era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Upec

type PredicateFailure (ShelleyUTXO era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Utxo

type PredicateFailure (ShelleyUTXOW era) 
Instance details

Defined in Cardano.Ledger.Shelley.Rules.Utxow

type PredicateFailure (OCERT c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.OCert

type PredicateFailure (OVERLAY c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type PredicateFailure (PRTCL c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Prtcl

type PredicateFailure (UPDN c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Updn

type PredicateFailure (STUB e st si f m) 
Instance details

Defined in Control.State.Transition.Extended

type PredicateFailure (STUB e st si f m) = f

data OverlayEnv c Source #

Instances

Instances details
Generic (OverlayEnv c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Associated Types

type Rep (OverlayEnv c) ∷ TypeType Source #

Methods

fromOverlayEnv c → Rep (OverlayEnv c) x Source #

toRep (OverlayEnv c) x → OverlayEnv c Source #

NoThunks (OverlayEnv c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep (OverlayEnv c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

data OverlayPredicateFailure c Source #

Instances

Instances details
Generic (OverlayPredicateFailure c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Associated Types

type Rep (OverlayPredicateFailure c) ∷ TypeType Source #

VRFAlgorithm (VRF c) ⇒ Show (OverlayPredicateFailure c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

VRFAlgorithm (VRF c) ⇒ Eq (OverlayPredicateFailure c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

VRFAlgorithm (VRF c) ⇒ NoThunks (OverlayPredicateFailure c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep (OverlayPredicateFailure c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep (OverlayPredicateFailure c) = D1 ('MetaData "OverlayPredicateFailure" "Cardano.Protocol.TPraos.Rules.Overlay" "cardano-protocol-tpraos-1.3.0.0-inplace" 'False) (((C1 ('MetaCons "VRFKeyUnknown" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (KeyHash 'StakePool c))) :+: C1 ('MetaCons "VRFKeyWrongVRFKey" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (KeyHash 'StakePool c)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VRFVerKeyHash 'StakePoolVRF c)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VRFVerKeyHash 'BlockIssuerVRF c))))) :+: (C1 ('MetaCons "VRFKeyBadNonce" 'PrefixI 'False) ((S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Nonce) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SlotNo)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Nonce) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (CertifiedVRF (VRF c) Nonce)))) :+: (C1 ('MetaCons "VRFKeyBadLeaderValue" 'PrefixI 'False) ((S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Nonce) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SlotNo)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Nonce) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (CertifiedVRF (VRF c) Nonce)))) :+: C1 ('MetaCons "VRFLeaderValueTooBig" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (OutputVRF (VRF c))) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Rational) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ActiveSlotCoeff)))))) :+: ((C1 ('MetaCons "NotActiveSlotOVERLAY" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SlotNo)) :+: C1 ('MetaCons "WrongGenesisColdKeyOVERLAY" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (KeyHash 'BlockIssuer c)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (KeyHash 'GenesisDelegate c)))) :+: (C1 ('MetaCons "WrongGenesisVRFKeyOVERLAY" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (KeyHash 'BlockIssuer c)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VRFVerKeyHash 'GenDelegVRF c)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VRFVerKeyHash 'BlockIssuerVRF c)))) :+: (C1 ('MetaCons "UnknownGenesisKeyOVERLAY" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (KeyHash 'Genesis c))) :+: C1 ('MetaCons "OcertFailure" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PredicateFailure (OCERT c))))))))

data OBftSlot c Source #

Instances

Instances details
Generic (OBftSlot c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Associated Types

type Rep (OBftSlot c) ∷ TypeType Source #

Methods

fromOBftSlot c → Rep (OBftSlot c) x Source #

toRep (OBftSlot c) x → OBftSlot c Source #

Show (OBftSlot c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Crypto c ⇒ DecCBOR (OBftSlot c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Crypto c ⇒ EncCBOR (OBftSlot c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Methods

encCBOROBftSlot c → Encoding Source #

encodedSizeExpr ∷ (∀ t. EncCBOR t ⇒ Proxy t → Size) → Proxy (OBftSlot c) → Size Source #

encodedListSizeExpr ∷ (∀ t. EncCBOR t ⇒ Proxy t → Size) → Proxy [OBftSlot c] → Size Source #

NFData (OBftSlot c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Methods

rnfOBftSlot c → () Source #

Eq (OBftSlot c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Methods

(==)OBftSlot c → OBftSlot c → Bool Source #

(/=)OBftSlot c → OBftSlot c → Bool Source #

Ord (OBftSlot c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

Methods

compareOBftSlot c → OBftSlot c → Ordering Source #

(<)OBftSlot c → OBftSlot c → Bool Source #

(<=)OBftSlot c → OBftSlot c → Bool Source #

(>)OBftSlot c → OBftSlot c → Bool Source #

(>=)OBftSlot c → OBftSlot c → Bool Source #

maxOBftSlot c → OBftSlot c → OBftSlot c Source #

minOBftSlot c → OBftSlot c → OBftSlot c Source #

NoThunks (OBftSlot c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep (OBftSlot c) Source # 
Instance details

Defined in Cardano.Protocol.TPraos.Rules.Overlay

type Rep (OBftSlot c) = D1 ('MetaData "OBftSlot" "Cardano.Protocol.TPraos.Rules.Overlay" "cardano-protocol-tpraos-1.3.0.0-inplace" 'False) (C1 ('MetaCons "NonActiveSlot" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "ActiveSlot" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (KeyHash 'Genesis c))))

overlaySlotsSlotNoUnitIntervalEpochSize → [SlotNo] Source #

Return the list of overlaySlots for a given epoch. Note that this linear in the size of the epoch, and should probably only be used for testing. If something more performant is needed, we could probably use [start + floor(xd) | x <- [0 .. (spe -1)], floor(xd) < spe] but we would need to make sure that this is equivalent.