{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ViewPatterns #-}

module Test.Cardano.Ledger.Generic.Fields (
  TxField (.., AuxData', Valid'),
  TxBodyField (
    ..,
    Inputs',
    Collateral',
    RefInputs',
    Outputs',
    Certs',
    CollateralReturn',
    Update',
    ReqSignerHashes',
    WppHash',
    AdHash',
    Txnetworkid'
  ),
  WitnessesField (.., AddrWits', BootWits', ScriptWits', DataWits'),
  PParamsField (..),
  TxOutField (.., DHash', RefScript'),
  initVI,
  initWithdrawals,
  initialTxBody,
  initialWitnesses,
  initialTx,
  initialTxOut,
  valid,
  abstractTx,
  abstractTxBody,
  abstractTxOut,
  abstractWitnesses,
  abstractPParams,
  abstractPParamsUpdate,
  abstractPPUpdate,
) where

import Cardano.Ledger.Address (Addr (..))
import Cardano.Ledger.Allegra.TxBody (TxBody (..))
import Cardano.Ledger.Alonzo.PParams (AlonzoPParams (..), unOrdExUnits)
import Cardano.Ledger.Alonzo.Scripts (CostModels, ExUnits (..), Prices)
import Cardano.Ledger.Alonzo.Tx (AlonzoTx (..), IsValid (..))
import Cardano.Ledger.Alonzo.TxBody (AlonzoTxOut (..), TxBody (..))
import Cardano.Ledger.Alonzo.TxWits (AlonzoTxWits (..), Redeemers (..), TxDats (..))
import Cardano.Ledger.Babbage.PParams (BabbagePParams (..))
import Cardano.Ledger.Babbage.TxBody (BabbageTxOut (..), TxBody (..))
import Cardano.Ledger.BaseTypes (
  EpochInterval (..),
  Network (..),
  NonNegativeInterval,
  Nonce,
  ProtVer (..),
  StrictMaybe (..),
  UnitInterval,
 )
import Cardano.Ledger.Binary (sizedValue)
import Cardano.Ledger.Coin (Coin (..))
import Cardano.Ledger.Conway.Core
import Cardano.Ledger.Conway.Governance (ProposalProcedure, VotingProcedures)
import Cardano.Ledger.Conway.PParams (ConwayPParams (..))
import Cardano.Ledger.Conway.TxBody (TxBody (..))
import Cardano.Ledger.Credential (Credential (..), StakeReference (..))
import Cardano.Ledger.Keys (WitVKey (..))
import Cardano.Ledger.Keys.Bootstrap (BootstrapWitness (..))
import Cardano.Ledger.Mary (TxBody (..))
import Cardano.Ledger.Mary.Value (MultiAsset (..))
import Cardano.Ledger.Plutus.Data (Data (..), Datum (..), hashData)
import Cardano.Ledger.Shelley.PParams (ShelleyPParams (..))
import qualified Cardano.Ledger.Shelley.PParams as PP (Update)
import Cardano.Ledger.Shelley.Tx (ShelleyTx (..))
import Cardano.Ledger.Shelley.TxOut (ShelleyTxOut (..))
import Cardano.Ledger.Shelley.TxWits (pattern ShelleyTxWits)
import Cardano.Ledger.TxIn (TxIn (..))
import Cardano.Slotting.Slot (SlotNo (..))
import Data.Map (Map)
import qualified Data.Map.Strict as Map
import qualified Data.OSet.Strict as OSet
import Data.Sequence.Strict (StrictSeq (..))
import qualified Data.Sequence.Strict as SSeq (fromList)
import Data.Set (Set)
import qualified Data.Set as Set
import Data.Word (Word16, Word32)
import Lens.Micro (Lens', (^.))
import Numeric.Natural (Natural)
import Test.Cardano.Ledger.Core.KeyPair (KeyPair (..))
import Test.Cardano.Ledger.Generic.Indexed (theKeyPair)
import Test.Cardano.Ledger.Generic.Proof

-- =======================================================
-- Fields are used to hold a single field of record. So the Field
-- data type (Core.T era) holds the union of all fields of (Core.T era)
-- across all eras Shelley, Allegra, Mary, Alonzo, Babbage.
-- Pattern constructors (with primed names, like C') allow users to use [a], to stand
-- for (Set a) (Maybe a) (StrictSeq a) (StrictMaybe a) (Map (hash a) a)
-- and hide the conversion details from the user. This is very convenient when
-- using Fields to construct (Core.Txx era) by hand in an era agnostic way.

data TxField era
  = Body (TxBody era)
  | BodyI [TxBodyField era] -- Inlines TxBody Fields
  | TxWits (TxWits era)
  | WitnessesI [WitnessesField era] -- Inlines Witnesess Fields
  | AuxData (StrictMaybe (TxAuxData era))
  | Valid IsValid

pattern AuxData' :: [TxAuxData era] -> TxField era

pattern Valid' :: Bool -> TxField era

-- =================
data TxBodyField era
  = Inputs (Set TxIn)
  | Collateral (Set TxIn)
  | RefInputs (Set TxIn)
  | Outputs (StrictSeq (TxOut era))
  | CollateralReturn (StrictMaybe (TxOut era))
  | TotalCol (StrictMaybe Coin)
  | Certs (StrictSeq (TxCert era))
  | Withdrawals' Withdrawals
  | Txfee Coin
  | Vldt ValidityInterval
  | TTL SlotNo
  | Update (StrictMaybe (PP.Update era))
  | ReqSignerHashes (Set (KeyHash 'Witness))
  | Mint MultiAsset
  | WppHash (StrictMaybe ScriptIntegrityHash)
  | AdHash (StrictMaybe TxAuxDataHash)
  | Txnetworkid (StrictMaybe Network)
  | ProposalProc (OSet.OSet (ProposalProcedure era))
  | VotingProc (VotingProcedures era)
  | CurrentTreasuryValue (StrictMaybe Coin)
  | TreasuryDonation Coin

pattern Inputs' :: [TxIn] -> TxBodyField era -- Set

pattern Collateral' :: [TxIn] -> TxBodyField era -- Set

pattern RefInputs' :: [TxIn] -> TxBodyField era -- Set

pattern Outputs' :: [TxOut era] -> TxBodyField era -- StrictSeq

pattern Certs' :: [TxCert era] -> TxBodyField era -- StrictSeq

pattern CollateralReturn' :: [TxOut era] -> TxBodyField era -- 0 or 1 element

pattern Update' :: [PP.Update era] -> TxBodyField era -- 0 or 1 element

pattern ReqSignerHashes' :: [KeyHash 'Witness] -> TxBodyField era -- A set

pattern WppHash' :: [ScriptIntegrityHash] -> TxBodyField era -- 0 or 1 element

pattern AdHash' :: [TxAuxDataHash] -> TxBodyField era -- 0 or 1 element

pattern Txnetworkid' :: [Network] -> TxBodyField era -- 0 or 1 element

-- ====================
data WitnessesField era
  = AddrWits (Set (WitVKey 'Witness))
  | BootWits (Set BootstrapWitness)
  | ScriptWits (Map ScriptHash (Script era))
  | DataWits (TxDats era)
  | RdmrWits (Redeemers era)

pattern AddrWits' :: Era era => [WitVKey 'Witness] -> WitnessesField era -- Set

pattern BootWits' :: Era era => [BootstrapWitness] -> WitnessesField era -- Set

pattern ScriptWits' :: forall era. EraScript era => [Script era] -> WitnessesField era -- Map

pattern DataWits' :: Era era => [Data era] -> WitnessesField era -- Map

-- ================
data TxOutField era
  = Address Addr
  | Amount (Value era)
  | DHash (StrictMaybe DataHash)
  | FDatum (Datum era)
  | RefScript (StrictMaybe (Script era))

pattern DHash' :: [DataHash] -> TxOutField era -- 0 or 1 element

pattern RefScript' :: [Script era] -> TxOutField era -- 0 or 1 element

-- ================================================================
-- PParam Fields

data PParamsField era
  = MinfeeA Coin
  | -- | The constant factor for the minimum fee calculation
    MinfeeB Coin
  | -- | Maximal block body size
    MaxBBSize Word32
  | -- | Maximal transaction size
    MaxTxSize Word32
  | -- | Maximal block header size
    MaxBHSize Word16
  | -- | The amount of a key registration deposit
    KeyDeposit Coin
  | -- | The amount of a pool registration deposit
    PoolDeposit Coin
  | -- | epoch bound on pool retirement
    EMax EpochInterval
  | -- | Desired number of pools
    NOpt Word16
  | -- | Pool influence
    A0 NonNegativeInterval
  | -- | Monetary expansion
    Rho UnitInterval
  | -- | Treasury expansion
    Tau UnitInterval
  | -- | Decentralization parameter
    D UnitInterval -- Dropped in Babbage
  | -- | Extra entropy
    ExtraEntropy Nonce -- Dropped in Babbage
  | -- | Protocol version
    ProtocolVersion ProtVer
  | -- | Minimum Stake Pool Cost
    MinPoolCost Coin
  | -- | Minimum Lovelace in a UTxO deprecated by AdaPerUTxOWord
    MinUTxOValue Coin
  | -- | Cost in ada per 8 bytes of UTxO storage instead of _minUTxOValue
    CoinPerUTxOWord CoinPerWord -- Dropped in Babbage
  | -- | Cost in ada per 1 byte of UTxO storage instead of _coinsPerUTxOWord
    CoinPerUTxOByte CoinPerByte -- New in Babbage
  | -- | Cost models for non-native script languages
    Costmdls CostModels
  | -- | Prices of execution units for non-native script languages
    Prices Prices
  | -- | Max total script execution resources units allowed per tx
    MaxTxExUnits ExUnits
  | -- | Max total script execution resources units allowed per block
    MaxBlockExUnits ExUnits
  | -- | Max size of a Value in an output
    MaxValSize Natural
  | -- | The scaling percentage of the collateral relative to the fee
    CollateralPercentage Natural
  | -- | Maximum number of collateral inputs allowed in a transaction
    MaxCollateralInputs Natural
  | -- | These are new to Conway
    PoolVotingThreshold PoolVotingThresholds
  | DRepVotingThreshold DRepVotingThresholds
  | MinCommitteeSize Natural
  | CommitteeTermLimit EpochInterval
  | GovActionExpiration EpochInterval
  | GovActionDeposit Coin
  | DRepDeposit Coin
  | DRepActivity EpochInterval

abstractPParams :: Proof era -> PParams era -> [PParamsField era]
abstractPParams :: forall era. Proof era -> PParams era -> [PParamsField era]
abstractPParams Proof era
proof PParams era
ppp = case (Proof era -> PParamsWit era
forall era. Proof era -> PParamsWit era
whichPParams Proof era
proof, PParams era
ppp) of
  (PParamsWit era
PParamsShelleyToMary, PParams pp :: PParamsHKD Identity era
pp@(ShelleyPParams {})) ->
    [ Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (ShelleyPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinFeeA PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (ShelleyPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinFeeB PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (ShelleyPParams Identity era -> HKD Identity Word32
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word32
sppMaxBBSize PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (ShelleyPParams Identity era -> HKD Identity Word32
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word32
sppMaxTxSize PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (ShelleyPParams Identity era -> HKD Identity Word16
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word16
sppMaxBHSize PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (ShelleyPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppKeyDeposit PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (ShelleyPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppPoolDeposit PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (ShelleyPParams Identity era -> HKD Identity EpochInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f EpochInterval
sppEMax PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (ShelleyPParams Identity era -> HKD Identity Word16
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word16
sppNOpt PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (ShelleyPParams Identity era -> HKD Identity NonNegativeInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f NonNegativeInterval
sppA0 PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (ShelleyPParams Identity era -> HKD Identity UnitInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
sppRho PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (ShelleyPParams Identity era -> HKD Identity UnitInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
sppTau PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
D (ShelleyPParams Identity era -> HKD Identity UnitInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
sppD PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Nonce -> PParamsField era
forall era. Nonce -> PParamsField era
ExtraEntropy (ShelleyPParams Identity era -> HKD Identity Nonce
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Nonce
sppExtraEntropy PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , ProtVer -> PParamsField era
forall era. ProtVer -> PParamsField era
ProtocolVersion (ShelleyPParams Identity era -> HKD Identity ProtVer
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f ProtVer
sppProtocolVersion PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinUTxOValue (ShelleyPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinUTxOValue PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (ShelleyPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinPoolCost PParamsHKD Identity era
ShelleyPParams Identity era
pp)
    ]
  (PParamsWit era
PParamsAlonzoToAlonzo, PParams pp :: PParamsHKD Identity era
pp@(AlonzoPParams {})) ->
    [ Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (AlonzoPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeA PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (AlonzoPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeB PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (AlonzoPParams Identity era -> HKD Identity Word32
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxBBSize PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (AlonzoPParams Identity era -> HKD Identity Word32
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxTxSize PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (AlonzoPParams Identity era -> HKD Identity Word16
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appMaxBHSize PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (AlonzoPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appKeyDeposit PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (AlonzoPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appPoolDeposit PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (AlonzoPParams Identity era -> HKD Identity EpochInterval
forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f EpochInterval
appEMax PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (AlonzoPParams Identity era -> HKD Identity Word16
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appNOpt PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (AlonzoPParams Identity era -> HKD Identity NonNegativeInterval
forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f NonNegativeInterval
appA0 PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (AlonzoPParams Identity era -> HKD Identity UnitInterval
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appRho PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (AlonzoPParams Identity era -> HKD Identity UnitInterval
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appTau PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
D (AlonzoPParams Identity era -> HKD Identity UnitInterval
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appD PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Nonce -> PParamsField era
forall era. Nonce -> PParamsField era
ExtraEntropy (AlonzoPParams Identity era -> HKD Identity Nonce
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Nonce
appExtraEntropy PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , ProtVer -> PParamsField era
forall era. ProtVer -> PParamsField era
ProtocolVersion (AlonzoPParams Identity era -> HKD Identity ProtVer
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f ProtVer
appProtocolVersion PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (AlonzoPParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinPoolCost PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , CoinPerWord -> PParamsField era
forall era. CoinPerWord -> PParamsField era
CoinPerUTxOWord (AlonzoPParams Identity era -> HKD Identity CoinPerWord
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CoinPerWord
appCoinsPerUTxOWord PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , CostModels -> PParamsField era
forall era. CostModels -> PParamsField era
Costmdls (AlonzoPParams Identity era -> HKD Identity CostModels
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CostModels
appCostModels PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Prices -> PParamsField era
forall era. Prices -> PParamsField era
Prices (AlonzoPParams Identity era -> HKD Identity Prices
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Prices
appPrices PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxTxExUnits (OrdExUnits -> ExUnits
unOrdExUnits (AlonzoPParams Identity era -> HKD Identity OrdExUnits
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxTxExUnits PParamsHKD Identity era
AlonzoPParams Identity era
pp))
    , ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxBlockExUnits (OrdExUnits -> ExUnits
unOrdExUnits (AlonzoPParams Identity era -> HKD Identity OrdExUnits
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxBlockExUnits PParamsHKD Identity era
AlonzoPParams Identity era
pp))
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxValSize (AlonzoPParams Identity era -> HKD Identity Natural
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxValSize PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
CollateralPercentage (AlonzoPParams Identity era -> HKD Identity Natural
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appCollateralPercentage PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxCollateralInputs (AlonzoPParams Identity era -> HKD Identity Natural
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxCollateralInputs PParamsHKD Identity era
AlonzoPParams Identity era
pp)
    ]
  (PParamsWit era
PParamsBabbageToBabbage, PParams pp :: PParamsHKD Identity era
pp@(BabbagePParams {})) ->
    [ Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (BabbagePParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppMinFeeA PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (BabbagePParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppMinFeeB PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (BabbagePParams Identity era -> HKD Identity Word32
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word32
bppMaxBBSize PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (BabbagePParams Identity era -> HKD Identity Word32
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word32
bppMaxTxSize PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (BabbagePParams Identity era -> HKD Identity Word16
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word16
bppMaxBHSize PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (BabbagePParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppKeyDeposit PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (BabbagePParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppPoolDeposit PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (BabbagePParams Identity era -> HKD Identity EpochInterval
forall (f :: * -> *) era.
BabbagePParams f era -> HKD f EpochInterval
bppEMax PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (BabbagePParams Identity era -> HKD Identity Word16
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word16
bppNOpt PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (BabbagePParams Identity era -> HKD Identity NonNegativeInterval
forall (f :: * -> *) era.
BabbagePParams f era -> HKD f NonNegativeInterval
bppA0 PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (BabbagePParams Identity era -> HKD Identity UnitInterval
forall (f :: * -> *) era.
BabbagePParams f era -> HKD f UnitInterval
bppRho PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (BabbagePParams Identity era -> HKD Identity UnitInterval
forall (f :: * -> *) era.
BabbagePParams f era -> HKD f UnitInterval
bppTau PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , ProtVer -> PParamsField era
forall era. ProtVer -> PParamsField era
ProtocolVersion (BabbagePParams Identity era -> HKD Identity ProtVer
forall (f :: * -> *) era. BabbagePParams f era -> HKD f ProtVer
bppProtocolVersion PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (BabbagePParams Identity era -> HKD Identity Coin
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppMinPoolCost PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , CoinPerByte -> PParamsField era
forall era. CoinPerByte -> PParamsField era
CoinPerUTxOByte (BabbagePParams Identity era -> HKD Identity CoinPerByte
forall (f :: * -> *) era. BabbagePParams f era -> HKD f CoinPerByte
bppCoinsPerUTxOByte PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , CostModels -> PParamsField era
forall era. CostModels -> PParamsField era
Costmdls (BabbagePParams Identity era -> HKD Identity CostModels
forall (f :: * -> *) era. BabbagePParams f era -> HKD f CostModels
bppCostModels PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Prices -> PParamsField era
forall era. Prices -> PParamsField era
Prices (BabbagePParams Identity era -> HKD Identity Prices
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Prices
bppPrices PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxTxExUnits (OrdExUnits -> ExUnits
unOrdExUnits (BabbagePParams Identity era -> HKD Identity OrdExUnits
forall (f :: * -> *) era. BabbagePParams f era -> HKD f OrdExUnits
bppMaxTxExUnits PParamsHKD Identity era
BabbagePParams Identity era
pp))
    , ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxBlockExUnits (OrdExUnits -> ExUnits
unOrdExUnits (BabbagePParams Identity era -> HKD Identity OrdExUnits
forall (f :: * -> *) era. BabbagePParams f era -> HKD f OrdExUnits
bppMaxBlockExUnits PParamsHKD Identity era
BabbagePParams Identity era
pp))
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxValSize (BabbagePParams Identity era -> HKD Identity Natural
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Natural
bppMaxValSize PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
CollateralPercentage (BabbagePParams Identity era -> HKD Identity Natural
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Natural
bppCollateralPercentage PParamsHKD Identity era
BabbagePParams Identity era
pp)
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxCollateralInputs (BabbagePParams Identity era -> HKD Identity Natural
forall (f :: * -> *) era. BabbagePParams f era -> HKD f Natural
bppMaxCollateralInputs PParamsHKD Identity era
BabbagePParams Identity era
pp)
    ]
  (PParamsWit era
PParamsConwayToConway, pp :: PParams era
pp@(PParams (ConwayPParams {}))) ->
    [ Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (PParams era
pp PParams era -> Getting Coin (PParams era) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (PParams era) Coin
forall era. EraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppMinFeeAL)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (PParams era
pp PParams era -> Getting Coin (PParams era) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (PParams era) Coin
forall era. EraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppMinFeeBL)
    , Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (PParams era
pp PParams era -> Getting Word32 (PParams era) Word32 -> Word32
forall s a. s -> Getting a s a -> a
^. Getting Word32 (PParams era) Word32
forall era. EraPParams era => Lens' (PParams era) Word32
Lens' (PParams era) Word32
ppMaxBBSizeL)
    , Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (PParams era
pp PParams era -> Getting Word32 (PParams era) Word32 -> Word32
forall s a. s -> Getting a s a -> a
^. Getting Word32 (PParams era) Word32
forall era. EraPParams era => Lens' (PParams era) Word32
Lens' (PParams era) Word32
ppMaxTxSizeL)
    , Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (PParams era
pp PParams era -> Getting Word16 (PParams era) Word16 -> Word16
forall s a. s -> Getting a s a -> a
^. Getting Word16 (PParams era) Word16
forall era. EraPParams era => Lens' (PParams era) Word16
Lens' (PParams era) Word16
ppMaxBHSizeL)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (PParams era
pp PParams era -> Getting Coin (PParams era) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (PParams era) Coin
forall era. EraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppKeyDepositL)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (PParams era
pp PParams era -> Getting Coin (PParams era) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (PParams era) Coin
forall era. EraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppPoolDepositL)
    , EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (PParams era
pp PParams era
-> Getting EpochInterval (PParams era) EpochInterval
-> EpochInterval
forall s a. s -> Getting a s a -> a
^. Getting EpochInterval (PParams era) EpochInterval
forall era. EraPParams era => Lens' (PParams era) EpochInterval
Lens' (PParams era) EpochInterval
ppEMaxL)
    , Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (PParams era
pp PParams era -> Getting Word16 (PParams era) Word16 -> Word16
forall s a. s -> Getting a s a -> a
^. Getting Word16 (PParams era) Word16
forall era. EraPParams era => Lens' (PParams era) Word16
Lens' (PParams era) Word16
ppNOptL)
    , NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (PParams era
pp PParams era
-> Getting NonNegativeInterval (PParams era) NonNegativeInterval
-> NonNegativeInterval
forall s a. s -> Getting a s a -> a
^. Getting NonNegativeInterval (PParams era) NonNegativeInterval
forall era.
EraPParams era =>
Lens' (PParams era) NonNegativeInterval
Lens' (PParams era) NonNegativeInterval
ppA0L)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (PParams era
pp PParams era
-> Getting UnitInterval (PParams era) UnitInterval -> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval (PParams era) UnitInterval
forall era. EraPParams era => Lens' (PParams era) UnitInterval
Lens' (PParams era) UnitInterval
ppRhoL)
    , UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (PParams era
pp PParams era
-> Getting UnitInterval (PParams era) UnitInterval -> UnitInterval
forall s a. s -> Getting a s a -> a
^. Getting UnitInterval (PParams era) UnitInterval
forall era. EraPParams era => Lens' (PParams era) UnitInterval
Lens' (PParams era) UnitInterval
ppTauL)
    , ProtVer -> PParamsField era
forall era. ProtVer -> PParamsField era
ProtocolVersion (PParams era
pp PParams era -> Getting ProtVer (PParams era) ProtVer -> ProtVer
forall s a. s -> Getting a s a -> a
^. Getting ProtVer (PParams era) ProtVer
forall era. EraPParams era => Lens' (PParams era) ProtVer
Lens' (PParams era) ProtVer
ppProtocolVersionL)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (PParams era
pp PParams era -> Getting Coin (PParams era) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (PParams era) Coin
forall era. EraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppMinPoolCostL)
    , CoinPerByte -> PParamsField era
forall era. CoinPerByte -> PParamsField era
CoinPerUTxOByte (PParams era
pp PParams era
-> Getting CoinPerByte (PParams era) CoinPerByte -> CoinPerByte
forall s a. s -> Getting a s a -> a
^. Getting CoinPerByte (PParams era) CoinPerByte
forall era.
BabbageEraPParams era =>
Lens' (PParams era) CoinPerByte
Lens' (PParams era) CoinPerByte
ppCoinsPerUTxOByteL)
    , CostModels -> PParamsField era
forall era. CostModels -> PParamsField era
Costmdls (PParams era
pp PParams era
-> Getting CostModels (PParams era) CostModels -> CostModels
forall s a. s -> Getting a s a -> a
^. Getting CostModels (PParams era) CostModels
forall era. AlonzoEraPParams era => Lens' (PParams era) CostModels
Lens' (PParams era) CostModels
ppCostModelsL)
    , Prices -> PParamsField era
forall era. Prices -> PParamsField era
Prices (PParams era
pp PParams era -> Getting Prices (PParams era) Prices -> Prices
forall s a. s -> Getting a s a -> a
^. Getting Prices (PParams era) Prices
forall era. AlonzoEraPParams era => Lens' (PParams era) Prices
Lens' (PParams era) Prices
ppPricesL)
    , ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxTxExUnits (PParams era
pp PParams era -> Getting ExUnits (PParams era) ExUnits -> ExUnits
forall s a. s -> Getting a s a -> a
^. Getting ExUnits (PParams era) ExUnits
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams era) ExUnits
ppMaxTxExUnitsL)
    , ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxBlockExUnits (PParams era
pp PParams era -> Getting ExUnits (PParams era) ExUnits -> ExUnits
forall s a. s -> Getting a s a -> a
^. Getting ExUnits (PParams era) ExUnits
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams era) ExUnits
ppMaxBlockExUnitsL)
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxValSize (PParams era
pp PParams era -> Getting Natural (PParams era) Natural -> Natural
forall s a. s -> Getting a s a -> a
^. Getting Natural (PParams era) Natural
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams era) Natural
ppMaxValSizeL)
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
CollateralPercentage (PParams era
pp PParams era -> Getting Natural (PParams era) Natural -> Natural
forall s a. s -> Getting a s a -> a
^. Getting Natural (PParams era) Natural
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams era) Natural
ppCollateralPercentageL)
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxCollateralInputs (PParams era
pp PParams era -> Getting Natural (PParams era) Natural -> Natural
forall s a. s -> Getting a s a -> a
^. Getting Natural (PParams era) Natural
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams era) Natural
ppMaxCollateralInputsL)
    , PoolVotingThresholds -> PParamsField era
forall era. PoolVotingThresholds -> PParamsField era
PoolVotingThreshold (PParams era
pp PParams era
-> Getting PoolVotingThresholds (PParams era) PoolVotingThresholds
-> PoolVotingThresholds
forall s a. s -> Getting a s a -> a
^. Getting PoolVotingThresholds (PParams era) PoolVotingThresholds
forall era.
ConwayEraPParams era =>
Lens' (PParams era) PoolVotingThresholds
Lens' (PParams era) PoolVotingThresholds
ppPoolVotingThresholdsL)
    , DRepVotingThresholds -> PParamsField era
forall era. DRepVotingThresholds -> PParamsField era
DRepVotingThreshold (PParams era
pp PParams era
-> Getting DRepVotingThresholds (PParams era) DRepVotingThresholds
-> DRepVotingThresholds
forall s a. s -> Getting a s a -> a
^. Getting DRepVotingThresholds (PParams era) DRepVotingThresholds
forall era.
ConwayEraPParams era =>
Lens' (PParams era) DRepVotingThresholds
Lens' (PParams era) DRepVotingThresholds
ppDRepVotingThresholdsL)
    , Natural -> PParamsField era
forall era. Natural -> PParamsField era
MinCommitteeSize (PParams era
pp PParams era -> Getting Natural (PParams era) Natural -> Natural
forall s a. s -> Getting a s a -> a
^. Getting Natural (PParams era) Natural
forall era. ConwayEraPParams era => Lens' (PParams era) Natural
Lens' (PParams era) Natural
ppCommitteeMinSizeL)
    , EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
CommitteeTermLimit (PParams era
pp PParams era
-> Getting EpochInterval (PParams era) EpochInterval
-> EpochInterval
forall s a. s -> Getting a s a -> a
^. Getting EpochInterval (PParams era) EpochInterval
forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
Lens' (PParams era) EpochInterval
ppCommitteeMaxTermLengthL)
    , EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
GovActionExpiration (PParams era
pp PParams era
-> Getting EpochInterval (PParams era) EpochInterval
-> EpochInterval
forall s a. s -> Getting a s a -> a
^. Getting EpochInterval (PParams era) EpochInterval
forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
Lens' (PParams era) EpochInterval
ppGovActionLifetimeL)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
GovActionDeposit (PParams era
pp PParams era -> Getting Coin (PParams era) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (PParams era) Coin
forall era. ConwayEraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppGovActionDepositL)
    , Coin -> PParamsField era
forall era. Coin -> PParamsField era
DRepDeposit (PParams era
pp PParams era -> Getting Coin (PParams era) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (PParams era) Coin
forall era. ConwayEraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppDRepDepositL)
    , EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
DRepActivity (PParams era
pp PParams era
-> Getting EpochInterval (PParams era) EpochInterval
-> EpochInterval
forall s a. s -> Getting a s a -> a
^. Getting EpochInterval (PParams era) EpochInterval
forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
Lens' (PParams era) EpochInterval
ppDRepActivityL)
    ]

-- =========================================================================
-- Era parametric "empty" or initial values.

initVI :: ValidityInterval
initVI :: ValidityInterval
initVI = StrictMaybe SlotNo -> StrictMaybe SlotNo -> ValidityInterval
ValidityInterval StrictMaybe SlotNo
forall a. StrictMaybe a
SNothing StrictMaybe SlotNo
forall a. StrictMaybe a
SNothing

initWithdrawals :: Withdrawals
initWithdrawals :: Withdrawals
initWithdrawals = Map RewardAccount Coin -> Withdrawals
Withdrawals Map RewardAccount Coin
forall k a. Map k a
Map.empty

initialTxBody :: Proof era -> TxBody era
initialTxBody :: forall era. Proof era -> TxBody era
initialTxBody Proof era
Shelley = TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
initialTxBody Proof era
Allegra = TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
initialTxBody Proof era
Mary = TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
initialTxBody Proof era
Alonzo = TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
initialTxBody Proof era
Babbage = TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
initialTxBody Proof era
Conway = TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody

initialWitnesses :: Proof era -> TxWits era
initialWitnesses :: forall era. Proof era -> TxWits era
initialWitnesses Proof era
Shelley = TxWits era
TxWits ShelleyEra
forall era. EraTxWits era => TxWits era
mkBasicTxWits
initialWitnesses Proof era
Allegra = TxWits era
TxWits AllegraEra
forall era. EraTxWits era => TxWits era
mkBasicTxWits
initialWitnesses Proof era
Mary = TxWits era
TxWits MaryEra
forall era. EraTxWits era => TxWits era
mkBasicTxWits
initialWitnesses Proof era
Alonzo = TxWits era
TxWits AlonzoEra
forall era. EraTxWits era => TxWits era
mkBasicTxWits
initialWitnesses Proof era
Babbage = TxWits era
TxWits BabbageEra
forall era. EraTxWits era => TxWits era
mkBasicTxWits
initialWitnesses Proof era
Conway = TxWits era
TxWits ConwayEra
forall era. EraTxWits era => TxWits era
mkBasicTxWits

initialTx :: forall era. Proof era -> Tx era
initialTx :: forall era. Proof era -> Tx era
initialTx era :: Proof era
era@Proof era
Shelley = TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx (Proof era -> TxBody era
forall era. Proof era -> TxBody era
initialTxBody Proof era
era)
initialTx era :: Proof era
era@Proof era
Allegra = TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx (Proof era -> TxBody era
forall era. Proof era -> TxBody era
initialTxBody Proof era
era)
initialTx era :: Proof era
era@Proof era
Mary = TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx (Proof era -> TxBody era
forall era. Proof era -> TxBody era
initialTxBody Proof era
era)
initialTx era :: Proof era
era@Proof era
Alonzo = TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx (Proof era -> TxBody era
forall era. Proof era -> TxBody era
initialTxBody Proof era
era)
initialTx era :: Proof era
era@Proof era
Babbage = TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx (Proof era -> TxBody era
forall era. Proof era -> TxBody era
initialTxBody Proof era
era)
initialTx era :: Proof era
era@Proof era
Conway = TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx (Proof era -> TxBody era
forall era. Proof era -> TxBody era
initialTxBody Proof era
era)

-- | A Meaningless Addr.
initialAddr :: Proof era -> Addr
initialAddr :: forall era. Proof era -> Addr
initialAddr Proof era
_wit = Network -> PaymentCredential -> StakeReference -> Addr
Addr Network
Testnet PaymentCredential
forall {kr :: KeyRole}. Credential kr
pCred StakeReference
sCred
  where
    (KeyPair VKey kr
svk SignKeyDSIGN DSIGN
_ssk) = Int -> KeyPair kr
forall (kr :: KeyRole). Int -> KeyPair kr
theKeyPair Int
0
    pCred :: Credential kr
pCred = KeyHash kr -> Credential kr
forall (kr :: KeyRole). KeyHash kr -> Credential kr
KeyHashObj (KeyHash kr -> Credential kr)
-> (KeyPair kr -> KeyHash kr) -> KeyPair kr -> Credential kr
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VKey kr -> KeyHash kr
forall (kd :: KeyRole). VKey kd -> KeyHash kd
hashKey (VKey kr -> KeyHash kr)
-> (KeyPair kr -> VKey kr) -> KeyPair kr -> KeyHash kr
forall b c a. (b -> c) -> (a -> b) -> a -> c
. KeyPair kr -> VKey kr
forall (kd :: KeyRole). KeyPair kd -> VKey kd
vKey (KeyPair kr -> Credential kr) -> KeyPair kr -> Credential kr
forall a b. (a -> b) -> a -> b
$ Int -> KeyPair kr
forall (kr :: KeyRole). Int -> KeyPair kr
theKeyPair Int
1
    sCred :: StakeReference
sCred = StakeCredential -> StakeReference
StakeRefBase (StakeCredential -> StakeReference)
-> (VKey 'Staking -> StakeCredential)
-> VKey 'Staking
-> StakeReference
forall b c a. (b -> c) -> (a -> b) -> a -> c
. KeyHash 'Staking -> StakeCredential
forall (kr :: KeyRole). KeyHash kr -> Credential kr
KeyHashObj (KeyHash 'Staking -> StakeCredential)
-> (VKey 'Staking -> KeyHash 'Staking)
-> VKey 'Staking
-> StakeCredential
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VKey 'Staking -> KeyHash 'Staking
forall (kd :: KeyRole). VKey kd -> KeyHash kd
hashKey (VKey 'Staking -> StakeReference)
-> VKey 'Staking -> StakeReference
forall a b. (a -> b) -> a -> b
$ VKey 'Staking
forall {kr :: KeyRole}. VKey kr
svk

initialTxOut :: Proof era -> TxOut era
initialTxOut :: forall era. Proof era -> TxOut era
initialTxOut wit :: Proof era
wit@Proof era
Shelley = Addr -> Value ShelleyEra -> TxOut ShelleyEra
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut (Proof era -> Addr
forall era. Proof era -> Addr
initialAddr Proof era
wit) Value ShelleyEra
Coin
forall a. Monoid a => a
mempty
initialTxOut wit :: Proof era
wit@Proof era
Allegra = Addr -> Value AllegraEra -> TxOut AllegraEra
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut (Proof era -> Addr
forall era. Proof era -> Addr
initialAddr Proof era
wit) Value AllegraEra
Coin
forall a. Monoid a => a
mempty
initialTxOut wit :: Proof era
wit@Proof era
Mary = Addr -> Value MaryEra -> TxOut MaryEra
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut (Proof era -> Addr
forall era. Proof era -> Addr
initialAddr Proof era
wit) Value MaryEra
MaryValue
forall a. Monoid a => a
mempty
initialTxOut wit :: Proof era
wit@Proof era
Alonzo = Addr -> Value AlonzoEra -> TxOut AlonzoEra
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut (Proof era -> Addr
forall era. Proof era -> Addr
initialAddr Proof era
wit) Value AlonzoEra
MaryValue
forall a. Monoid a => a
mempty
initialTxOut wit :: Proof era
wit@Proof era
Babbage = Addr -> Value BabbageEra -> TxOut BabbageEra
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut (Proof era -> Addr
forall era. Proof era -> Addr
initialAddr Proof era
wit) Value BabbageEra
MaryValue
forall a. Monoid a => a
mempty
initialTxOut wit :: Proof era
wit@Proof era
Conway = Addr -> Value ConwayEra -> TxOut ConwayEra
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut (Proof era -> Addr
forall era. Proof era -> Addr
initialAddr Proof era
wit) Value ConwayEra
MaryValue
forall a. Monoid a => a
mempty

-- ============================================================

abstractTx :: Proof era -> Tx era -> [TxField era]
abstractTx :: forall era. Proof era -> Tx era -> [TxField era]
abstractTx Proof era
Conway (AlonzoTx TxBody era
txBody TxWits era
wit IsValid
v StrictMaybe (TxAuxData era)
auxdata) =
  [TxBody era -> TxField era
forall era. TxBody era -> TxField era
Body TxBody era
txBody, TxWits era -> TxField era
forall era. TxWits era -> TxField era
TxWits TxWits era
wit, IsValid -> TxField era
forall era. IsValid -> TxField era
Valid IsValid
v, StrictMaybe (TxAuxData era) -> TxField era
forall era. StrictMaybe (TxAuxData era) -> TxField era
AuxData StrictMaybe (TxAuxData era)
auxdata]
abstractTx Proof era
Babbage (AlonzoTx TxBody era
txBody TxWits era
wit IsValid
v StrictMaybe (TxAuxData era)
auxdata) =
  [TxBody era -> TxField era
forall era. TxBody era -> TxField era
Body TxBody era
txBody, TxWits era -> TxField era
forall era. TxWits era -> TxField era
TxWits TxWits era
wit, IsValid -> TxField era
forall era. IsValid -> TxField era
Valid IsValid
v, StrictMaybe (TxAuxData era) -> TxField era
forall era. StrictMaybe (TxAuxData era) -> TxField era
AuxData StrictMaybe (TxAuxData era)
auxdata]
abstractTx Proof era
Alonzo (AlonzoTx TxBody era
txBody TxWits era
wit IsValid
v StrictMaybe (TxAuxData era)
auxdata) =
  [TxBody era -> TxField era
forall era. TxBody era -> TxField era
Body TxBody era
txBody, TxWits era -> TxField era
forall era. TxWits era -> TxField era
TxWits TxWits era
wit, IsValid -> TxField era
forall era. IsValid -> TxField era
Valid IsValid
v, StrictMaybe (TxAuxData era) -> TxField era
forall era. StrictMaybe (TxAuxData era) -> TxField era
AuxData StrictMaybe (TxAuxData era)
auxdata]
abstractTx Proof era
Shelley (ShelleyTx TxBody era
txBody TxWits era
wit StrictMaybe (TxAuxData era)
auxdata) =
  [TxBody era -> TxField era
forall era. TxBody era -> TxField era
Body TxBody era
txBody, TxWits era -> TxField era
forall era. TxWits era -> TxField era
TxWits TxWits era
wit, StrictMaybe (TxAuxData era) -> TxField era
forall era. StrictMaybe (TxAuxData era) -> TxField era
AuxData StrictMaybe (TxAuxData era)
auxdata]
abstractTx Proof era
Mary (ShelleyTx TxBody era
txBody TxWits era
wit StrictMaybe (TxAuxData era)
auxdata) =
  [TxBody era -> TxField era
forall era. TxBody era -> TxField era
Body TxBody era
txBody, TxWits era -> TxField era
forall era. TxWits era -> TxField era
TxWits TxWits era
wit, StrictMaybe (TxAuxData era) -> TxField era
forall era. StrictMaybe (TxAuxData era) -> TxField era
AuxData StrictMaybe (TxAuxData era)
auxdata]
abstractTx Proof era
Allegra (ShelleyTx TxBody era
txBody TxWits era
wit StrictMaybe (TxAuxData era)
auxdata) =
  [TxBody era -> TxField era
forall era. TxBody era -> TxField era
Body TxBody era
txBody, TxWits era -> TxField era
forall era. TxWits era -> TxField era
TxWits TxWits era
wit, StrictMaybe (TxAuxData era) -> TxField era
forall era. StrictMaybe (TxAuxData era) -> TxField era
AuxData StrictMaybe (TxAuxData era)
auxdata]

abstractTxBody :: Proof era -> TxBody era -> [TxBodyField era]
abstractTxBody :: forall era. Proof era -> TxBody era -> [TxBodyField era]
abstractTxBody Proof era
Alonzo (AlonzoTxBody Set TxIn
inp Set TxIn
col StrictSeq (TxOut AlonzoEra)
out StrictSeq (TxCert AlonzoEra)
cert Withdrawals
wdrl Coin
fee ValidityInterval
vldt StrictMaybe (Update AlonzoEra)
up Set (KeyHash 'Witness)
req MultiAsset
mnt StrictMaybe ScriptIntegrityHash
sih StrictMaybe TxAuxDataHash
adh StrictMaybe Network
net) =
  [ Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Inputs Set TxIn
inp
  , Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Collateral Set TxIn
col
  , StrictSeq (TxOut era) -> TxBodyField era
forall era. StrictSeq (TxOut era) -> TxBodyField era
Outputs StrictSeq (TxOut era)
StrictSeq (TxOut AlonzoEra)
out
  , StrictSeq (TxCert era) -> TxBodyField era
forall era. StrictSeq (TxCert era) -> TxBodyField era
Certs StrictSeq (TxCert era)
StrictSeq (TxCert AlonzoEra)
cert
  , Withdrawals -> TxBodyField era
forall era. Withdrawals -> TxBodyField era
Withdrawals' Withdrawals
wdrl
  , Coin -> TxBodyField era
forall era. Coin -> TxBodyField era
Txfee Coin
fee
  , ValidityInterval -> TxBodyField era
forall era. ValidityInterval -> TxBodyField era
Vldt ValidityInterval
vldt
  , StrictMaybe (Update era) -> TxBodyField era
forall era. StrictMaybe (Update era) -> TxBodyField era
Update StrictMaybe (Update era)
StrictMaybe (Update AlonzoEra)
up
  , Set (KeyHash 'Witness) -> TxBodyField era
forall era. Set (KeyHash 'Witness) -> TxBodyField era
ReqSignerHashes Set (KeyHash 'Witness)
req
  , MultiAsset -> TxBodyField era
forall era. MultiAsset -> TxBodyField era
Mint MultiAsset
mnt
  , StrictMaybe ScriptIntegrityHash -> TxBodyField era
forall era. StrictMaybe ScriptIntegrityHash -> TxBodyField era
WppHash StrictMaybe ScriptIntegrityHash
sih
  , StrictMaybe TxAuxDataHash -> TxBodyField era
forall era. StrictMaybe TxAuxDataHash -> TxBodyField era
AdHash StrictMaybe TxAuxDataHash
adh
  , StrictMaybe Network -> TxBodyField era
forall era. StrictMaybe Network -> TxBodyField era
Txnetworkid StrictMaybe Network
net
  ]
abstractTxBody Proof era
Conway (ConwayTxBody Set TxIn
inp Set TxIn
col Set TxIn
ref StrictSeq (Sized (TxOut ConwayEra))
out StrictMaybe (Sized (TxOut ConwayEra))
colret StrictMaybe Coin
totcol OSet (TxCert ConwayEra)
cert Withdrawals
wdrl Coin
fee ValidityInterval
vldt Set (KeyHash 'Witness)
req MultiAsset
mnt StrictMaybe ScriptIntegrityHash
sih StrictMaybe TxAuxDataHash
adh StrictMaybe Network
net VotingProcedures ConwayEra
vp OSet (ProposalProcedure ConwayEra)
pp StrictMaybe Coin
ctv Coin
td) =
  [ Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Inputs Set TxIn
inp
  , Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Collateral Set TxIn
col
  , Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
RefInputs Set TxIn
ref
  , StrictSeq (TxOut era) -> TxBodyField era
forall era. StrictSeq (TxOut era) -> TxBodyField era
Outputs (Sized (BabbageTxOut ConwayEra) -> BabbageTxOut ConwayEra
forall a. Sized a -> a
sizedValue (Sized (BabbageTxOut ConwayEra) -> BabbageTxOut ConwayEra)
-> StrictSeq (Sized (BabbageTxOut ConwayEra))
-> StrictSeq (BabbageTxOut ConwayEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> StrictSeq (Sized (TxOut ConwayEra))
StrictSeq (Sized (BabbageTxOut ConwayEra))
out)
  , StrictMaybe (TxOut era) -> TxBodyField era
forall era. StrictMaybe (TxOut era) -> TxBodyField era
CollateralReturn (Sized (BabbageTxOut ConwayEra) -> BabbageTxOut ConwayEra
forall a. Sized a -> a
sizedValue (Sized (BabbageTxOut ConwayEra) -> BabbageTxOut ConwayEra)
-> StrictMaybe (Sized (BabbageTxOut ConwayEra))
-> StrictMaybe (BabbageTxOut ConwayEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> StrictMaybe (Sized (TxOut ConwayEra))
StrictMaybe (Sized (BabbageTxOut ConwayEra))
colret)
  , StrictMaybe Coin -> TxBodyField era
forall era. StrictMaybe Coin -> TxBodyField era
TotalCol StrictMaybe Coin
totcol
  , StrictSeq (TxCert era) -> TxBodyField era
forall era. StrictSeq (TxCert era) -> TxBodyField era
Certs (StrictSeq (TxCert era) -> TxBodyField era)
-> StrictSeq (TxCert era) -> TxBodyField era
forall a b. (a -> b) -> a -> b
$ OSet (ConwayTxCert ConwayEra) -> StrictSeq (ConwayTxCert ConwayEra)
forall a. OSet a -> StrictSeq a
OSet.toStrictSeq OSet (TxCert ConwayEra)
OSet (ConwayTxCert ConwayEra)
cert
  , Withdrawals -> TxBodyField era
forall era. Withdrawals -> TxBodyField era
Withdrawals' Withdrawals
wdrl
  , Coin -> TxBodyField era
forall era. Coin -> TxBodyField era
Txfee Coin
fee
  , ValidityInterval -> TxBodyField era
forall era. ValidityInterval -> TxBodyField era
Vldt ValidityInterval
vldt
  , Set (KeyHash 'Witness) -> TxBodyField era
forall era. Set (KeyHash 'Witness) -> TxBodyField era
ReqSignerHashes Set (KeyHash 'Witness)
req
  , MultiAsset -> TxBodyField era
forall era. MultiAsset -> TxBodyField era
Mint MultiAsset
mnt
  , StrictMaybe ScriptIntegrityHash -> TxBodyField era
forall era. StrictMaybe ScriptIntegrityHash -> TxBodyField era
WppHash StrictMaybe ScriptIntegrityHash
sih
  , StrictMaybe TxAuxDataHash -> TxBodyField era
forall era. StrictMaybe TxAuxDataHash -> TxBodyField era
AdHash StrictMaybe TxAuxDataHash
adh
  , StrictMaybe Network -> TxBodyField era
forall era. StrictMaybe Network -> TxBodyField era
Txnetworkid StrictMaybe Network
net
  , VotingProcedures era -> TxBodyField era
forall era. VotingProcedures era -> TxBodyField era
VotingProc VotingProcedures era
VotingProcedures ConwayEra
vp
  , OSet (ProposalProcedure era) -> TxBodyField era
forall era. OSet (ProposalProcedure era) -> TxBodyField era
ProposalProc OSet (ProposalProcedure era)
OSet (ProposalProcedure ConwayEra)
pp
  , StrictMaybe Coin -> TxBodyField era
forall era. StrictMaybe Coin -> TxBodyField era
CurrentTreasuryValue StrictMaybe Coin
ctv
  , Coin -> TxBodyField era
forall era. Coin -> TxBodyField era
TreasuryDonation Coin
td
  ]
abstractTxBody Proof era
Babbage (BabbageTxBody Set TxIn
inp Set TxIn
col Set TxIn
ref StrictSeq (Sized (TxOut BabbageEra))
out StrictMaybe (Sized (TxOut BabbageEra))
colret StrictMaybe Coin
totcol StrictSeq (TxCert BabbageEra)
cert Withdrawals
wdrl Coin
fee ValidityInterval
vldt StrictMaybe (Update BabbageEra)
up Set (KeyHash 'Witness)
req MultiAsset
mnt StrictMaybe ScriptIntegrityHash
sih StrictMaybe TxAuxDataHash
adh StrictMaybe Network
net) =
  [ Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Inputs Set TxIn
inp
  , Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Collateral Set TxIn
col
  , Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
RefInputs Set TxIn
ref
  , StrictSeq (TxOut era) -> TxBodyField era
forall era. StrictSeq (TxOut era) -> TxBodyField era
Outputs (Sized (BabbageTxOut BabbageEra) -> BabbageTxOut BabbageEra
forall a. Sized a -> a
sizedValue (Sized (BabbageTxOut BabbageEra) -> BabbageTxOut BabbageEra)
-> StrictSeq (Sized (BabbageTxOut BabbageEra))
-> StrictSeq (BabbageTxOut BabbageEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> StrictSeq (Sized (TxOut BabbageEra))
StrictSeq (Sized (BabbageTxOut BabbageEra))
out)
  , StrictMaybe (TxOut era) -> TxBodyField era
forall era. StrictMaybe (TxOut era) -> TxBodyField era
CollateralReturn (Sized (BabbageTxOut BabbageEra) -> BabbageTxOut BabbageEra
forall a. Sized a -> a
sizedValue (Sized (BabbageTxOut BabbageEra) -> BabbageTxOut BabbageEra)
-> StrictMaybe (Sized (BabbageTxOut BabbageEra))
-> StrictMaybe (BabbageTxOut BabbageEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> StrictMaybe (Sized (TxOut BabbageEra))
StrictMaybe (Sized (BabbageTxOut BabbageEra))
colret)
  , StrictMaybe Coin -> TxBodyField era
forall era. StrictMaybe Coin -> TxBodyField era
TotalCol StrictMaybe Coin
totcol
  , StrictSeq (TxCert era) -> TxBodyField era
forall era. StrictSeq (TxCert era) -> TxBodyField era
Certs StrictSeq (TxCert era)
StrictSeq (TxCert BabbageEra)
cert
  , Withdrawals -> TxBodyField era
forall era. Withdrawals -> TxBodyField era
Withdrawals' Withdrawals
wdrl
  , Coin -> TxBodyField era
forall era. Coin -> TxBodyField era
Txfee Coin
fee
  , ValidityInterval -> TxBodyField era
forall era. ValidityInterval -> TxBodyField era
Vldt ValidityInterval
vldt
  , StrictMaybe (Update era) -> TxBodyField era
forall era. StrictMaybe (Update era) -> TxBodyField era
Update StrictMaybe (Update era)
StrictMaybe (Update BabbageEra)
up
  , Set (KeyHash 'Witness) -> TxBodyField era
forall era. Set (KeyHash 'Witness) -> TxBodyField era
ReqSignerHashes Set (KeyHash 'Witness)
req
  , MultiAsset -> TxBodyField era
forall era. MultiAsset -> TxBodyField era
Mint MultiAsset
mnt
  , StrictMaybe ScriptIntegrityHash -> TxBodyField era
forall era. StrictMaybe ScriptIntegrityHash -> TxBodyField era
WppHash StrictMaybe ScriptIntegrityHash
sih
  , StrictMaybe TxAuxDataHash -> TxBodyField era
forall era. StrictMaybe TxAuxDataHash -> TxBodyField era
AdHash StrictMaybe TxAuxDataHash
adh
  , StrictMaybe Network -> TxBodyField era
forall era. StrictMaybe Network -> TxBodyField era
Txnetworkid StrictMaybe Network
net
  ]
abstractTxBody Proof era
Shelley (ShelleyTxBody Set TxIn
inp StrictSeq (TxOut ShelleyEra)
out StrictSeq (TxCert ShelleyEra)
cert Withdrawals
wdrl Coin
fee SlotNo
ttlslot StrictMaybe (Update ShelleyEra)
up StrictMaybe TxAuxDataHash
adh) =
  [ Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Inputs Set TxIn
inp
  , StrictSeq (TxOut era) -> TxBodyField era
forall era. StrictSeq (TxOut era) -> TxBodyField era
Outputs StrictSeq (TxOut era)
StrictSeq (TxOut ShelleyEra)
out
  , StrictSeq (TxCert era) -> TxBodyField era
forall era. StrictSeq (TxCert era) -> TxBodyField era
Certs StrictSeq (TxCert era)
StrictSeq (TxCert ShelleyEra)
cert
  , Withdrawals -> TxBodyField era
forall era. Withdrawals -> TxBodyField era
Withdrawals' Withdrawals
wdrl
  , Coin -> TxBodyField era
forall era. Coin -> TxBodyField era
Txfee Coin
fee
  , SlotNo -> TxBodyField era
forall era. SlotNo -> TxBodyField era
TTL SlotNo
ttlslot
  , StrictMaybe (Update era) -> TxBodyField era
forall era. StrictMaybe (Update era) -> TxBodyField era
Update StrictMaybe (Update era)
StrictMaybe (Update ShelleyEra)
up
  , StrictMaybe TxAuxDataHash -> TxBodyField era
forall era. StrictMaybe TxAuxDataHash -> TxBodyField era
AdHash StrictMaybe TxAuxDataHash
adh
  ]
abstractTxBody Proof era
Mary (MaryTxBody Set TxIn
inp StrictSeq (TxOut MaryEra)
out StrictSeq (TxCert MaryEra)
cert Withdrawals
wdrl Coin
fee ValidityInterval
vldt StrictMaybe (Update MaryEra)
up StrictMaybe TxAuxDataHash
adh MultiAsset
mnt) =
  [ Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Inputs Set TxIn
inp
  , StrictSeq (TxOut era) -> TxBodyField era
forall era. StrictSeq (TxOut era) -> TxBodyField era
Outputs StrictSeq (TxOut era)
StrictSeq (TxOut MaryEra)
out
  , StrictSeq (TxCert era) -> TxBodyField era
forall era. StrictSeq (TxCert era) -> TxBodyField era
Certs StrictSeq (TxCert era)
StrictSeq (TxCert MaryEra)
cert
  , Withdrawals -> TxBodyField era
forall era. Withdrawals -> TxBodyField era
Withdrawals' Withdrawals
wdrl
  , Coin -> TxBodyField era
forall era. Coin -> TxBodyField era
Txfee Coin
fee
  , ValidityInterval -> TxBodyField era
forall era. ValidityInterval -> TxBodyField era
Vldt ValidityInterval
vldt
  , StrictMaybe (Update era) -> TxBodyField era
forall era. StrictMaybe (Update era) -> TxBodyField era
Update StrictMaybe (Update era)
StrictMaybe (Update MaryEra)
up
  , StrictMaybe TxAuxDataHash -> TxBodyField era
forall era. StrictMaybe TxAuxDataHash -> TxBodyField era
AdHash StrictMaybe TxAuxDataHash
adh
  , MultiAsset -> TxBodyField era
forall era. MultiAsset -> TxBodyField era
Mint MultiAsset
mnt
  ]
abstractTxBody Proof era
Allegra (AllegraTxBody Set TxIn
inp StrictSeq (TxOut AllegraEra)
out StrictSeq (TxCert AllegraEra)
cert Withdrawals
wdrl Coin
fee ValidityInterval
vldt StrictMaybe (Update AllegraEra)
up StrictMaybe TxAuxDataHash
adh) =
  [ Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Inputs Set TxIn
inp
  , StrictSeq (TxOut era) -> TxBodyField era
forall era. StrictSeq (TxOut era) -> TxBodyField era
Outputs StrictSeq (TxOut era)
StrictSeq (TxOut AllegraEra)
out
  , StrictSeq (TxCert era) -> TxBodyField era
forall era. StrictSeq (TxCert era) -> TxBodyField era
Certs StrictSeq (TxCert era)
StrictSeq (TxCert AllegraEra)
cert
  , Withdrawals -> TxBodyField era
forall era. Withdrawals -> TxBodyField era
Withdrawals' Withdrawals
wdrl
  , Coin -> TxBodyField era
forall era. Coin -> TxBodyField era
Txfee Coin
fee
  , ValidityInterval -> TxBodyField era
forall era. ValidityInterval -> TxBodyField era
Vldt ValidityInterval
vldt
  , StrictMaybe (Update era) -> TxBodyField era
forall era. StrictMaybe (Update era) -> TxBodyField era
Update StrictMaybe (Update era)
StrictMaybe (Update AllegraEra)
up
  , StrictMaybe TxAuxDataHash -> TxBodyField era
forall era. StrictMaybe TxAuxDataHash -> TxBodyField era
AdHash StrictMaybe TxAuxDataHash
adh
  ]

abstractWitnesses :: Proof era -> TxWits era -> [WitnessesField era]
abstractWitnesses :: forall era. Proof era -> TxWits era -> [WitnessesField era]
abstractWitnesses Proof era
Shelley (ShelleyTxWits Set (WitVKey 'Witness)
keys Map ScriptHash (Script ShelleyEra)
scripts Set BootstrapWitness
boot) = [Set (WitVKey 'Witness) -> WitnessesField era
forall era. Set (WitVKey 'Witness) -> WitnessesField era
AddrWits Set (WitVKey 'Witness)
keys, Map ScriptHash (Script era) -> WitnessesField era
forall era. Map ScriptHash (Script era) -> WitnessesField era
ScriptWits Map ScriptHash (Script era)
Map ScriptHash (Script ShelleyEra)
scripts, Set BootstrapWitness -> WitnessesField era
forall era. Set BootstrapWitness -> WitnessesField era
BootWits Set BootstrapWitness
boot]
abstractWitnesses Proof era
Allegra (ShelleyTxWits Set (WitVKey 'Witness)
keys Map ScriptHash (Script AllegraEra)
scripts Set BootstrapWitness
boot) = [Set (WitVKey 'Witness) -> WitnessesField era
forall era. Set (WitVKey 'Witness) -> WitnessesField era
AddrWits Set (WitVKey 'Witness)
keys, Map ScriptHash (Script era) -> WitnessesField era
forall era. Map ScriptHash (Script era) -> WitnessesField era
ScriptWits Map ScriptHash (Script era)
Map ScriptHash (Script AllegraEra)
scripts, Set BootstrapWitness -> WitnessesField era
forall era. Set BootstrapWitness -> WitnessesField era
BootWits Set BootstrapWitness
boot]
abstractWitnesses Proof era
Mary (ShelleyTxWits Set (WitVKey 'Witness)
keys Map ScriptHash (Script MaryEra)
scripts Set BootstrapWitness
boot) = [Set (WitVKey 'Witness) -> WitnessesField era
forall era. Set (WitVKey 'Witness) -> WitnessesField era
AddrWits Set (WitVKey 'Witness)
keys, Map ScriptHash (Script era) -> WitnessesField era
forall era. Map ScriptHash (Script era) -> WitnessesField era
ScriptWits Map ScriptHash (Script era)
Map ScriptHash (Script MaryEra)
scripts, Set BootstrapWitness -> WitnessesField era
forall era. Set BootstrapWitness -> WitnessesField era
BootWits Set BootstrapWitness
boot]
abstractWitnesses Proof era
Alonzo (AlonzoTxWits Set (WitVKey 'Witness)
key Set BootstrapWitness
boot Map ScriptHash (Script era)
scripts TxDats era
dats Redeemers era
red) =
  [Set (WitVKey 'Witness) -> WitnessesField era
forall era. Set (WitVKey 'Witness) -> WitnessesField era
AddrWits Set (WitVKey 'Witness)
key, Map ScriptHash (Script era) -> WitnessesField era
forall era. Map ScriptHash (Script era) -> WitnessesField era
ScriptWits Map ScriptHash (Script era)
scripts, Set BootstrapWitness -> WitnessesField era
forall era. Set BootstrapWitness -> WitnessesField era
BootWits Set BootstrapWitness
boot, TxDats era -> WitnessesField era
forall era. TxDats era -> WitnessesField era
DataWits TxDats era
dats, Redeemers era -> WitnessesField era
forall era. Redeemers era -> WitnessesField era
RdmrWits Redeemers era
red]
abstractWitnesses Proof era
Babbage (AlonzoTxWits Set (WitVKey 'Witness)
key Set BootstrapWitness
boot Map ScriptHash (Script era)
scripts TxDats era
dats Redeemers era
red) =
  [Set (WitVKey 'Witness) -> WitnessesField era
forall era. Set (WitVKey 'Witness) -> WitnessesField era
AddrWits Set (WitVKey 'Witness)
key, Map ScriptHash (Script era) -> WitnessesField era
forall era. Map ScriptHash (Script era) -> WitnessesField era
ScriptWits Map ScriptHash (Script era)
scripts, Set BootstrapWitness -> WitnessesField era
forall era. Set BootstrapWitness -> WitnessesField era
BootWits Set BootstrapWitness
boot, TxDats era -> WitnessesField era
forall era. TxDats era -> WitnessesField era
DataWits TxDats era
dats, Redeemers era -> WitnessesField era
forall era. Redeemers era -> WitnessesField era
RdmrWits Redeemers era
red]
abstractWitnesses Proof era
Conway (AlonzoTxWits Set (WitVKey 'Witness)
key Set BootstrapWitness
boot Map ScriptHash (Script era)
scripts TxDats era
dats Redeemers era
red) =
  [Set (WitVKey 'Witness) -> WitnessesField era
forall era. Set (WitVKey 'Witness) -> WitnessesField era
AddrWits Set (WitVKey 'Witness)
key, Map ScriptHash (Script era) -> WitnessesField era
forall era. Map ScriptHash (Script era) -> WitnessesField era
ScriptWits Map ScriptHash (Script era)
scripts, Set BootstrapWitness -> WitnessesField era
forall era. Set BootstrapWitness -> WitnessesField era
BootWits Set BootstrapWitness
boot, TxDats era -> WitnessesField era
forall era. TxDats era -> WitnessesField era
DataWits TxDats era
dats, Redeemers era -> WitnessesField era
forall era. Redeemers era -> WitnessesField era
RdmrWits Redeemers era
red]

abstractTxOut :: Era era => Proof era -> TxOut era -> [TxOutField era]
abstractTxOut :: forall era. Era era => Proof era -> TxOut era -> [TxOutField era]
abstractTxOut Proof era
Shelley (ShelleyTxOut Addr
addr Value ShelleyEra
c) = [Addr -> TxOutField era
forall era. Addr -> TxOutField era
Address Addr
addr, Value era -> TxOutField era
forall era. Value era -> TxOutField era
Amount Value era
Value ShelleyEra
c]
abstractTxOut Proof era
Allegra (ShelleyTxOut Addr
addr Value AllegraEra
c) = [Addr -> TxOutField era
forall era. Addr -> TxOutField era
Address Addr
addr, Value era -> TxOutField era
forall era. Value era -> TxOutField era
Amount Value era
Value AllegraEra
c]
abstractTxOut Proof era
Mary (ShelleyTxOut Addr
addr Value MaryEra
val) = [Addr -> TxOutField era
forall era. Addr -> TxOutField era
Address Addr
addr, Value era -> TxOutField era
forall era. Value era -> TxOutField era
Amount Value era
Value MaryEra
val]
abstractTxOut Proof era
Alonzo (AlonzoTxOut Addr
addr Value AlonzoEra
val StrictMaybe DataHash
d) = [Addr -> TxOutField era
forall era. Addr -> TxOutField era
Address Addr
addr, Value era -> TxOutField era
forall era. Value era -> TxOutField era
Amount Value era
Value AlonzoEra
val, StrictMaybe DataHash -> TxOutField era
forall era. StrictMaybe DataHash -> TxOutField era
DHash StrictMaybe DataHash
d]
abstractTxOut Proof era
Babbage (BabbageTxOut Addr
addr Value era
val Datum era
d StrictMaybe (Script era)
refscr) =
  [Addr -> TxOutField era
forall era. Addr -> TxOutField era
Address Addr
addr, Value era -> TxOutField era
forall era. Value era -> TxOutField era
Amount Value era
val, Datum era -> TxOutField era
forall era. Datum era -> TxOutField era
FDatum Datum era
d, StrictMaybe (Script era) -> TxOutField era
forall era. StrictMaybe (Script era) -> TxOutField era
RefScript StrictMaybe (Script era)
refscr]
abstractTxOut Proof era
Conway (BabbageTxOut Addr
addr Value era
val Datum era
d StrictMaybe (Script era)
refscr) =
  [Addr -> TxOutField era
forall era. Addr -> TxOutField era
Address Addr
addr, Value era -> TxOutField era
forall era. Value era -> TxOutField era
Amount Value era
val, Datum era -> TxOutField era
forall era. Datum era -> TxOutField era
FDatum Datum era
d, StrictMaybe (Script era) -> TxOutField era
forall era. StrictMaybe (Script era) -> TxOutField era
RefScript StrictMaybe (Script era)
refscr]

-- =================================================================
-- coercion functions for defining Primed Field constructor patterns

valid :: IsValid -> Bool
valid :: IsValid -> Bool
valid (IsValid Bool
b) = Bool
b

toSet :: Ord a => [a] -> Set a
toSet :: forall a. Ord a => [a] -> Set a
toSet = [a] -> Set a
forall a. Ord a => [a] -> Set a
Set.fromList

fromSet :: Set a -> [a]
fromSet :: forall a. Set a -> [a]
fromSet = Set a -> [a]
forall a. Set a -> [a]
Set.toList

toStrictSeq :: [a] -> StrictSeq a
toStrictSeq :: forall a. [a] -> StrictSeq a
toStrictSeq = [a] -> StrictSeq a
forall a. [a] -> StrictSeq a
SSeq.fromList

fromStrictSeq :: StrictSeq a -> [a]
fromStrictSeq :: forall a. StrictSeq a -> [a]
fromStrictSeq StrictSeq a
s = (a -> [a] -> [a]) -> [a] -> StrictSeq a -> [a]
forall a b. (a -> b -> b) -> b -> StrictSeq a -> b
forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
foldr (:) [] StrictSeq a
s

toStrictMaybe :: [a] -> StrictMaybe a
toStrictMaybe :: forall a. [a] -> StrictMaybe a
toStrictMaybe [] = StrictMaybe a
forall a. StrictMaybe a
SNothing
toStrictMaybe [a
x] = a -> StrictMaybe a
forall a. a -> StrictMaybe a
SJust a
x
toStrictMaybe [a]
_xs = [Char] -> StrictMaybe a
forall a. HasCallStack => [Char] -> a
error [Char]
"toStrictMaybe applied to list with 2 or more elements"

fromStrictMaybe :: StrictMaybe a -> [a]
fromStrictMaybe :: forall a. StrictMaybe a -> [a]
fromStrictMaybe StrictMaybe a
SNothing = []
fromStrictMaybe (SJust a
x) = [a
x]

-- Coercing from [T era] to (Map (Hash (T era)) (T era)), for different version of T that are Hashable

toMapDat :: Era era => [Data era] -> TxDats era
toMapDat :: forall era. Era era => [Data era] -> TxDats era
toMapDat [Data era]
ds = Map DataHash (Data era) -> TxDats era
forall era. Era era => Map DataHash (Data era) -> TxDats era
TxDats ([(DataHash, Data era)] -> Map DataHash (Data era)
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList ((Data era -> (DataHash, Data era))
-> [Data era] -> [(DataHash, Data era)]
forall a b. (a -> b) -> [a] -> [b]
map (\Data era
d -> (Data era -> DataHash
forall era. Data era -> DataHash
hashData Data era
d, Data era
d)) [Data era]
ds))

fromMapScript :: forall era. Map ScriptHash (Script era) -> [Script era]
fromMapScript :: forall era. Map ScriptHash (Script era) -> [Script era]
fromMapScript Map ScriptHash (Script era)
m = Map ScriptHash (Script era) -> [Script era]
forall k a. Map k a -> [a]
Map.elems Map ScriptHash (Script era)
m

toMapScript ::
  forall era. EraScript era => [Script era] -> Map ScriptHash (Script era)
toMapScript :: forall era.
EraScript era =>
[Script era] -> Map ScriptHash (Script era)
toMapScript [Script era]
scripts = [(ScriptHash, Script era)] -> Map ScriptHash (Script era)
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList ((Script era -> (ScriptHash, Script era))
-> [Script era] -> [(ScriptHash, Script era)]
forall a b. (a -> b) -> [a] -> [b]
map (\Script era
s -> (forall era. EraScript era => Script era -> ScriptHash
hashScript @era Script era
s, Script era
s)) [Script era]
scripts)

-- =============================================================================
-- Patterns (with primed names, like C') allow users to use [a], to stand
-- for (Set a) (Maybe a) (StrictSeq a) (StrictMaybe a) (Map (hash a) a)
-- The pattern signatures are just underneath the data declarations

-- ========================
-- TxBody patterns

netview :: TxBodyField era -> Maybe [Network]
netview :: forall era. TxBodyField era -> Maybe [Network]
netview (Txnetworkid StrictMaybe Network
x) = [Network] -> Maybe [Network]
forall a. a -> Maybe a
Just (StrictMaybe Network -> [Network]
forall a. StrictMaybe a -> [a]
fromStrictMaybe StrictMaybe Network
x)
netview TxBodyField era
_ = Maybe [Network]
forall a. Maybe a
Nothing

pattern $mTxnetworkid' :: forall {r} {era}.
TxBodyField era -> ([Network] -> r) -> ((# #) -> r) -> r
$bTxnetworkid' :: forall era. [Network] -> TxBodyField era
Txnetworkid' x <-
  (netview -> Just x)
  where
    Txnetworkid' [Network]
x = StrictMaybe Network -> TxBodyField era
forall era. StrictMaybe Network -> TxBodyField era
Txnetworkid ([Network] -> StrictMaybe Network
forall a. [a] -> StrictMaybe a
toStrictMaybe [Network]
x)

adhashview :: TxBodyField era -> Maybe [TxAuxDataHash]
adhashview :: forall era. TxBodyField era -> Maybe [TxAuxDataHash]
adhashview (AdHash StrictMaybe TxAuxDataHash
x) = [TxAuxDataHash] -> Maybe [TxAuxDataHash]
forall a. a -> Maybe a
Just (StrictMaybe TxAuxDataHash -> [TxAuxDataHash]
forall a. StrictMaybe a -> [a]
fromStrictMaybe StrictMaybe TxAuxDataHash
x)
adhashview TxBodyField era
_ = Maybe [TxAuxDataHash]
forall a. Maybe a
Nothing

pattern $mAdHash' :: forall {r} {era}.
TxBodyField era -> ([TxAuxDataHash] -> r) -> ((# #) -> r) -> r
$bAdHash' :: forall era. [TxAuxDataHash] -> TxBodyField era
AdHash' x <-
  (adhashview -> Just x)
  where
    AdHash' [TxAuxDataHash]
x = StrictMaybe TxAuxDataHash -> TxBodyField era
forall era. StrictMaybe TxAuxDataHash -> TxBodyField era
AdHash ([TxAuxDataHash] -> StrictMaybe TxAuxDataHash
forall a. [a] -> StrictMaybe a
toStrictMaybe [TxAuxDataHash]
x)

wppview :: TxBodyField era -> Maybe [ScriptIntegrityHash]
wppview :: forall era. TxBodyField era -> Maybe [ScriptIntegrityHash]
wppview (WppHash StrictMaybe ScriptIntegrityHash
x) = [ScriptIntegrityHash] -> Maybe [ScriptIntegrityHash]
forall a. a -> Maybe a
Just (StrictMaybe ScriptIntegrityHash -> [ScriptIntegrityHash]
forall a. StrictMaybe a -> [a]
fromStrictMaybe StrictMaybe ScriptIntegrityHash
x)
wppview TxBodyField era
_ = Maybe [ScriptIntegrityHash]
forall a. Maybe a
Nothing

pattern $mWppHash' :: forall {r} {era}.
TxBodyField era
-> ([ScriptIntegrityHash] -> r) -> ((# #) -> r) -> r
$bWppHash' :: forall era. [ScriptIntegrityHash] -> TxBodyField era
WppHash' x <-
  (wppview -> Just x)
  where
    WppHash' [ScriptIntegrityHash]
x = StrictMaybe ScriptIntegrityHash -> TxBodyField era
forall era. StrictMaybe ScriptIntegrityHash -> TxBodyField era
WppHash ([ScriptIntegrityHash] -> StrictMaybe ScriptIntegrityHash
forall a. [a] -> StrictMaybe a
toStrictMaybe [ScriptIntegrityHash]
x)

signview :: TxBodyField era -> Maybe [KeyHash 'Witness]
signview :: forall era. TxBodyField era -> Maybe [KeyHash 'Witness]
signview (ReqSignerHashes Set (KeyHash 'Witness)
x) = [KeyHash 'Witness] -> Maybe [KeyHash 'Witness]
forall a. a -> Maybe a
Just (Set (KeyHash 'Witness) -> [KeyHash 'Witness]
forall a. Set a -> [a]
fromSet Set (KeyHash 'Witness)
x)
signview TxBodyField era
_ = Maybe [KeyHash 'Witness]
forall a. Maybe a
Nothing

pattern $mReqSignerHashes' :: forall {r} {era}.
TxBodyField era -> ([KeyHash 'Witness] -> r) -> ((# #) -> r) -> r
$bReqSignerHashes' :: forall era. [KeyHash 'Witness] -> TxBodyField era
ReqSignerHashes' x <-
  (signview -> Just x)
  where
    ReqSignerHashes' [KeyHash 'Witness]
x = Set (KeyHash 'Witness) -> TxBodyField era
forall era. Set (KeyHash 'Witness) -> TxBodyField era
ReqSignerHashes ([KeyHash 'Witness] -> Set (KeyHash 'Witness)
forall a. Ord a => [a] -> Set a
toSet [KeyHash 'Witness]
x)

updateview :: TxBodyField era -> Maybe [PP.Update era]
updateview :: forall era. TxBodyField era -> Maybe [Update era]
updateview (Update StrictMaybe (Update era)
x) = [Update era] -> Maybe [Update era]
forall a. a -> Maybe a
Just (StrictMaybe (Update era) -> [Update era]
forall a. StrictMaybe a -> [a]
fromStrictMaybe StrictMaybe (Update era)
x)
updateview TxBodyField era
_ = Maybe [Update era]
forall a. Maybe a
Nothing

pattern $mUpdate' :: forall {r} {era}.
TxBodyField era -> ([Update era] -> r) -> ((# #) -> r) -> r
$bUpdate' :: forall era. [Update era] -> TxBodyField era
Update' x <-
  (updateview -> Just x)
  where
    Update' [Update era]
x = StrictMaybe (Update era) -> TxBodyField era
forall era. StrictMaybe (Update era) -> TxBodyField era
Update ([Update era] -> StrictMaybe (Update era)
forall a. [a] -> StrictMaybe a
toStrictMaybe [Update era]
x)

certsview :: TxBodyField era -> Maybe [TxCert era]
certsview :: forall era. TxBodyField era -> Maybe [TxCert era]
certsview (Certs StrictSeq (TxCert era)
x) = [TxCert era] -> Maybe [TxCert era]
forall a. a -> Maybe a
Just (StrictSeq (TxCert era) -> [TxCert era]
forall a. StrictSeq a -> [a]
fromStrictSeq StrictSeq (TxCert era)
x)
certsview TxBodyField era
_ = Maybe [TxCert era]
forall a. Maybe a
Nothing

pattern $mCerts' :: forall {r} {era}.
TxBodyField era -> ([TxCert era] -> r) -> ((# #) -> r) -> r
$bCerts' :: forall era. [TxCert era] -> TxBodyField era
Certs' x <-
  (certsview -> Just x)
  where
    Certs' [TxCert era]
x = StrictSeq (TxCert era) -> TxBodyField era
forall era. StrictSeq (TxCert era) -> TxBodyField era
Certs ([TxCert era] -> StrictSeq (TxCert era)
forall a. [a] -> StrictSeq a
toStrictSeq [TxCert era]
x)

colretview :: TxBodyField era -> Maybe [TxOut era]
colretview :: forall era. TxBodyField era -> Maybe [TxOut era]
colretview (CollateralReturn StrictMaybe (TxOut era)
x) = [TxOut era] -> Maybe [TxOut era]
forall a. a -> Maybe a
Just (StrictMaybe (TxOut era) -> [TxOut era]
forall a. StrictMaybe a -> [a]
fromStrictMaybe StrictMaybe (TxOut era)
x)
colretview TxBodyField era
_ = Maybe [TxOut era]
forall a. Maybe a
Nothing

pattern $mCollateralReturn' :: forall {r} {era}.
TxBodyField era -> ([TxOut era] -> r) -> ((# #) -> r) -> r
$bCollateralReturn' :: forall era. [TxOut era] -> TxBodyField era
CollateralReturn' x <-
  (colretview -> Just x)
  where
    CollateralReturn' [TxOut era]
x = StrictMaybe (TxOut era) -> TxBodyField era
forall era. StrictMaybe (TxOut era) -> TxBodyField era
CollateralReturn ([TxOut era] -> StrictMaybe (TxOut era)
forall a. [a] -> StrictMaybe a
toStrictMaybe [TxOut era]
x)

outputview :: TxBodyField era -> Maybe [TxOut era]
outputview :: forall era. TxBodyField era -> Maybe [TxOut era]
outputview (Outputs StrictSeq (TxOut era)
x) = [TxOut era] -> Maybe [TxOut era]
forall a. a -> Maybe a
Just (StrictSeq (TxOut era) -> [TxOut era]
forall a. StrictSeq a -> [a]
fromStrictSeq StrictSeq (TxOut era)
x)
outputview TxBodyField era
_ = Maybe [TxOut era]
forall a. Maybe a
Nothing

pattern $mOutputs' :: forall {r} {era}.
TxBodyField era -> ([TxOut era] -> r) -> ((# #) -> r) -> r
$bOutputs' :: forall era. [TxOut era] -> TxBodyField era
Outputs' x <-
  (outputview -> Just x)
  where
    Outputs' [TxOut era]
x = StrictSeq (TxOut era) -> TxBodyField era
forall era. StrictSeq (TxOut era) -> TxBodyField era
Outputs ([TxOut era] -> StrictSeq (TxOut era)
forall a. [a] -> StrictSeq a
toStrictSeq [TxOut era]
x)

inputsview :: TxBodyField era -> Maybe [TxIn]
inputsview :: forall era. TxBodyField era -> Maybe [TxIn]
inputsview (Inputs Set TxIn
x) = [TxIn] -> Maybe [TxIn]
forall a. a -> Maybe a
Just (Set TxIn -> [TxIn]
forall a. Set a -> [a]
fromSet Set TxIn
x)
inputsview TxBodyField era
_ = Maybe [TxIn]
forall a. Maybe a
Nothing

pattern $mInputs' :: forall {r} {era}.
TxBodyField era -> ([TxIn] -> r) -> ((# #) -> r) -> r
$bInputs' :: forall era. [TxIn] -> TxBodyField era
Inputs' x <-
  (inputsview -> Just x)
  where
    Inputs' [TxIn]
x = Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Inputs ([TxIn] -> Set TxIn
forall a. Ord a => [a] -> Set a
toSet [TxIn]
x)

colview :: TxBodyField era -> Maybe [TxIn]
colview :: forall era. TxBodyField era -> Maybe [TxIn]
colview (Collateral Set TxIn
x) = [TxIn] -> Maybe [TxIn]
forall a. a -> Maybe a
Just (Set TxIn -> [TxIn]
forall a. Set a -> [a]
fromSet Set TxIn
x)
colview TxBodyField era
_ = Maybe [TxIn]
forall a. Maybe a
Nothing

pattern $mCollateral' :: forall {r} {era}.
TxBodyField era -> ([TxIn] -> r) -> ((# #) -> r) -> r
$bCollateral' :: forall era. [TxIn] -> TxBodyField era
Collateral' x <-
  (colview -> Just x)
  where
    Collateral' [TxIn]
x = Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
Collateral ([TxIn] -> Set TxIn
forall a. Ord a => [a] -> Set a
toSet [TxIn]
x)

refview :: TxBodyField era -> Maybe [TxIn]
refview :: forall era. TxBodyField era -> Maybe [TxIn]
refview (RefInputs Set TxIn
x) = [TxIn] -> Maybe [TxIn]
forall a. a -> Maybe a
Just (Set TxIn -> [TxIn]
forall a. Set a -> [a]
fromSet Set TxIn
x)
refview TxBodyField era
_ = Maybe [TxIn]
forall a. Maybe a
Nothing

pattern $mRefInputs' :: forall {r} {era}.
TxBodyField era -> ([TxIn] -> r) -> ((# #) -> r) -> r
$bRefInputs' :: forall era. [TxIn] -> TxBodyField era
RefInputs' x <-
  (refview -> Just x)
  where
    RefInputs' [TxIn]
x = Set TxIn -> TxBodyField era
forall era. Set TxIn -> TxBodyField era
RefInputs ([TxIn] -> Set TxIn
forall a. Ord a => [a] -> Set a
toSet [TxIn]
x)

-- =============================
-- Tx patterns

validview :: TxField era -> Maybe Bool
validview :: forall era. TxField era -> Maybe Bool
validview (Valid IsValid
x) = Bool -> Maybe Bool
forall a. a -> Maybe a
Just (IsValid -> Bool
valid IsValid
x)
validview TxField era
_ = Maybe Bool
forall a. Maybe a
Nothing

pattern $mValid' :: forall {r} {era}. TxField era -> (Bool -> r) -> ((# #) -> r) -> r
$bValid' :: forall era. Bool -> TxField era
Valid' x <-
  (validview -> Just x)
  where
    Valid' Bool
x = IsValid -> TxField era
forall era. IsValid -> TxField era
Valid (Bool -> IsValid
IsValid Bool
x)

auxdataview :: TxField era -> Maybe [TxAuxData era]
auxdataview :: forall era. TxField era -> Maybe [TxAuxData era]
auxdataview (AuxData StrictMaybe (TxAuxData era)
x) = [TxAuxData era] -> Maybe [TxAuxData era]
forall a. a -> Maybe a
Just (StrictMaybe (TxAuxData era) -> [TxAuxData era]
forall a. StrictMaybe a -> [a]
fromStrictMaybe StrictMaybe (TxAuxData era)
x)
auxdataview TxField era
_ = Maybe [TxAuxData era]
forall a. Maybe a
Nothing

pattern $mAuxData' :: forall {r} {era}.
TxField era -> ([TxAuxData era] -> r) -> ((# #) -> r) -> r
$bAuxData' :: forall era. [TxAuxData era] -> TxField era
AuxData' x <-
  (auxdataview -> Just x)
  where
    AuxData' [TxAuxData era]
x = StrictMaybe (TxAuxData era) -> TxField era
forall era. StrictMaybe (TxAuxData era) -> TxField era
AuxData ([TxAuxData era] -> StrictMaybe (TxAuxData era)
forall a. [a] -> StrictMaybe a
toStrictMaybe [TxAuxData era]
x)

-- =======================
-- WitnessesField Patterns

datawitsview :: forall era. Era era => WitnessesField era -> Maybe [Data era]
datawitsview :: forall era. Era era => WitnessesField era -> Maybe [Data era]
datawitsview (DataWits (TxDats Map DataHash (Data era)
x)) = [Data era] -> Maybe [Data era]
forall a. a -> Maybe a
Just (Map DataHash (Data era) -> [Data era]
forall k a. Map k a -> [a]
Map.elems Map DataHash (Data era)
x)
datawitsview WitnessesField era
_ = Maybe [Data era]
forall a. Maybe a
Nothing

pattern $mDataWits' :: forall {r} {era}.
Era era =>
WitnessesField era -> ([Data era] -> r) -> ((# #) -> r) -> r
$bDataWits' :: forall era. Era era => [Data era] -> WitnessesField era
DataWits' x <-
  (datawitsview -> Just x)
  where
    DataWits' [Data era]
x = TxDats era -> WitnessesField era
forall era. TxDats era -> WitnessesField era
DataWits ([Data era] -> TxDats era
forall era. Era era => [Data era] -> TxDats era
toMapDat [Data era]
x)

scriptview :: forall era. WitnessesField era -> Maybe [Script era]
scriptview :: forall era. WitnessesField era -> Maybe [Script era]
scriptview (ScriptWits Map ScriptHash (Script era)
x) = [Script era] -> Maybe [Script era]
forall a. a -> Maybe a
Just (forall era. Map ScriptHash (Script era) -> [Script era]
fromMapScript @era Map ScriptHash (Script era)
x)
scriptview WitnessesField era
_ = Maybe [Script era]
forall a. Maybe a
Nothing

pattern $mScriptWits' :: forall {r} {era}.
EraScript era =>
WitnessesField era -> ([Script era] -> r) -> ((# #) -> r) -> r
$bScriptWits' :: forall era. EraScript era => [Script era] -> WitnessesField era
ScriptWits' x <-
  (scriptview -> Just x)
  where
    ScriptWits' [Script era]
x = Map ScriptHash (Script era) -> WitnessesField era
forall era. Map ScriptHash (Script era) -> WitnessesField era
ScriptWits (forall era.
EraScript era =>
[Script era] -> Map ScriptHash (Script era)
toMapScript @era [Script era]
x)

addrview :: WitnessesField era -> Maybe [WitVKey 'Witness]
addrview :: forall era. WitnessesField era -> Maybe [WitVKey 'Witness]
addrview (AddrWits Set (WitVKey 'Witness)
x) = [WitVKey 'Witness] -> Maybe [WitVKey 'Witness]
forall a. a -> Maybe a
Just (Set (WitVKey 'Witness) -> [WitVKey 'Witness]
forall a. Set a -> [a]
fromSet Set (WitVKey 'Witness)
x)
addrview WitnessesField era
_ = Maybe [WitVKey 'Witness]
forall a. Maybe a
Nothing

pattern $mAddrWits' :: forall {r} {era}.
Era era =>
WitnessesField era
-> ([WitVKey 'Witness] -> r) -> ((# #) -> r) -> r
$bAddrWits' :: forall era. Era era => [WitVKey 'Witness] -> WitnessesField era
AddrWits' x <-
  (addrview -> Just x)
  where
    AddrWits' [WitVKey 'Witness]
x = Set (WitVKey 'Witness) -> WitnessesField era
forall era. Set (WitVKey 'Witness) -> WitnessesField era
AddrWits ([WitVKey 'Witness] -> Set (WitVKey 'Witness)
forall a. Ord a => [a] -> Set a
toSet [WitVKey 'Witness]
x)

bootview :: WitnessesField era -> Maybe [BootstrapWitness]
bootview :: forall era. WitnessesField era -> Maybe [BootstrapWitness]
bootview (BootWits Set BootstrapWitness
x) = [BootstrapWitness] -> Maybe [BootstrapWitness]
forall a. a -> Maybe a
Just (Set BootstrapWitness -> [BootstrapWitness]
forall a. Set a -> [a]
fromSet Set BootstrapWitness
x)
bootview WitnessesField era
_ = Maybe [BootstrapWitness]
forall a. Maybe a
Nothing

pattern $mBootWits' :: forall {r} {era}.
Era era =>
WitnessesField era
-> ([BootstrapWitness] -> r) -> ((# #) -> r) -> r
$bBootWits' :: forall era. Era era => [BootstrapWitness] -> WitnessesField era
BootWits' x <-
  (bootview -> Just x)
  where
    BootWits' [BootstrapWitness]
x = Set BootstrapWitness -> WitnessesField era
forall era. Set BootstrapWitness -> WitnessesField era
BootWits ([BootstrapWitness] -> Set BootstrapWitness
forall a. Ord a => [a] -> Set a
toSet [BootstrapWitness]
x)

-- ========================================
-- TxOut patterns

refscriptview :: TxOutField era -> Maybe [Script era]
refscriptview :: forall era. TxOutField era -> Maybe [Script era]
refscriptview (RefScript StrictMaybe (Script era)
x) = [Script era] -> Maybe [Script era]
forall a. a -> Maybe a
Just (StrictMaybe (Script era) -> [Script era]
forall a. StrictMaybe a -> [a]
fromStrictMaybe StrictMaybe (Script era)
x)
refscriptview TxOutField era
_ = Maybe [Script era]
forall a. Maybe a
Nothing

pattern $mRefScript' :: forall {r} {era}.
TxOutField era -> ([Script era] -> r) -> ((# #) -> r) -> r
$bRefScript' :: forall era. [Script era] -> TxOutField era
RefScript' x <-
  (refscriptview -> Just x)
  where
    RefScript' [Script era]
x = StrictMaybe (Script era) -> TxOutField era
forall era. StrictMaybe (Script era) -> TxOutField era
RefScript ([Script era] -> StrictMaybe (Script era)
forall a. [a] -> StrictMaybe a
toStrictMaybe [Script era]
x)

dhashview :: TxOutField era -> Maybe [DataHash]
dhashview :: forall era. TxOutField era -> Maybe [DataHash]
dhashview (DHash StrictMaybe DataHash
x) = [DataHash] -> Maybe [DataHash]
forall a. a -> Maybe a
Just (StrictMaybe DataHash -> [DataHash]
forall a. StrictMaybe a -> [a]
fromStrictMaybe StrictMaybe DataHash
x)
dhashview TxOutField era
_ = Maybe [DataHash]
forall a. Maybe a
Nothing

pattern $mDHash' :: forall {r} {era}.
TxOutField era -> ([DataHash] -> r) -> ((# #) -> r) -> r
$bDHash' :: forall era. [DataHash] -> TxOutField era
DHash' x <-
  (dhashview -> Just x)
  where
    DHash' [DataHash]
x = StrictMaybe DataHash -> TxOutField era
forall era. StrictMaybe DataHash -> TxOutField era
DHash ([DataHash] -> StrictMaybe DataHash
forall a. [a] -> StrictMaybe a
toStrictMaybe [DataHash]
x)

-- =======================================================================

push ::
  (a -> PParamsField era) ->
  (Lens' (PParamsUpdate era) (StrictMaybe a)) ->
  PParamsUpdate era ->
  Maybe (PParamsField era)
push :: forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push a -> PParamsField era
fieldConstr Lens' (PParamsUpdate era) (StrictMaybe a)
lens PParamsUpdate era
ppu = case PParamsUpdate era
ppu PParamsUpdate era
-> Getting (StrictMaybe a) (PParamsUpdate era) (StrictMaybe a)
-> StrictMaybe a
forall s a. s -> Getting a s a -> a
^. Getting (StrictMaybe a) (PParamsUpdate era) (StrictMaybe a)
Lens' (PParamsUpdate era) (StrictMaybe a)
lens of
  StrictMaybe a
SNothing -> Maybe (PParamsField era)
forall a. Maybe a
Nothing
  SJust a
x -> PParamsField era -> Maybe (PParamsField era)
forall a. a -> Maybe a
Just (a -> PParamsField era
fieldConstr a
x)

abstractPParamsUpdate :: Proof era -> PParamsUpdate era -> [Maybe (PParamsField era)]
abstractPParamsUpdate :: forall era.
Proof era -> PParamsUpdate era -> [Maybe (PParamsField era)]
abstractPParamsUpdate Proof era
Shelley PParamsUpdate era
pp =
  [ (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeAL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeBL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxBBSizeL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxTxSizeL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuMaxBHSizeL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuKeyDepositL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuPoolDepositL PParamsUpdate era
pp
  , (EpochInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuEMaxL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuNOptL PParamsUpdate era
pp
  , (NonNegativeInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (StrictMaybe NonNegativeInterval
 -> f (StrictMaybe NonNegativeInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
ppuA0L PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuRhoL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuTauL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
D (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 6) =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuDL PParamsUpdate era
pp
  , (Nonce -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Nonce)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Nonce -> PParamsField era
forall era. Nonce -> PParamsField era
ExtraEntropy (StrictMaybe Nonce -> f (StrictMaybe Nonce))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 6) =>
Lens' (PParamsUpdate era) (StrictMaybe Nonce)
Lens' (PParamsUpdate era) (StrictMaybe Nonce)
ppuExtraEntropyL PParamsUpdate era
pp
  , (ProtVer -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ProtVer -> PParamsField era
forall era. ProtVer -> PParamsField era
ProtocolVersion (StrictMaybe ProtVer -> f (StrictMaybe ProtVer))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 8) =>
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
ppuProtocolVersionL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinUTxOValue (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 4) =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinUTxOValueL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinPoolCostL PParamsUpdate era
pp
  ]
abstractPParamsUpdate Proof era
Allegra PParamsUpdate era
pp =
  [ (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeAL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeBL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxBBSizeL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxTxSizeL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuMaxBHSizeL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuKeyDepositL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuPoolDepositL PParamsUpdate era
pp
  , (EpochInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuEMaxL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuNOptL PParamsUpdate era
pp
  , (NonNegativeInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (StrictMaybe NonNegativeInterval
 -> f (StrictMaybe NonNegativeInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
ppuA0L PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuRhoL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuTauL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
D (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 6) =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuDL PParamsUpdate era
pp
  , (Nonce -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Nonce)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Nonce -> PParamsField era
forall era. Nonce -> PParamsField era
ExtraEntropy (StrictMaybe Nonce -> f (StrictMaybe Nonce))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 6) =>
Lens' (PParamsUpdate era) (StrictMaybe Nonce)
Lens' (PParamsUpdate era) (StrictMaybe Nonce)
ppuExtraEntropyL PParamsUpdate era
pp
  , (ProtVer -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ProtVer -> PParamsField era
forall era. ProtVer -> PParamsField era
ProtocolVersion (StrictMaybe ProtVer -> f (StrictMaybe ProtVer))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 8) =>
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
ppuProtocolVersionL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinUTxOValue (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 4) =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinUTxOValueL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinPoolCostL PParamsUpdate era
pp
  ]
abstractPParamsUpdate Proof era
Mary PParamsUpdate era
pp =
  [ (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeAL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeBL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxBBSizeL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxTxSizeL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuMaxBHSizeL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuKeyDepositL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuPoolDepositL PParamsUpdate era
pp
  , (EpochInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuEMaxL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuNOptL PParamsUpdate era
pp
  , (NonNegativeInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (StrictMaybe NonNegativeInterval
 -> f (StrictMaybe NonNegativeInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
ppuA0L PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuRhoL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuTauL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
D (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 6) =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuDL PParamsUpdate era
pp
  , (Nonce -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Nonce)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Nonce -> PParamsField era
forall era. Nonce -> PParamsField era
ExtraEntropy (StrictMaybe Nonce -> f (StrictMaybe Nonce))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 6) =>
Lens' (PParamsUpdate era) (StrictMaybe Nonce)
Lens' (PParamsUpdate era) (StrictMaybe Nonce)
ppuExtraEntropyL PParamsUpdate era
pp
  , (ProtVer -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ProtVer -> PParamsField era
forall era. ProtVer -> PParamsField era
ProtocolVersion (StrictMaybe ProtVer -> f (StrictMaybe ProtVer))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 8) =>
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
ppuProtocolVersionL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinUTxOValue (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 4) =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinUTxOValueL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinPoolCostL PParamsUpdate era
pp
  ]
abstractPParamsUpdate Proof era
Alonzo PParamsUpdate era
pp =
  [ (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeAL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeBL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxBBSizeL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxTxSizeL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuMaxBHSizeL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuKeyDepositL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuPoolDepositL PParamsUpdate era
pp
  , (EpochInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuEMaxL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuNOptL PParamsUpdate era
pp
  , (NonNegativeInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (StrictMaybe NonNegativeInterval
 -> f (StrictMaybe NonNegativeInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
ppuA0L PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuRhoL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuTauL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
D (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 6) =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuDL PParamsUpdate era
pp
  , (Nonce -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Nonce)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Nonce -> PParamsField era
forall era. Nonce -> PParamsField era
ExtraEntropy (StrictMaybe Nonce -> f (StrictMaybe Nonce))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 6) =>
Lens' (PParamsUpdate era) (StrictMaybe Nonce)
Lens' (PParamsUpdate era) (StrictMaybe Nonce)
ppuExtraEntropyL PParamsUpdate era
pp
  , (ProtVer -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ProtVer -> PParamsField era
forall era. ProtVer -> PParamsField era
ProtocolVersion (StrictMaybe ProtVer -> f (StrictMaybe ProtVer))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 8) =>
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
ppuProtocolVersionL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinPoolCostL PParamsUpdate era
pp
  , (CoinPerWord -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe CoinPerWord)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push CoinPerWord -> PParamsField era
forall era. CoinPerWord -> PParamsField era
CoinPerUTxOWord (StrictMaybe CoinPerWord -> f (StrictMaybe CoinPerWord))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(AlonzoEraPParams era, ExactEra AlonzoEra era) =>
Lens' (PParamsUpdate era) (StrictMaybe CoinPerWord)
Lens' (PParamsUpdate era) (StrictMaybe CoinPerWord)
ppuCoinsPerUTxOWordL PParamsUpdate era
pp
  , (CostModels -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe CostModels)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push CostModels -> PParamsField era
forall era. CostModels -> PParamsField era
Costmdls (StrictMaybe CostModels -> f (StrictMaybe CostModels))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe CostModels)
Lens' (PParamsUpdate era) (StrictMaybe CostModels)
ppuCostModelsL PParamsUpdate era
pp
  , (Prices -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Prices)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Prices -> PParamsField era
forall era. Prices -> PParamsField era
Prices (StrictMaybe Prices -> f (StrictMaybe Prices))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Prices)
Lens' (PParamsUpdate era) (StrictMaybe Prices)
ppuPricesL PParamsUpdate era
pp
  , (ExUnits -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxTxExUnits (StrictMaybe ExUnits -> f (StrictMaybe ExUnits))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxTxExUnitsL PParamsUpdate era
pp
  , (ExUnits -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxBlockExUnits (StrictMaybe ExUnits -> f (StrictMaybe ExUnits))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxBlockExUnitsL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxValSize (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxValSizeL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
CollateralPercentage (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuCollateralPercentageL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxCollateralInputs (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxCollateralInputsL PParamsUpdate era
pp
  ]
abstractPParamsUpdate Proof era
Babbage PParamsUpdate era
pp =
  [ (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeAL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeBL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxBBSizeL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxTxSizeL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuMaxBHSizeL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuKeyDepositL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuPoolDepositL PParamsUpdate era
pp
  , (EpochInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuEMaxL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuNOptL PParamsUpdate era
pp
  , (NonNegativeInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (StrictMaybe NonNegativeInterval
 -> f (StrictMaybe NonNegativeInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
ppuA0L PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuRhoL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuTauL PParamsUpdate era
pp
  , (ProtVer -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ProtVer -> PParamsField era
forall era. ProtVer -> PParamsField era
ProtocolVersion (StrictMaybe ProtVer -> f (StrictMaybe ProtVer))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
(EraPParams era, ProtVerAtMost era 8) =>
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
Lens' (PParamsUpdate era) (StrictMaybe ProtVer)
ppuProtocolVersionL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinPoolCostL PParamsUpdate era
pp
  , (CoinPerByte -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe CoinPerByte)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push CoinPerByte -> PParamsField era
forall era. CoinPerByte -> PParamsField era
CoinPerUTxOByte (StrictMaybe CoinPerByte -> f (StrictMaybe CoinPerByte))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
BabbageEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe CoinPerByte)
Lens' (PParamsUpdate era) (StrictMaybe CoinPerByte)
ppuCoinsPerUTxOByteL PParamsUpdate era
pp
  , (CostModels -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe CostModels)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push CostModels -> PParamsField era
forall era. CostModels -> PParamsField era
Costmdls (StrictMaybe CostModels -> f (StrictMaybe CostModels))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe CostModels)
Lens' (PParamsUpdate era) (StrictMaybe CostModels)
ppuCostModelsL PParamsUpdate era
pp
  , (Prices -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Prices)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Prices -> PParamsField era
forall era. Prices -> PParamsField era
Prices (StrictMaybe Prices -> f (StrictMaybe Prices))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Prices)
Lens' (PParamsUpdate era) (StrictMaybe Prices)
ppuPricesL PParamsUpdate era
pp
  , (ExUnits -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxTxExUnits (StrictMaybe ExUnits -> f (StrictMaybe ExUnits))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxTxExUnitsL PParamsUpdate era
pp
  , (ExUnits -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxBlockExUnits (StrictMaybe ExUnits -> f (StrictMaybe ExUnits))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxBlockExUnitsL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxValSize (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxValSizeL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
CollateralPercentage (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuCollateralPercentageL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxCollateralInputs (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxCollateralInputsL PParamsUpdate era
pp
  ]
abstractPParamsUpdate Proof era
Conway PParamsUpdate era
pp =
  [ (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeA (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeAL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinfeeB (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinFeeBL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxBBSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxBBSizeL PParamsUpdate era
pp
  , (Word32 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word32)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word32 -> PParamsField era
forall era. Word32 -> PParamsField era
MaxTxSize (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate era) (StrictMaybe Word32)
ppuMaxTxSizeL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
MaxBHSize (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuMaxBHSizeL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
KeyDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuKeyDepositL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
PoolDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuPoolDepositL PParamsUpdate era
pp
  , (EpochInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
EMax (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuEMaxL PParamsUpdate era
pp
  , (Word16 -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Word16)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Word16 -> PParamsField era
forall era. Word16 -> PParamsField era
NOpt (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate era) (StrictMaybe Word16)
ppuNOptL PParamsUpdate era
pp
  , (NonNegativeInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push NonNegativeInterval -> PParamsField era
forall era. NonNegativeInterval -> PParamsField era
A0 (StrictMaybe NonNegativeInterval
 -> f (StrictMaybe NonNegativeInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
ppuA0L PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Rho (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuRhoL PParamsUpdate era
pp
  , (UnitInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push UnitInterval -> PParamsField era
forall era. UnitInterval -> PParamsField era
Tau (StrictMaybe UnitInterval -> f (StrictMaybe UnitInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
Lens' (PParamsUpdate era) (StrictMaybe UnitInterval)
ppuTauL PParamsUpdate era
pp
  , -- , push ProtocolVersion ppuProtocolVersionL pp
    (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
MinPoolCost (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuMinPoolCostL PParamsUpdate era
pp
  , (CoinPerByte -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe CoinPerByte)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push CoinPerByte -> PParamsField era
forall era. CoinPerByte -> PParamsField era
CoinPerUTxOByte (StrictMaybe CoinPerByte -> f (StrictMaybe CoinPerByte))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
BabbageEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe CoinPerByte)
Lens' (PParamsUpdate era) (StrictMaybe CoinPerByte)
ppuCoinsPerUTxOByteL PParamsUpdate era
pp
  , (CostModels -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe CostModels)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push CostModels -> PParamsField era
forall era. CostModels -> PParamsField era
Costmdls (StrictMaybe CostModels -> f (StrictMaybe CostModels))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe CostModels)
Lens' (PParamsUpdate era) (StrictMaybe CostModels)
ppuCostModelsL PParamsUpdate era
pp
  , (Prices -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Prices)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Prices -> PParamsField era
forall era. Prices -> PParamsField era
Prices (StrictMaybe Prices -> f (StrictMaybe Prices))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Prices)
Lens' (PParamsUpdate era) (StrictMaybe Prices)
ppuPricesL PParamsUpdate era
pp
  , (ExUnits -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxTxExUnits (StrictMaybe ExUnits -> f (StrictMaybe ExUnits))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxTxExUnitsL PParamsUpdate era
pp
  , (ExUnits -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push ExUnits -> PParamsField era
forall era. ExUnits -> PParamsField era
MaxBlockExUnits (StrictMaybe ExUnits -> f (StrictMaybe ExUnits))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxBlockExUnitsL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxValSize (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxValSizeL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
CollateralPercentage (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuCollateralPercentageL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
MaxCollateralInputs (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxCollateralInputsL PParamsUpdate era
pp
  , (PoolVotingThresholds -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe PoolVotingThresholds)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push PoolVotingThresholds -> PParamsField era
forall era. PoolVotingThresholds -> PParamsField era
PoolVotingThreshold (StrictMaybe PoolVotingThresholds
 -> f (StrictMaybe PoolVotingThresholds))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe PoolVotingThresholds)
Lens' (PParamsUpdate era) (StrictMaybe PoolVotingThresholds)
ppuPoolVotingThresholdsL PParamsUpdate era
pp
  , (DRepVotingThresholds -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe DRepVotingThresholds)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push DRepVotingThresholds -> PParamsField era
forall era. DRepVotingThresholds -> PParamsField era
DRepVotingThreshold (StrictMaybe DRepVotingThresholds
 -> f (StrictMaybe DRepVotingThresholds))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe DRepVotingThresholds)
Lens' (PParamsUpdate era) (StrictMaybe DRepVotingThresholds)
ppuDRepVotingThresholdsL PParamsUpdate era
pp
  , (Natural -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Natural -> PParamsField era
forall era. Natural -> PParamsField era
MinCommitteeSize (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuCommitteeMinSizeL PParamsUpdate era
pp
  , (EpochInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
CommitteeTermLimit (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuCommitteeMaxTermLengthL PParamsUpdate era
pp
  , (EpochInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
GovActionExpiration (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuGovActionLifetimeL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
GovActionDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuGovActionDepositL PParamsUpdate era
pp
  , (Coin -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push Coin -> PParamsField era
forall era. Coin -> PParamsField era
DRepDeposit (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuDRepDepositL PParamsUpdate era
pp
  , (EpochInterval -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamsUpdate era
-> Maybe (PParamsField era)
forall a era.
(a -> PParamsField era)
-> Lens' (PParamsUpdate era) (StrictMaybe a)
-> PParamsUpdate era
-> Maybe (PParamsField era)
push EpochInterval -> PParamsField era
forall era. EpochInterval -> PParamsField era
DRepActivity (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuDRepActivityL PParamsUpdate era
pp
  ]

abstractPPUpdate :: Proof era -> PParamsUpdate era -> [PParamsField era]
abstractPPUpdate :: forall era. Proof era -> PParamsUpdate era -> [PParamsField era]
abstractPPUpdate Proof era
proof PParamsUpdate era
ppu = (Maybe (PParamsField era)
 -> [PParamsField era] -> [PParamsField era])
-> [PParamsField era]
-> [Maybe (PParamsField era)]
-> [PParamsField era]
forall a b. (a -> b -> b) -> b -> [a] -> b
forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
foldr Maybe (PParamsField era)
-> [PParamsField era] -> [PParamsField era]
forall {a}. Maybe a -> [a] -> [a]
accum [] (Proof era -> PParamsUpdate era -> [Maybe (PParamsField era)]
forall era.
Proof era -> PParamsUpdate era -> [Maybe (PParamsField era)]
abstractPParamsUpdate Proof era
proof PParamsUpdate era
ppu)
  where
    accum :: Maybe a -> [a] -> [a]
accum (Just a
x) [a]
ans = a
x a -> [a] -> [a]
forall a. a -> [a] -> [a]
: [a]
ans
    accum Maybe a
Nothing [a]
ans = [a]
ans