Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Besides capturing all configuration that is necessary to progress to a specific era, this interface also provides fast forward functionality that is used in testing and benchmarking in order to initilize a chain in a particular era without going through the trouble of generating all the history for preceeding eras.
Synopsis
- class (EraTxOut era, EraGov era, EraGenesis era, ToJSON (TransitionConfig era), FromJSON (TransitionConfig era), Default (StashedAVVMAddresses era)) ⇒ EraTransition era where
- data TransitionConfig era ∷ Type
- mkTransitionConfig ∷ TranslationContext era → TransitionConfig (PreviousEra era) → TransitionConfig era
- injectIntoTestState ∷ TransitionConfig era → NewEpochState era → NewEpochState era
- tcPreviousEraConfigL ∷ EraTransition (PreviousEra era) ⇒ Lens' (TransitionConfig era) (TransitionConfig (PreviousEra era))
- tcTranslationContextL ∷ Lens' (TransitionConfig era) (TranslationContext era)
- tcShelleyGenesisL ∷ Lens' (TransitionConfig era) (ShelleyGenesis (EraCrypto era))
- tcInitialPParamsG ∷ SimpleGetter (TransitionConfig era) (PParams era)
- tcInitialFundsL ∷ (HasCallStack, EraTransition era) ⇒ Lens' (TransitionConfig era) (ListMap (Addr (EraCrypto era)) Coin)
- tcInitialStakingL ∷ (HasCallStack, EraTransition era) ⇒ Lens' (TransitionConfig era) (ShelleyGenesisStaking (EraCrypto era))
- mkShelleyTransitionConfig ∷ ShelleyGenesis c → TransitionConfig (ShelleyEra c)
- createInitialState ∷ ∀ era. (EraTransition era, HasCallStack) ⇒ TransitionConfig era → NewEpochState era
- registerInitialFundsThenStaking ∷ EraTransition era ⇒ TransitionConfig era → NewEpochState era → NewEpochState era
- toShelleyTransitionConfigPairs ∷ (KeyValue e a, Crypto c) ⇒ TransitionConfig (ShelleyEra c) → [a]
- protectMainnet ∷ (HasCallStack, EraTransition era) ⇒ String → TransitionConfig era → (a → Bool) → a → a
- protectMainnetLens ∷ (HasCallStack, EraTransition era) ⇒ String → (a → Bool) → Lens' (TransitionConfig era) a → Lens' (TransitionConfig era) a
Documentation
class (EraTxOut era, EraGov era, EraGenesis era, ToJSON (TransitionConfig era), FromJSON (TransitionConfig era), Default (StashedAVVMAddresses era)) ⇒ EraTransition era where Source #
data TransitionConfig era ∷ Type Source #
Cumulative configuration that is needed to be able to start in a current era
∷ TranslationContext era | Translation context necessary for advancing from previous era into the current one. This will usually be the contents of genesis file, if one exists for the current era |
→ TransitionConfig (PreviousEra era) | Transition configuration for the previous era. |
→ TransitionConfig era |
∷ TransitionConfig era | Extract data from the given transition configuration and store it in the given state. Warning - Should only be used in testing and benchmarking. Will result in an error
when |
→ NewEpochState era | |
→ NewEpochState era |
tcPreviousEraConfigL ∷ EraTransition (PreviousEra era) ⇒ Lens' (TransitionConfig era) (TransitionConfig (PreviousEra era)) Source #
In case when a previous era is available, we should always be able to access
TransitionConfig
for the previous era, from within the current era's
TransitionConfig
tcTranslationContextL ∷ Lens' (TransitionConfig era) (TranslationContext era) Source #
Lens for the TranslationContext
for the current era from the TransitionConfig
Translation context is a different name for the Genesis type for each era, they are
one and the same concept.
tcShelleyGenesisL ∷ Lens' (TransitionConfig era) (ShelleyGenesis (EraCrypto era)) Source #
Lens for the ShelleyGenesis
from the TransitionConfig
. Default implementation
looks in the previous era's config
default tcShelleyGenesisL ∷ (EraTransition (PreviousEra era), EraCrypto (PreviousEra era) ~ EraCrypto era) ⇒ Lens' (TransitionConfig era) (ShelleyGenesis (EraCrypto era)) Source #
tcInitialPParamsG ∷ SimpleGetter (TransitionConfig era) (PParams era) Source #
Get the initial PParams for the current era from the TransitionConfig
. Note that
this is only useful for testing and fast forward functionality, because this function
assumes no on-chain changes to PParams through PParamsUpdate functionality.
Default implementation will use the PParams from the Previous era and the current
TranslationContext
to construct PParams for the current era.
Warning - Should only be used in testing and benchmarking
default tcInitialPParamsG ∷ (EraTransition (PreviousEra era), TranslateEra era PParams, TranslationError era PParams ~ Void) ⇒ SimpleGetter (TransitionConfig era) (PParams era) Source #
Instances
Crypto c ⇒ EraTransition (ShelleyEra c) Source # | |
Defined in Cardano.Ledger.Shelley.Transition data TransitionConfig (ShelleyEra c) Source # mkTransitionConfig ∷ TranslationContext (ShelleyEra c) → TransitionConfig (PreviousEra (ShelleyEra c)) → TransitionConfig (ShelleyEra c) Source # injectIntoTestState ∷ TransitionConfig (ShelleyEra c) → NewEpochState (ShelleyEra c) → NewEpochState (ShelleyEra c) Source # tcPreviousEraConfigL ∷ Lens' (TransitionConfig (ShelleyEra c)) (TransitionConfig (PreviousEra (ShelleyEra c))) Source # tcTranslationContextL ∷ Lens' (TransitionConfig (ShelleyEra c)) (TranslationContext (ShelleyEra c)) Source # tcShelleyGenesisL ∷ Lens' (TransitionConfig (ShelleyEra c)) (ShelleyGenesis (EraCrypto (ShelleyEra c))) Source # tcInitialPParamsG ∷ SimpleGetter (TransitionConfig (ShelleyEra c)) (PParams (ShelleyEra c)) Source # |
tcInitialFundsL ∷ (HasCallStack, EraTransition era) ⇒ Lens' (TransitionConfig era) (ListMap (Addr (EraCrypto era)) Coin) Source #
Get the initial funds from the TransitionConfig
. This value must be non-empty
only during testing and benchmarking, it must never contain anything on a real system.
Warning - Should only be used in testing and benchmarking. Will result in an error when NetworkId is set to Mainnet
tcInitialStakingL ∷ (HasCallStack, EraTransition era) ⇒ Lens' (TransitionConfig era) (ShelleyGenesisStaking (EraCrypto era)) Source #
Get the initial staking from the TransitionConfig
. This value must be non-empty
only during testing and benchmarking, it must never contain anything on a real system.
Warning - Should only be used in testing and benchmarking. Will result in an error when NetworkId is set to Mainnet
mkShelleyTransitionConfig ∷ ShelleyGenesis c → TransitionConfig (ShelleyEra c) Source #
Constructor for the base Shelley TransitionConfig
createInitialState ∷ ∀ era. (EraTransition era, HasCallStack) ⇒ TransitionConfig era → NewEpochState era Source #
Helper function for constructing the initial state for any era
Warning - Should only be used in testing and benchmarking. Will result in an error when NetworkId is set to Mainnet
This function does not register any initial funds or delegates.
registerInitialFundsThenStaking ∷ EraTransition era ⇒ TransitionConfig era → NewEpochState era → NewEpochState era Source #
toShelleyTransitionConfigPairs ∷ (KeyValue e a, Crypto c) ⇒ TransitionConfig (ShelleyEra c) → [a] Source #
protectMainnet ∷ (HasCallStack, EraTransition era) ⇒ String → TransitionConfig era → (a → Bool) → a → a Source #
protectMainnetLens ∷ (HasCallStack, EraTransition era) ⇒ String → (a → Bool) → Lens' (TransitionConfig era) a → Lens' (TransitionConfig era) a Source #