Safe Haskell | None |
---|---|
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 :: Lovelace
- protocolParamTxFeePerByte :: Lovelace
- protocolParamMinUTxOValue :: Maybe Lovelace
- protocolParamStakeAddressDeposit :: Lovelace
- protocolParamStakePoolDeposit :: Lovelace
- protocolParamMinPoolCost :: Lovelace
- protocolParamPoolRetireMaxEpoch :: EpochNo
- protocolParamStakePoolTargetNum :: Natural
- protocolParamPoolPledgeInfluence :: Rational
- protocolParamMonetaryExpansion :: Rational
- protocolParamTreasuryCut :: Rational
- 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 :: ShelleyBasedEra era -> ProtocolParameters -> Either ProtocolParametersError ()
- data EpochNo
- newtype LedgerProtocolParameters era = LedgerProtocolParameters {}
- data EraBasedProtocolParametersUpdate era where
- ShelleyEraBasedProtocolParametersUpdate :: CommonProtocolParametersUpdate -> DeprecatedAfterMaryPParams ShelleyEra -> DeprecatedAfterBabbagePParams ShelleyEra -> ShelleyToAlonzoPParams ShelleyEra -> EraBasedProtocolParametersUpdate ShelleyEra
- AllegraEraBasedProtocolParametersUpdate :: CommonProtocolParametersUpdate -> DeprecatedAfterMaryPParams AllegraEra -> ShelleyToAlonzoPParams AllegraEra -> DeprecatedAfterBabbagePParams ShelleyEra -> EraBasedProtocolParametersUpdate AllegraEra
- MaryEraBasedProtocolParametersUpdate :: CommonProtocolParametersUpdate -> DeprecatedAfterMaryPParams MaryEra -> ShelleyToAlonzoPParams MaryEra -> DeprecatedAfterBabbagePParams ShelleyEra -> EraBasedProtocolParametersUpdate MaryEra
- AlonzoEraBasedProtocolParametersUpdate :: CommonProtocolParametersUpdate -> ShelleyToAlonzoPParams AlonzoEra -> AlonzoOnwardsPParams AlonzoEra -> DeprecatedAfterBabbagePParams ShelleyEra -> EraBasedProtocolParametersUpdate AlonzoEra
- BabbageEraBasedProtocolParametersUpdate :: CommonProtocolParametersUpdate -> AlonzoOnwardsPParams BabbageEra -> DeprecatedAfterBabbagePParams ShelleyEra -> IntroducedInBabbagePParams BabbageEra -> EraBasedProtocolParametersUpdate BabbageEra
- ConwayEraBasedProtocolParametersUpdate :: CommonProtocolParametersUpdate -> AlonzoOnwardsPParams ConwayEra -> IntroducedInBabbagePParams ConwayEra -> IntroducedInConwayPParams (ShelleyLedgerEra ConwayEra) -> EraBasedProtocolParametersUpdate ConwayEra
- data AlonzoOnwardsPParams ledgerera = AlonzoOnwardsPParams {
- alCostModels :: StrictMaybe CostModels
- alPrices :: StrictMaybe Prices
- alMaxTxExUnits :: StrictMaybe ExUnits
- alMaxBlockExUnits :: StrictMaybe ExUnits
- alMaxValSize :: StrictMaybe Natural
- alCollateralPercentage :: StrictMaybe Natural
- alMaxCollateralInputs :: StrictMaybe Natural
- data CommonProtocolParametersUpdate = CommonProtocolParametersUpdate {
- cppMinFeeA :: StrictMaybe Coin
- cppMinFeeB :: StrictMaybe Coin
- cppMaxBlockBodySize :: StrictMaybe Natural
- cppMaxTxSize :: StrictMaybe Natural
- cppMaxBlockHeaderSize :: StrictMaybe Natural
- cppKeyDeposit :: StrictMaybe Coin
- cppPoolDeposit :: StrictMaybe Coin
- cppPoolRetireMaxEpoch :: StrictMaybe EpochNo
- cppStakePoolTargetNum :: StrictMaybe Natural
- cppPoolPledgeInfluence :: StrictMaybe NonNegativeInterval
- cppTreasuryExpansion :: StrictMaybe UnitInterval
- cppMonetaryExpansion :: StrictMaybe UnitInterval
- cppMinPoolCost :: StrictMaybe Coin
- newtype DeprecatedAfterBabbagePParams ledgerera = DeprecatedAfterBabbagePParams (StrictMaybe ProtVer)
- newtype DeprecatedAfterMaryPParams ledgerera = DeprecatedAfterMaryPParams (StrictMaybe Coin)
- data ShelleyToAlonzoPParams ledgerera = ShelleyToAlonzoPParams (StrictMaybe Nonce) (StrictMaybe UnitInterval)
- newtype IntroducedInBabbagePParams era = IntroducedInBabbagePParams (StrictMaybe CoinPerByte)
- data IntroducedInConwayPParams era = IntroducedInConwayPParams {
- icPoolVotingThresholds :: StrictMaybe PoolVotingThresholds
- icDRepVotingThresholds :: StrictMaybe DRepVotingThresholds
- icMinCommitteeSize :: StrictMaybe Natural
- icCommitteeTermLength :: StrictMaybe EpochNo
- icGovActionLifetime :: StrictMaybe EpochNo
- icGovActionDeposit :: StrictMaybe Coin
- icDRepDeposit :: StrictMaybe Coin
- icDRepActivity :: StrictMaybe EpochNo
- createEraBasedProtocolParamUpdate :: ShelleyBasedEra era -> EraBasedProtocolParametersUpdate era -> PParamsUpdate (ShelleyLedgerEra era)
- convertToLedgerProtocolParameters :: ShelleyBasedEra era -> ProtocolParameters -> Either ProtocolParametersConversionError (LedgerProtocolParameters era)
- createPParams :: ShelleyBasedEra era -> EraBasedProtocolParametersUpdate 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 Lovelace
- protocolUpdateTxFeePerByte :: Maybe Lovelace
- 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
- 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 ProtocolParametersError
- data ProtocolParametersConversionError
- = PpceOutOfBounds !ProtocolParameterName !Rational
- | PpceVersionInvalid !ProtocolParameterVersion
- | PpceInvalidCostModel !CostModel !CostModelApplyError
- | PpceMissingParameter !ProtocolParameterName
- data PraosNonce
- makePraosNonce :: ByteString -> PraosNonce
- data ExecutionUnits = ExecutionUnits {}
- data ExecutionUnitPrices = ExecutionUnitPrices {}
- newtype CostModel = CostModel [Integer]
- fromAlonzoCostModels :: CostModels -> Map AnyPlutusScriptVersion CostModel
- data UpdateProposal = UpdateProposal !(Map (Hash GenesisKey) ProtocolParametersUpdate) !EpochNo
- makeShelleyUpdateProposal :: ProtocolParametersUpdate -> [Hash GenesisKey] -> EpochNo -> UpdateProposal
- toLedgerNonce :: Maybe PraosNonce -> Nonce
- toLedgerUpdate :: ShelleyBasedEra era -> UpdateProposal -> Either ProtocolParametersConversionError (Update (ShelleyLedgerEra era))
- fromLedgerUpdate :: forall era ledgerera. ShelleyLedgerEra era ~ ledgerera => EraCrypto ledgerera ~ StandardCrypto => ShelleyBasedEra era -> Update ledgerera -> UpdateProposal
- toLedgerProposedPPUpdates :: ShelleyBasedEra era -> Map (Hash GenesisKey) ProtocolParametersUpdate -> Either ProtocolParametersConversionError (ProposedPPUpdates (ShelleyLedgerEra era))
- fromLedgerProposedPPUpdates :: forall era ledgerera. ShelleyLedgerEra era ~ ledgerera => EraCrypto ledgerera ~ StandardCrypto => ShelleyBasedEra era -> ProposedPPUpdates ledgerera -> Map (Hash GenesisKey) ProtocolParametersUpdate
- toLedgerPParams :: ShelleyBasedEra era -> ProtocolParameters -> Either ProtocolParametersConversionError (PParams (ShelleyLedgerEra era))
- toLedgerPParamsUpdate :: ShelleyBasedEra era -> ProtocolParametersUpdate -> Either ProtocolParametersConversionError (PParamsUpdate (ShelleyLedgerEra era))
- fromLedgerPParams :: ShelleyBasedEra era -> PParams (ShelleyLedgerEra era) -> ProtocolParameters
- fromLedgerPParamsUpdate :: ShelleyBasedEra era -> PParamsUpdate (ShelleyLedgerEra era) -> ProtocolParametersUpdate
- toAlonzoPrices :: ExecutionUnitPrices -> Either ProtocolParametersConversionError Prices
- fromAlonzoPrices :: Prices -> ExecutionUnitPrices
- toAlonzoScriptLanguage :: AnyPlutusScriptVersion -> Language
- fromAlonzoScriptLanguage :: Language -> AnyPlutusScriptVersion
- toAlonzoCostModel :: CostModel -> Language -> Either ProtocolParametersConversionError CostModel
- fromAlonzoCostModel :: CostModel -> CostModel
- toAlonzoCostModels :: Map AnyPlutusScriptVersion CostModel -> Either ProtocolParametersConversionError CostModels
- 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 :: ShelleyBasedEra era -> ProtocolParameters -> Either ProtocolParametersError () Source #
Instances
The updatable protocol parameters
newtype LedgerProtocolParameters era Source #
Constructors
LedgerProtocolParameters | |
Fields |
Instances
IsShelleyBasedEra era => Eq (LedgerProtocolParameters era) Source # | |
Defined in Cardano.Api.ProtocolParameters Methods (==) :: LedgerProtocolParameters era -> LedgerProtocolParameters era -> Bool Source # (/=) :: LedgerProtocolParameters era -> LedgerProtocolParameters era -> Bool Source # | |
IsShelleyBasedEra era => Show (LedgerProtocolParameters era) Source # | |
Defined in Cardano.Api.ProtocolParameters |
data EraBasedProtocolParametersUpdate era where Source #
Each constructor corresponds to the set of protocol parameters available in a given era.
Constructors
Instances
Show (EraBasedProtocolParametersUpdate era) Source # | |
Defined in Cardano.Api.ProtocolParameters |
data AlonzoOnwardsPParams ledgerera Source #
Constructors
AlonzoOnwardsPParams | |
Fields
|
Instances
Show (AlonzoOnwardsPParams ledgerera) Source # | |
Defined in Cardano.Api.ProtocolParameters |
data CommonProtocolParametersUpdate Source #
Protocol parameters common to each era. This can only ever be reduced if parameters are deprecated.
Constructors
CommonProtocolParametersUpdate | |
Fields
|
Instances
newtype DeprecatedAfterBabbagePParams ledgerera Source #
Constructors
DeprecatedAfterBabbagePParams (StrictMaybe ProtVer) |
Instances
Show (DeprecatedAfterBabbagePParams ledgerera) Source # | |
Defined in Cardano.Api.ProtocolParameters |
newtype DeprecatedAfterMaryPParams ledgerera Source #
Constructors
DeprecatedAfterMaryPParams (StrictMaybe Coin) |
Instances
Show (DeprecatedAfterMaryPParams ledgerera) Source # | |
Defined in Cardano.Api.ProtocolParameters |
data ShelleyToAlonzoPParams ledgerera Source #
Constructors
ShelleyToAlonzoPParams | |
Fields
|
Instances
Show (ShelleyToAlonzoPParams ledgerera) Source # | |
Defined in Cardano.Api.ProtocolParameters |
newtype IntroducedInBabbagePParams era Source #
Constructors
IntroducedInBabbagePParams (StrictMaybe CoinPerByte) | Coins per UTxO byte |
Instances
Show (IntroducedInBabbagePParams era) Source # | |
Defined in Cardano.Api.ProtocolParameters |
data IntroducedInConwayPParams era Source #
Constructors
Instances
Show (IntroducedInConwayPParams era) Source # | |
Defined in Cardano.Api.ProtocolParameters |
createEraBasedProtocolParamUpdate :: ShelleyBasedEra era -> EraBasedProtocolParametersUpdate era -> PParamsUpdate (ShelleyLedgerEra era) Source #
convertToLedgerProtocolParameters :: ShelleyBasedEra era -> ProtocolParameters -> Either ProtocolParametersConversionError (LedgerProtocolParameters era) Source #
createPParams :: ShelleyBasedEra era -> EraBasedProtocolParametersUpdate era -> PParams (ShelleyLedgerEra era) Source #
Deprecated
data ProtocolParametersUpdate Source #
The representation of a change in the ProtocolParameters
.
Constructors
ProtocolParametersUpdate | |
Fields
|
Instances
Eq ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters Methods (==) :: ProtocolParametersUpdate -> ProtocolParametersUpdate -> Bool Source # (/=) :: ProtocolParametersUpdate -> ProtocolParametersUpdate -> Bool Source # | |
Show ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters | |
Semigroup ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters | |
Monoid ProtocolParametersUpdate Source # | |
FromCBOR ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters Methods fromCBOR :: Decoder s ProtocolParametersUpdate # label :: Proxy ProtocolParametersUpdate -> Text # | |
ToCBOR ProtocolParametersUpdate Source # | |
Defined in Cardano.Api.ProtocolParameters Methods toCBOR :: ProtocolParametersUpdate -> Encoding # encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy ProtocolParametersUpdate -> Size # encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [ProtocolParametersUpdate] -> Size # |
Errors
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 prettyError :: ProtocolParametersError -> Doc ann Source # |
data ProtocolParametersConversionError Source #
Constructors
PpceOutOfBounds !ProtocolParameterName !Rational | |
PpceVersionInvalid !ProtocolParameterVersion | |
PpceInvalidCostModel !CostModel !CostModelApplyError | |
PpceMissingParameter !ProtocolParameterName |
Instances
PraosNonce
data PraosNonce Source #
Instances
makePraosNonce :: ByteString -> PraosNonce Source #
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
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 | |
Fields |
Instances
Instances
Eq CostModel Source # | |
Data CostModel Source # | |
Defined in Cardano.Api.ProtocolParameters Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CostModel -> c CostModel Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CostModel Source # toConstr :: CostModel -> Constr Source # dataTypeOf :: CostModel -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CostModel) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CostModel) Source # gmapT :: (forall b. Data b => b -> b) -> CostModel -> CostModel Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CostModel -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CostModel -> r Source # gmapQ :: (forall d. Data d => d -> u) -> CostModel -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> CostModel -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CostModel -> m CostModel Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CostModel -> m CostModel Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CostModel -> m CostModel Source # | |
Show CostModel Source # | |
FromCBOR CostModel Source # | |
ToCBOR CostModel 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 :: ShelleyBasedEra era -> UpdateProposal -> Either ProtocolParametersConversionError (Update (ShelleyLedgerEra era)) Source #
fromLedgerUpdate :: forall era ledgerera. ShelleyLedgerEra era ~ ledgerera => EraCrypto ledgerera ~ StandardCrypto => ShelleyBasedEra era -> Update ledgerera -> UpdateProposal Source #
toLedgerProposedPPUpdates :: ShelleyBasedEra era -> Map (Hash GenesisKey) ProtocolParametersUpdate -> Either ProtocolParametersConversionError (ProposedPPUpdates (ShelleyLedgerEra era)) Source #
fromLedgerProposedPPUpdates :: forall era ledgerera. ShelleyLedgerEra era ~ ledgerera => EraCrypto ledgerera ~ StandardCrypto => ShelleyBasedEra era -> ProposedPPUpdates ledgerera -> Map (Hash GenesisKey) ProtocolParametersUpdate Source #
toLedgerPParams :: ShelleyBasedEra era -> ProtocolParameters -> Either ProtocolParametersConversionError (PParams (ShelleyLedgerEra era)) Source #
toLedgerPParamsUpdate :: ShelleyBasedEra era -> ProtocolParametersUpdate -> Either ProtocolParametersConversionError (PParamsUpdate (ShelleyLedgerEra era)) Source #
fromLedgerPParams :: ShelleyBasedEra era -> PParams (ShelleyLedgerEra era) -> ProtocolParameters Source #
fromLedgerPParamsUpdate :: ShelleyBasedEra era -> PParamsUpdate (ShelleyLedgerEra era) -> ProtocolParametersUpdate Source #
toAlonzoScriptLanguage :: AnyPlutusScriptVersion -> Language Source #
fromAlonzoScriptLanguage :: Language -> AnyPlutusScriptVersion Source #
toAlonzoCostModel :: CostModel -> Language -> Either ProtocolParametersConversionError CostModel Source #
fromAlonzoCostModel :: CostModel -> CostModel Source #
toAlonzoCostModels :: Map AnyPlutusScriptVersion CostModel -> Either ProtocolParametersConversionError CostModels 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.