Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.Shelley.ShelleyHFC
Contents
Description
This module is the Shelley Hard Fork Combinator
Synopsis
- type ProtocolShelley = HardForkProtocol '[ShelleyBlock (TPraos StandardCrypto) ShelleyEra]
- type ShelleyBlockHFC proto era = HardForkBlock '[ShelleyBlock proto era]
- data ShelleyPartialLedgerConfig era = ShelleyPartialLedgerConfig {}
- crossEraForecastAcrossShelley ∷ ∀ eraFrom eraTo protoFrom protoTo. (TranslateProto protoFrom protoTo, LedgerSupportsProtocol (ShelleyBlock protoFrom eraFrom)) ⇒ RequiringBoth WrapLedgerConfig (CrossEraForecaster LedgerState WrapLedgerView) (ShelleyBlock protoFrom eraFrom) (ShelleyBlock protoTo eraTo)
- forecastAcrossShelley ∷ ∀ protoFrom protoTo eraFrom eraTo (mk ∷ MapKind). (TranslateProto protoFrom protoTo, LedgerSupportsProtocol (ShelleyBlock protoFrom eraFrom)) ⇒ ShelleyLedgerConfig eraFrom → ShelleyLedgerConfig eraTo → Bound → SlotNo → LedgerState (ShelleyBlock protoFrom eraFrom) mk → Except OutsideForecastRange (WrapLedgerView (ShelleyBlock protoTo eraTo))
- translateChainDepStateAcrossShelley ∷ ∀ eraFrom eraTo protoFrom protoTo. TranslateProto protoFrom protoTo ⇒ RequiringBoth WrapConsensusConfig (Translate WrapChainDepState) (ShelleyBlock protoFrom eraFrom) (ShelleyBlock protoTo eraTo)
Documentation
type ShelleyBlockHFC proto era = HardForkBlock '[ShelleyBlock proto era] Source #
Shelley as the single era in the hard fork combinator
data ShelleyPartialLedgerConfig era Source #
Constructors
ShelleyPartialLedgerConfig | |
Fields
|
Instances
crossEraForecastAcrossShelley ∷ ∀ eraFrom eraTo protoFrom protoTo. (TranslateProto protoFrom protoTo, LedgerSupportsProtocol (ShelleyBlock protoFrom eraFrom)) ⇒ RequiringBoth WrapLedgerConfig (CrossEraForecaster LedgerState WrapLedgerView) (ShelleyBlock protoFrom eraFrom) (ShelleyBlock protoTo eraTo) Source #
forecastAcrossShelley Source #
Arguments
∷ ∀ protoFrom protoTo eraFrom eraTo (mk ∷ MapKind). (TranslateProto protoFrom protoTo, LedgerSupportsProtocol (ShelleyBlock protoFrom eraFrom)) | |
⇒ ShelleyLedgerConfig eraFrom | |
→ ShelleyLedgerConfig eraTo | |
→ Bound | Transition between the two eras |
→ SlotNo | Forecast for this slot |
→ LedgerState (ShelleyBlock protoFrom eraFrom) mk | |
→ Except OutsideForecastRange (WrapLedgerView (ShelleyBlock protoTo eraTo)) |
Forecast from a Shelley-based era to the next Shelley-based era.
translateChainDepStateAcrossShelley ∷ ∀ eraFrom eraTo protoFrom protoTo. TranslateProto protoFrom protoTo ⇒ RequiringBoth WrapConsensusConfig (Translate WrapChainDepState) (ShelleyBlock protoFrom eraFrom) (ShelleyBlock protoTo eraTo) Source #
Orphan instances
(ShelleyBasedEra era, ShelleyBasedEra (PreviousEra era), Era (PreviousEra era)) ⇒ TranslateEra era (ShelleyTip proto) Source # | |||||
Associated Types
Methods translateEra ∷ TranslationContext era → ShelleyTip proto (PreviousEra era) → Except (TranslationError era (ShelleyTip proto)) (ShelleyTip proto era) Source # | |||||
(ShelleyBasedEra era, TranslateEra era WrapTx) ⇒ TranslateEra era (GenTx :.: ShelleyBlock proto) Source # | |||||
Associated Types
Methods translateEra ∷ TranslationContext era → (GenTx :.: ShelleyBlock proto) (PreviousEra era) → Except (TranslationError era (GenTx :.: ShelleyBlock proto)) ((GenTx :.: ShelleyBlock proto) era) Source # | |||||
(ShelleyBasedEra era, TranslateEra era WrapTx) ⇒ TranslateEra era (WrapValidatedGenTx :.: ShelleyBlock proto) Source # | |||||
Associated Types
Methods translateEra ∷ TranslationContext era → (WrapValidatedGenTx :.: ShelleyBlock proto) (PreviousEra era) → Except (TranslationError era (WrapValidatedGenTx :.: ShelleyBlock proto)) ((WrapValidatedGenTx :.: ShelleyBlock proto) era) Source # | |||||
(ShelleyBasedEra era, ShelleyBasedEra (PreviousEra era), TranslateEra era (ShelleyTip proto), TranslateEra era NewEpochState, TranslationError era NewEpochState ~ Void, CanMapMK mk, CanMapKeysMK mk) ⇒ TranslateEra era (Flip LedgerState mk :.: ShelleyBlock proto) Source # | |||||
Associated Types
Methods translateEra ∷ TranslationContext era → (Flip LedgerState mk :.: ShelleyBlock proto) (PreviousEra era) → Except (TranslationError era (Flip LedgerState mk :.: ShelleyBlock proto)) ((Flip LedgerState mk :.: ShelleyBlock proto) era) Source # | |||||
Show (CanonicalTxIn '[ShelleyBlock proto era]) Source # | |||||
Methods showsPrec ∷ Int → CanonicalTxIn '[ShelleyBlock proto era] → ShowS # show ∷ CanonicalTxIn '[ShelleyBlock proto era] → String # showList ∷ [CanonicalTxIn '[ShelleyBlock proto era]] → ShowS # | |||||
Eq (CanonicalTxIn '[ShelleyBlock proto era]) Source # | |||||
Methods (==) ∷ CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] → Bool # (/=) ∷ CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] → Bool # | |||||
Ord (CanonicalTxIn '[ShelleyBlock proto era]) Source # | |||||
Methods compare ∷ CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] → Ordering # (<) ∷ CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] → Bool # (<=) ∷ CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] → Bool # (>) ∷ CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] → Bool # (>=) ∷ CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] → Bool # max ∷ CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] # min ∷ CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] → CanonicalTxIn '[ShelleyBlock proto era] # | |||||
MemPack (CanonicalTxIn '[ShelleyBlock proto era]) Source # | |||||
Methods packedByteCount ∷ CanonicalTxIn '[ShelleyBlock proto era] → Int Source # packM ∷ CanonicalTxIn '[ShelleyBlock proto era] → Pack s () Source # unpackM ∷ Buffer b ⇒ Unpack b (CanonicalTxIn '[ShelleyBlock proto era]) Source # | |||||
NoThunks (CanonicalTxIn '[ShelleyBlock proto era]) Source # | |||||
Methods noThunks ∷ Context → CanonicalTxIn '[ShelleyBlock proto era] → IO (Maybe ThunkInfo) Source # wNoThunks ∷ Context → CanonicalTxIn '[ShelleyBlock proto era] → IO (Maybe ThunkInfo) Source # showTypeOf ∷ Proxy (CanonicalTxIn '[ShelleyBlock proto era]) → String Source # | |||||
PraosCrypto c ⇒ HasPartialConsensusConfig (Praos c) Source # | |||||
Associated Types
Methods completeConsensusConfig ∷ proxy (Praos c) → EpochInfo (Except PastHorizonException) → PartialConsensusConfig (Praos c) → ConsensusConfig (Praos c) Source # toPartialConsensusConfig ∷ proxy (Praos c) → ConsensusConfig (Praos c) → PartialConsensusConfig (Praos c) Source # | |||||
PraosCrypto c ⇒ HasPartialConsensusConfig (TPraos c) Source # | |||||
Associated Types
Methods completeConsensusConfig ∷ proxy (TPraos c) → EpochInfo (Except PastHorizonException) → PartialConsensusConfig (TPraos c) → ConsensusConfig (TPraos c) Source # toPartialConsensusConfig ∷ proxy (TPraos c) → ConsensusConfig (TPraos c) → PartialConsensusConfig (TPraos c) Source # | |||||
ShelleyCompatible proto era ⇒ SerializeTablesWithHint (LedgerState (HardForkBlock '[ShelleyBlock proto era])) Source # | |||||
Methods encodeTablesWithHint ∷ SerializeTablesHint (LedgerTables (LedgerState (HardForkBlock '[ShelleyBlock proto era])) ValuesMK) → LedgerTables (LedgerState (HardForkBlock '[ShelleyBlock proto era])) ValuesMK → Encoding Source # decodeTablesWithHint ∷ SerializeTablesHint (LedgerTables (LedgerState (HardForkBlock '[ShelleyBlock proto era])) ValuesMK) → Decoder s (LedgerTables (LedgerState (HardForkBlock '[ShelleyBlock proto era])) ValuesMK) Source # | |||||
(ShelleyCompatible proto era, LedgerSupportsProtocol (ShelleyBlock proto era)) ⇒ ImmutableEraParams (ShelleyBlock proto era) Source # | |||||
Methods immutableEraParams ∷ TopLevelConfig (ShelleyBlock proto era) → EraParams Source # | |||||
(ShelleyCompatible proto era, LedgerSupportsProtocol (ShelleyBlock proto era), TxLimits (ShelleyBlock proto era), Crypto (ProtoCrypto proto)) ⇒ NoHardForks (ShelleyBlock proto era) Source # | |||||
Methods toPartialLedgerConfig ∷ proxy (ShelleyBlock proto era) → LedgerConfig (ShelleyBlock proto era) → PartialLedgerConfig (ShelleyBlock proto era) Source # | |||||
(ShelleyCompatible proto era, LedgerSupportsProtocol (ShelleyBlock proto era), TxLimits (ShelleyBlock proto era), Crypto (ProtoCrypto proto)) ⇒ SingleEraBlock (ShelleyBlock proto era) Source # | |||||
Methods singleEraTransition ∷ ∀ (mk ∷ MapKind). PartialLedgerConfig (ShelleyBlock proto era) → EraParams → Bound → LedgerState (ShelleyBlock proto era) mk → Maybe EpochNo Source # singleEraInfo ∷ proxy (ShelleyBlock proto era) → SingleEraInfo (ShelleyBlock proto era) Source # | |||||
(ShelleyCompatible proto era, LedgerSupportsProtocol (ShelleyBlock proto era), TxLimits (ShelleyBlock proto era), Crypto (ProtoCrypto proto)) ⇒ SerialiseConstraintsHFC (ShelleyBlock proto era) Source # | |||||
(ShelleyCompatible proto era, LedgerSupportsProtocol (ShelleyBlock proto era), TxLimits (ShelleyBlock proto era), Crypto (ProtoCrypto proto)) ⇒ SupportedNetworkProtocolVersion (ShelleyBlockHFC proto era) Source # | Forward to the ShelleyBlock instance. Only supports
| ||||
Methods supportedNodeToNodeVersions ∷ Proxy (ShelleyBlockHFC proto era) → Map NodeToNodeVersion (BlockNodeToNodeVersion (ShelleyBlockHFC proto era)) Source # supportedNodeToClientVersions ∷ Proxy (ShelleyBlockHFC proto era) → Map NodeToClientVersion (BlockNodeToClientVersion (ShelleyBlockHFC proto era)) Source # latestReleasedNodeVersion ∷ Proxy (ShelleyBlockHFC proto era) → (Maybe NodeToNodeVersion, Maybe NodeToClientVersion) Source # | |||||
(txout ~ TxOut era, MemPack txout) ⇒ IndexedMemPack (LedgerState (HardForkBlock '[ShelleyBlock proto era]) EmptyMK) txout Source # | |||||
Methods indexedPackedByteCount ∷ LedgerState (HardForkBlock '[ShelleyBlock proto era]) EmptyMK → txout → Int Source # indexedPackM ∷ LedgerState (HardForkBlock '[ShelleyBlock proto era]) EmptyMK → txout → Pack s () Source # indexedUnpackM ∷ Buffer b ⇒ LedgerState (HardForkBlock '[ShelleyBlock proto era]) EmptyMK → Unpack b txout Source # indexedTypeName ∷ LedgerState (HardForkBlock '[ShelleyBlock proto era]) EmptyMK → String Source # | |||||
(ShelleyCompatible proto era, ShelleyBasedEra era) ⇒ HasCanonicalTxIn '[ShelleyBlock proto era] Source # | |||||
Associated Types
Methods injectCanonicalTxIn ∷ Index '[ShelleyBlock proto era] x → TxIn (LedgerState x) → CanonicalTxIn '[ShelleyBlock proto era] Source # ejectCanonicalTxIn ∷ Index '[ShelleyBlock proto era] x → CanonicalTxIn '[ShelleyBlock proto era] → TxIn (LedgerState x) Source # | |||||
ShelleyCompatible proto era ⇒ HasHardForkTxOut '[ShelleyBlock proto era] Source # | |||||
Associated Types
Methods injectHardForkTxOut ∷ Index '[ShelleyBlock proto era] x → TxOut (LedgerState x) → HardForkTxOut '[ShelleyBlock proto era] Source # ejectHardForkTxOut ∷ Index '[ShelleyBlock proto era] x → HardForkTxOut '[ShelleyBlock proto era] → TxOut (LedgerState x) Source # txOutEjections ∷ NP ((K (NS WrapTxOut '[ShelleyBlock proto era]) ∷ Type → Type) -.-> WrapTxOut) '[ShelleyBlock proto era] Source # txOutTranslations ∷ Tails (Fn2 WrapTxOut) '[ShelleyBlock proto era] Source # | |||||
(ShelleyCompatible proto era, ShelleyBasedEra era, TxOut (LedgerState (ShelleyBlock proto era)) ~ TxOut era, HasHardForkTxOut '[ShelleyBlock proto era]) ⇒ BlockSupportsHFLedgerQuery '[ShelleyBlock proto era] Source # | |||||
Methods answerBlockQueryHFLookup ∷ (All SingleEraBlock '[ShelleyBlock proto era], Monad m) ⇒ Index '[ShelleyBlock proto era] x → ExtLedgerCfg x → BlockQuery x 'QFLookupTables result → ReadOnlyForker' m (HardForkBlock '[ShelleyBlock proto era]) → m result Source # answerBlockQueryHFTraverse ∷ (All SingleEraBlock '[ShelleyBlock proto era], Monad m) ⇒ Index '[ShelleyBlock proto era] x → ExtLedgerCfg x → BlockQuery x 'QFTraverseTables result → ReadOnlyForker' m (HardForkBlock '[ShelleyBlock proto era]) → m result Source # queryLedgerGetTraversingFilter ∷ Index '[ShelleyBlock proto era] x → BlockQuery x 'QFTraverseTables result → TxOut (LedgerState (HardForkBlock '[ShelleyBlock proto era])) → Bool Source # | |||||
(ShelleyCompatible proto era, LedgerSupportsProtocol (ShelleyBlock proto era), TxLimits (ShelleyBlock proto era), Crypto (ProtoCrypto proto)) ⇒ SerialiseHFC '[ShelleyBlock proto era] Source # | Use the default implementations. This means the serialisation of blocks includes an era wrapper. Each block should do this from the start to be prepared for future hard forks without having to do any bit twiddling. | ||||
Methods encodeDiskHfcBlock ∷ CodecConfig (HardForkBlock '[ShelleyBlock proto era]) → HardForkBlock '[ShelleyBlock proto era] → Encoding Source # decodeDiskHfcBlock ∷ CodecConfig (HardForkBlock '[ShelleyBlock proto era]) → ∀ s. Decoder s (ByteString → HardForkBlock '[ShelleyBlock proto era]) Source # reconstructHfcPrefixLen ∷ proxy (Header (HardForkBlock '[ShelleyBlock proto era])) → PrefixLen Source # reconstructHfcNestedCtxt ∷ proxy (Header (HardForkBlock '[ShelleyBlock proto era])) → ShortByteString → SizeInBytes → SomeSecond (NestedCtxt Header) (HardForkBlock '[ShelleyBlock proto era]) Source # getHfcBinaryBlockInfo ∷ HardForkBlock '[ShelleyBlock proto era] → BinaryBlockInfo Source # estimateHfcBlockSize ∷ Header (HardForkBlock '[ShelleyBlock proto era]) → SizeInBytes Source # |