Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Cardano.Api.ProtocolParameters
Description
The various Cardano protocol parameters, including:
- the current values of updatable protocol parameters:
ProtocolParameters
- updates to protocol parameters:
ProtocolParametersUpdate
- update proposals that can be embedded in transactions:
UpdateProposal
- parameters fixed in the genesis file:
GenesisParameters
Synopsis
- data ProtocolParameters = ProtocolParameters {
- protocolParamProtocolVersion ∷ (Natural, Natural)
- protocolParamDecentralization ∷ Maybe Rational
- protocolParamExtraPraosEntropy ∷ Maybe PraosNonce
- protocolParamMaxBlockHeaderSize ∷ Natural
- protocolParamMaxBlockBodySize ∷ Natural
- protocolParamMaxTxSize ∷ Natural
- protocolParamTxFeeFixed ∷ Natural
- protocolParamTxFeePerByte ∷ Natural
- protocolParamMinUTxOValue ∷ Maybe Lovelace
- protocolParamStakeAddressDeposit ∷ Lovelace
- protocolParamStakePoolDeposit ∷ Lovelace
- protocolParamMinPoolCost ∷ Lovelace
- protocolParamPoolRetireMaxEpoch ∷ EpochNo
- protocolParamStakePoolTargetNum ∷ Natural
- protocolParamPoolPledgeInfluence ∷ Rational
- protocolParamMonetaryExpansion ∷ Rational
- protocolParamTreasuryCut ∷ Rational
- protocolParamUTxOCostPerWord ∷ Maybe Lovelace
- protocolParamCostModels ∷ Map AnyPlutusScriptVersion CostModel
- protocolParamPrices ∷ Maybe ExecutionUnitPrices
- protocolParamMaxTxExUnits ∷ Maybe ExecutionUnits
- protocolParamMaxBlockExUnits ∷ Maybe ExecutionUnits
- protocolParamMaxValueSize ∷ Maybe Natural
- protocolParamCollateralPercent ∷ Maybe Natural
- protocolParamMaxCollateralInputs ∷ Maybe Natural
- protocolParamUTxOCostPerByte ∷ Maybe Lovelace
- checkProtocolParameters ∷ ∀ era. IsCardanoEra era ⇒ ShelleyBasedEra era → ProtocolParameters → Either ProtocolParametersError ()
- data ProtocolParametersError
- data EpochNo
- data BundledProtocolParameters era where
- bundleProtocolParams ∷ CardanoEra era → ProtocolParameters → BundledProtocolParameters era
- unbundleProtocolParams ∷ BundledProtocolParameters era → ProtocolParameters
- unbundleLedgerShelleyBasedProtocolParams ∷ ShelleyBasedEra era → BundledProtocolParameters era → PParams (ShelleyLedgerEra era)
- data ProtocolParametersUpdate = ProtocolParametersUpdate {
- protocolUpdateProtocolVersion ∷ Maybe (Natural, Natural)
- protocolUpdateDecentralization ∷ Maybe Rational
- protocolUpdateExtraPraosEntropy ∷ Maybe (Maybe PraosNonce)
- protocolUpdateMaxBlockHeaderSize ∷ Maybe Natural
- protocolUpdateMaxBlockBodySize ∷ Maybe Natural
- protocolUpdateMaxTxSize ∷ Maybe Natural
- protocolUpdateTxFeeFixed ∷ Maybe Natural
- protocolUpdateTxFeePerByte ∷ Maybe Natural
- protocolUpdateMinUTxOValue ∷ Maybe Lovelace
- protocolUpdateStakeAddressDeposit ∷ Maybe Lovelace
- protocolUpdateStakePoolDeposit ∷ Maybe Lovelace
- protocolUpdateMinPoolCost ∷ Maybe Lovelace
- protocolUpdatePoolRetireMaxEpoch ∷ Maybe EpochNo
- protocolUpdateStakePoolTargetNum ∷ Maybe Natural
- protocolUpdatePoolPledgeInfluence ∷ Maybe Rational
- protocolUpdateMonetaryExpansion ∷ Maybe Rational
- protocolUpdateTreasuryCut ∷ Maybe Rational
- protocolUpdateUTxOCostPerWord ∷ Maybe Lovelace
- protocolUpdateCostModels ∷ Map AnyPlutusScriptVersion CostModel
- protocolUpdatePrices ∷ Maybe ExecutionUnitPrices
- protocolUpdateMaxTxExUnits ∷ Maybe ExecutionUnits
- protocolUpdateMaxBlockExUnits ∷ Maybe ExecutionUnits
- protocolUpdateMaxValueSize ∷ Maybe Natural
- protocolUpdateCollateralPercent ∷ Maybe Natural
- protocolUpdateMaxCollateralInputs ∷ Maybe Natural
- protocolUpdateUTxOCostPerByte ∷ Maybe Lovelace
- data PraosNonce
- makePraosNonce ∷ ByteString → PraosNonce
- data ExecutionUnits = ExecutionUnits {}
- data ExecutionUnitPrices = ExecutionUnitPrices {}
- newtype CostModel = CostModel (Map Text Integer)
- validateCostModel ∷ PlutusScriptVersion lang → CostModel → Either InvalidCostModel ()
- fromAlonzoCostModels ∷ CostModels → Map AnyPlutusScriptVersion CostModel
- data UpdateProposal = UpdateProposal !(Map (Hash GenesisKey) ProtocolParametersUpdate) !EpochNo
- makeShelleyUpdateProposal ∷ ProtocolParametersUpdate → [Hash GenesisKey] → EpochNo → UpdateProposal
- toLedgerNonce ∷ Maybe PraosNonce → Nonce
- toLedgerUpdate ∷ ∀ era ledgerera. ShelleyLedgerEra era ~ ledgerera ⇒ Crypto ledgerera ~ StandardCrypto ⇒ ShelleyBasedEra era → UpdateProposal → Update ledgerera
- fromLedgerUpdate ∷ ∀ era ledgerera. ShelleyLedgerEra era ~ ledgerera ⇒ Crypto ledgerera ~ StandardCrypto ⇒ ShelleyBasedEra era → Update ledgerera → UpdateProposal
- toLedgerProposedPPUpdates ∷ ∀ era ledgerera. ShelleyLedgerEra era ~ ledgerera ⇒ Crypto ledgerera ~ StandardCrypto ⇒ ShelleyBasedEra era → Map (Hash GenesisKey) ProtocolParametersUpdate → ProposedPPUpdates ledgerera
- fromLedgerProposedPPUpdates ∷ ∀ era ledgerera. ShelleyLedgerEra era ~ ledgerera ⇒ Crypto ledgerera ~ StandardCrypto ⇒ ShelleyBasedEra era → ProposedPPUpdates ledgerera → Map (Hash GenesisKey) ProtocolParametersUpdate
- toLedgerPParams ∷ ShelleyBasedEra era → ProtocolParameters → PParams (ShelleyLedgerEra era)
- fromLedgerPParams ∷ ShelleyBasedEra era → PParams (ShelleyLedgerEra era) → ProtocolParameters
- fromShelleyPParams ∷ ShelleyPParams ledgerera → ProtocolParameters
- toAlonzoPrices ∷ ExecutionUnitPrices → Maybe Prices
- fromAlonzoPrices ∷ Prices → ExecutionUnitPrices
- toAlonzoScriptLanguage ∷ AnyPlutusScriptVersion → Language
- fromAlonzoScriptLanguage ∷ Language → AnyPlutusScriptVersion
- toAlonzoCostModel ∷ CostModel → Language → Either InvalidCostModel CostModel
- fromAlonzoCostModel ∷ CostModel → CostModel
- toAlonzoCostModels ∷ Map AnyPlutusScriptVersion CostModel → Either String CostModels
- toAlonzoPParams ∷ ProtocolParameters → AlonzoPParams ledgerera
- toBabbagePParams ∷ ProtocolParameters → BabbagePParams ledgerera
- toConwayPParams ∷ ProtocolParameters → BabbagePParams ledgerera
- data family AsType t
The updatable protocol parameters
data ProtocolParameters Source #
The values of the set of updatable protocol parameters. At any particular point on the chain there is a current set of parameters in use.
These parameters can be updated (at epoch boundaries) via an
UpdateProposal
, which contains a ProtocolParametersUpdate
.
The ProtocolParametersUpdate
is essentially a diff for the
ProtocolParameters
.
There are also parameters fixed in the Genesis file. See GenesisParameters
.
Constructors
ProtocolParameters | |
Fields
|
Instances
checkProtocolParameters ∷ ∀ era. IsCardanoEra era ⇒ ShelleyBasedEra era → ProtocolParameters → Either ProtocolParametersError () Source #
data ProtocolParametersError Source #
Constructors
PParamsErrorMissingMinUTxoValue AnyCardanoEra | |
PParamsErrorMissingAlonzoProtocolParameter |
Instances
Show ProtocolParametersError Source # | |
Defined in Cardano.Api.ProtocolParameters | |
Error ProtocolParametersError Source # | |
Defined in Cardano.Api.ProtocolParameters Methods |
Instances
data BundledProtocolParameters era where Source #
Bundle cardano-api representation and ledger representation of protocol parameters together so they can be computed once and passed around rather than re-computed unecessarily.
The consructor arguments are intentionally lazy so that the values are not computed if not used (which may be the case for some code paths).
Constructors
unbundleLedgerShelleyBasedProtocolParams ∷ ShelleyBasedEra era → BundledProtocolParameters era → PParams (ShelleyLedgerEra era) Source #
Updates to the protocol parameters
data ProtocolParametersUpdate Source #
The representation of a change in the ProtocolParameters
.
Constructors
ProtocolParametersUpdate | |
Fields
|
Instances
Monoid ProtocolParametersUpdate Source # | |
Semigroup ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters | |
Show ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters | |
FromCBOR ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters Methods fromCBOR ∷ Decoder s ProtocolParametersUpdate # | |
ToCBOR ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters Methods toCBOR ∷ ProtocolParametersUpdate → Encoding # encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy ProtocolParametersUpdate → Size # encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [ProtocolParametersUpdate] → Size # | |
Eq ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters |
PraosNonce
data PraosNonce Source #
Instances
Execution units, prices and cost models,
data ExecutionUnits Source #
The units for how long a script executes for and how much memory it uses. This is used to declare the resources used by a particular use of a script.
This type is also used to describe the limits for the maximum overall execution units per transaction or per block.
Constructors
ExecutionUnits | |
Fields
|
Instances
FromJSON ExecutionUnits Source # | |
Defined in Cardano.Api.Script | |
ToJSON ExecutionUnits Source # | |
Defined in Cardano.Api.Script Methods toJSON ∷ ExecutionUnits → Value # toEncoding ∷ ExecutionUnits → Encoding # toJSONList ∷ [ExecutionUnits] → Value # toEncodingList ∷ [ExecutionUnits] → Encoding # | |
Show ExecutionUnits Source # | |
Defined in Cardano.Api.Script | |
FromCBOR ExecutionUnits Source # | |
Defined in Cardano.Api.Script | |
ToCBOR ExecutionUnits Source # | |
Defined in Cardano.Api.Script Methods toCBOR ∷ ExecutionUnits → Encoding # encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy ExecutionUnits → Size # encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [ExecutionUnits] → Size # | |
Eq ExecutionUnits Source # | |
Defined in Cardano.Api.Script Methods (==) ∷ ExecutionUnits → ExecutionUnits → Bool Source # (/=) ∷ ExecutionUnits → ExecutionUnits → Bool Source # |
data ExecutionUnitPrices Source #
The prices for ExecutionUnits
as a fraction of a Lovelace
.
These are used to determine the fee for the use of a script within a
transaction, based on the ExecutionUnits
needed by the use of the script.
Constructors
ExecutionUnitPrices | |
Instances
Instances
FromJSON CostModel Source # | |
Defined in Cardano.Api.ProtocolParameters | |
ToJSON CostModel Source # | |
Defined in Cardano.Api.ProtocolParameters Methods toEncoding ∷ CostModel → Encoding # toJSONList ∷ [CostModel] → Value # toEncodingList ∷ [CostModel] → Encoding # | |
Show CostModel Source # | |
FromCBOR CostModel Source # | |
ToCBOR CostModel Source # | |
Eq CostModel Source # | |
validateCostModel ∷ PlutusScriptVersion lang → CostModel → Either InvalidCostModel () Source #
fromAlonzoCostModels ∷ CostModels → Map AnyPlutusScriptVersion CostModel Source #
Update proposals to change the protocol parameters
data UpdateProposal Source #
Constructors
UpdateProposal !(Map (Hash GenesisKey) ProtocolParametersUpdate) !EpochNo |
Instances
makeShelleyUpdateProposal ∷ ProtocolParametersUpdate → [Hash GenesisKey] → EpochNo → UpdateProposal Source #
Internal conversion functions
toLedgerNonce ∷ Maybe PraosNonce → Nonce Source #
toLedgerUpdate ∷ ∀ era ledgerera. ShelleyLedgerEra era ~ ledgerera ⇒ Crypto ledgerera ~ StandardCrypto ⇒ ShelleyBasedEra era → UpdateProposal → Update ledgerera Source #
fromLedgerUpdate ∷ ∀ era ledgerera. ShelleyLedgerEra era ~ ledgerera ⇒ Crypto ledgerera ~ StandardCrypto ⇒ ShelleyBasedEra era → Update ledgerera → UpdateProposal Source #
toLedgerProposedPPUpdates ∷ ∀ era ledgerera. ShelleyLedgerEra era ~ ledgerera ⇒ Crypto ledgerera ~ StandardCrypto ⇒ ShelleyBasedEra era → Map (Hash GenesisKey) ProtocolParametersUpdate → ProposedPPUpdates ledgerera Source #
fromLedgerProposedPPUpdates ∷ ∀ era ledgerera. ShelleyLedgerEra era ~ ledgerera ⇒ Crypto ledgerera ~ StandardCrypto ⇒ ShelleyBasedEra era → ProposedPPUpdates ledgerera → Map (Hash GenesisKey) ProtocolParametersUpdate Source #
toLedgerPParams ∷ ShelleyBasedEra era → ProtocolParameters → PParams (ShelleyLedgerEra era) Source #
fromLedgerPParams ∷ ShelleyBasedEra era → PParams (ShelleyLedgerEra era) → ProtocolParameters Source #
fromShelleyPParams ∷ ShelleyPParams ledgerera → ProtocolParameters Source #
toAlonzoPrices ∷ ExecutionUnitPrices → Maybe Prices Source #
fromAlonzoPrices ∷ Prices → ExecutionUnitPrices Source #
toAlonzoScriptLanguage ∷ AnyPlutusScriptVersion → Language Source #
fromAlonzoScriptLanguage ∷ Language → AnyPlutusScriptVersion Source #
toAlonzoCostModel ∷ CostModel → Language → Either InvalidCostModel CostModel Source #
fromAlonzoCostModel ∷ CostModel → CostModel Source #
toAlonzoCostModels ∷ Map AnyPlutusScriptVersion CostModel → Either String CostModels Source #
toAlonzoPParams ∷ ProtocolParameters → AlonzoPParams ledgerera Source #
toBabbagePParams ∷ ProtocolParameters → BabbagePParams ledgerera Source #
toConwayPParams ∷ ProtocolParameters → BabbagePParams ledgerera Source #
Data family instances
A family of singleton types used in this API to indicate which type to use where it would otherwise be ambiguous or merely unclear.
Values of this type are passed to deserialisation functions for example.