{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ViewPatterns #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Cardano.Ledger.Dijkstra.TxBody (
  TxBody (
    MkDijkstraTxBody,
    DijkstraTxBody,
    dtbSpendInputs,
    dtbCollateralInputs,
    dtbReferenceInputs,
    dtbOutputs,
    dtbCollateralReturn,
    dtbTotalCollateral,
    dtbCerts,
    dtbWithdrawals,
    dtbTxfee,
    dtbVldt,
    dtbReqSignerHashes,
    dtbMint,
    dtbScriptIntegrityHash,
    dtbAdHash,
    dtbTxNetworkId,
    dtbVotingProcedures,
    dtbProposalProcedures,
    dtbCurrentTreasuryValue,
    dtbTreasuryDonation
  ),
  upgradeProposals,
  upgradeGovAction,
  DijkstraTxBodyRaw (..),
) where

import Cardano.Ledger.Babbage.TxBody (
  allSizedOutputsBabbageTxBodyF,
  babbageAllInputsTxBodyF,
  babbageSpendableInputsTxBodyF,
 )
import Cardano.Ledger.BaseTypes (Network, StrictMaybe (..), fromSMaybe)
import Cardano.Ledger.Binary (
  Annotator,
  DecCBOR (..),
  EncCBOR (..),
  Sized (..),
  ToCBOR,
  mkSized,
  unsafeMapSized,
 )
import Cardano.Ledger.Binary.Coders (
  Decode (..),
  Density (..),
  Encode (..),
  Field,
  Wrapped (..),
  decode,
  encode,
  encodeKeyedStrictMaybe,
  field,
  fieldGuarded,
  invalidField,
  ofield,
  (!>),
 )
import Cardano.Ledger.Coin (Coin, decodePositiveCoin)
import Cardano.Ledger.Conway (ConwayEra)
import Cardano.Ledger.Conway.Core
import Cardano.Ledger.Conway.Governance (
  GovAction (..),
  ProposalProcedure (..),
  VotingProcedures (..),
 )
import Cardano.Ledger.Conway.TxBody (
  TxBody (..),
  conwayProposalsDeposits,
  conwayRedeemerPointer,
  conwayRedeemerPointerInverse,
 )
import Cardano.Ledger.Dijkstra.Era (DijkstraEra)
import Cardano.Ledger.Dijkstra.PParams ()
import Cardano.Ledger.Dijkstra.Scripts ()
import Cardano.Ledger.Dijkstra.TxOut ()
import Cardano.Ledger.Mary.Value (MultiAsset, policies)
import Cardano.Ledger.MemoBytes (
  EqRaw,
  Mem,
  MemoBytes,
  MemoHashIndex,
  Memoized (..),
  getMemoRawType,
  getMemoSafeHash,
  lensMemoRawType,
  mkMemoizedEra,
 )
import Cardano.Ledger.TxIn (TxIn)
import Cardano.Ledger.Val (Val (..))
import Control.DeepSeq (NFData)
import Data.Coerce (Coercible, coerce)
import qualified Data.OSet.Strict as OSet
import Data.Sequence.Strict (StrictSeq)
import Data.Set (Set)
import GHC.Generics (Generic)
import Lens.Micro (to, (^.))
import NoThunks.Class (NoThunks)

data DijkstraTxBodyRaw = DijkstraTxBodyRaw
  { DijkstraTxBodyRaw -> Set TxIn
dtbrSpendInputs :: !(Set TxIn)
  , DijkstraTxBodyRaw -> Set TxIn
dtbrCollateralInputs :: !(Set TxIn)
  , DijkstraTxBodyRaw -> Set TxIn
dtbrReferenceInputs :: !(Set TxIn)
  , DijkstraTxBodyRaw -> StrictSeq (Sized (TxOut DijkstraEra))
dtbrOutputs :: !(StrictSeq (Sized (TxOut DijkstraEra)))
  , DijkstraTxBodyRaw -> StrictMaybe (Sized (TxOut DijkstraEra))
dtbrCollateralReturn :: !(StrictMaybe (Sized (TxOut DijkstraEra)))
  , DijkstraTxBodyRaw -> StrictMaybe Coin
dtbrTotalCollateral :: !(StrictMaybe Coin)
  , DijkstraTxBodyRaw -> OSet (TxCert DijkstraEra)
dtbrCerts :: !(OSet.OSet (TxCert DijkstraEra))
  , DijkstraTxBodyRaw -> Withdrawals
dtbrWithdrawals :: !Withdrawals
  , DijkstraTxBodyRaw -> Coin
dtbrFee :: !Coin
  , DijkstraTxBodyRaw -> ValidityInterval
dtbrVldt :: !ValidityInterval
  , DijkstraTxBodyRaw -> Set (KeyHash 'Witness)
dtbrReqSignerHashes :: !(Set (KeyHash 'Witness))
  , DijkstraTxBodyRaw -> MultiAsset
dtbrMint :: !MultiAsset
  , DijkstraTxBodyRaw -> StrictMaybe ScriptIntegrityHash
dtbrScriptIntegrityHash :: !(StrictMaybe ScriptIntegrityHash)
  , DijkstraTxBodyRaw -> StrictMaybe TxAuxDataHash
dtbrAuxDataHash :: !(StrictMaybe TxAuxDataHash)
  , DijkstraTxBodyRaw -> StrictMaybe Network
dtbrNetworkId :: !(StrictMaybe Network)
  , DijkstraTxBodyRaw -> VotingProcedures DijkstraEra
dtbrVotingProcedures :: !(VotingProcedures DijkstraEra)
  , DijkstraTxBodyRaw -> OSet (ProposalProcedure DijkstraEra)
dtbrProposalProcedures :: !(OSet.OSet (ProposalProcedure DijkstraEra))
  , DijkstraTxBodyRaw -> StrictMaybe Coin
dtbrCurrentTreasuryValue :: !(StrictMaybe Coin)
  , DijkstraTxBodyRaw -> Coin
dtbrTreasuryDonation :: !Coin
  }
  deriving ((forall x. DijkstraTxBodyRaw -> Rep DijkstraTxBodyRaw x)
-> (forall x. Rep DijkstraTxBodyRaw x -> DijkstraTxBodyRaw)
-> Generic DijkstraTxBodyRaw
forall x. Rep DijkstraTxBodyRaw x -> DijkstraTxBodyRaw
forall x. DijkstraTxBodyRaw -> Rep DijkstraTxBodyRaw x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. DijkstraTxBodyRaw -> Rep DijkstraTxBodyRaw x
from :: forall x. DijkstraTxBodyRaw -> Rep DijkstraTxBodyRaw x
$cto :: forall x. Rep DijkstraTxBodyRaw x -> DijkstraTxBodyRaw
to :: forall x. Rep DijkstraTxBodyRaw x -> DijkstraTxBodyRaw
Generic)

deriving instance Eq DijkstraTxBodyRaw

instance EqRaw (TxBody DijkstraEra)

instance NoThunks DijkstraTxBodyRaw

instance NFData DijkstraTxBodyRaw

deriving instance Show DijkstraTxBodyRaw

basicDijkstraTxBodyRaw :: DijkstraTxBodyRaw
basicDijkstraTxBodyRaw :: DijkstraTxBodyRaw
basicDijkstraTxBodyRaw =
  Set TxIn
-> Set TxIn
-> Set TxIn
-> StrictSeq (Sized (TxOut DijkstraEra))
-> StrictMaybe (Sized (TxOut DijkstraEra))
-> StrictMaybe Coin
-> OSet (TxCert DijkstraEra)
-> Withdrawals
-> Coin
-> ValidityInterval
-> Set (KeyHash 'Witness)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> DijkstraTxBodyRaw
DijkstraTxBodyRaw
    Set TxIn
forall a. Monoid a => a
mempty
    Set TxIn
forall a. Monoid a => a
mempty
    Set TxIn
forall a. Monoid a => a
mempty
    StrictSeq (Sized (TxOut DijkstraEra))
StrictSeq (Sized (BabbageTxOut DijkstraEra))
forall a. Monoid a => a
mempty
    StrictMaybe (Sized (TxOut DijkstraEra))
StrictMaybe (Sized (BabbageTxOut DijkstraEra))
forall a. StrictMaybe a
SNothing
    StrictMaybe Coin
forall a. StrictMaybe a
SNothing
    OSet (TxCert DijkstraEra)
OSet (ConwayTxCert DijkstraEra)
forall a. OSet a
OSet.empty
    (Map RewardAccount Coin -> Withdrawals
Withdrawals Map RewardAccount Coin
forall a. Monoid a => a
mempty)
    Coin
forall a. Monoid a => a
mempty
    (StrictMaybe SlotNo -> StrictMaybe SlotNo -> ValidityInterval
ValidityInterval StrictMaybe SlotNo
forall a. StrictMaybe a
SNothing StrictMaybe SlotNo
forall a. StrictMaybe a
SNothing)
    Set (KeyHash 'Witness)
forall a. Monoid a => a
mempty
    MultiAsset
forall a. Monoid a => a
mempty
    StrictMaybe ScriptIntegrityHash
forall a. StrictMaybe a
SNothing
    StrictMaybe TxAuxDataHash
forall a. StrictMaybe a
SNothing
    StrictMaybe Network
forall a. StrictMaybe a
SNothing
    (Map Voter (Map GovActionId (VotingProcedure DijkstraEra))
-> VotingProcedures DijkstraEra
forall era.
Map Voter (Map GovActionId (VotingProcedure era))
-> VotingProcedures era
VotingProcedures Map Voter (Map GovActionId (VotingProcedure DijkstraEra))
forall a. Monoid a => a
mempty)
    OSet (ProposalProcedure DijkstraEra)
forall a. OSet a
OSet.empty
    StrictMaybe Coin
forall a. StrictMaybe a
SNothing
    Coin
forall a. Monoid a => a
mempty

instance DecCBOR DijkstraTxBodyRaw where
  decCBOR :: forall s. Decoder s DijkstraTxBodyRaw
decCBOR =
    Decode ('Closed 'Dense) DijkstraTxBodyRaw
-> Decoder s DijkstraTxBodyRaw
forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t
decode (Decode ('Closed 'Dense) DijkstraTxBodyRaw
 -> Decoder s DijkstraTxBodyRaw)
-> Decode ('Closed 'Dense) DijkstraTxBodyRaw
-> Decoder s DijkstraTxBodyRaw
forall a b. (a -> b) -> a -> b
$
      String
-> DijkstraTxBodyRaw
-> (Word -> Field DijkstraTxBodyRaw)
-> [(Word, String)]
-> Decode ('Closed 'Dense) DijkstraTxBodyRaw
forall t.
Typeable t =>
String
-> t
-> (Word -> Field t)
-> [(Word, String)]
-> Decode ('Closed 'Dense) t
SparseKeyed
        String
"TxBodyRaw"
        DijkstraTxBodyRaw
basicDijkstraTxBodyRaw
        Word -> Field DijkstraTxBodyRaw
bodyFields
        [(Word, String)]
requiredFields
    where
      bodyFields :: Word -> Field DijkstraTxBodyRaw
      bodyFields :: Word -> Field DijkstraTxBodyRaw
bodyFields Word
0 = (Set TxIn -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) (Set TxIn) -> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Set TxIn
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrSpendInputs = x}) Decode ('Closed Any) (Set TxIn)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
1 = (StrictSeq (Sized (BabbageTxOut DijkstraEra))
 -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode
     ('Closed Any) (StrictSeq (Sized (BabbageTxOut DijkstraEra)))
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\StrictSeq (Sized (BabbageTxOut DijkstraEra))
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrOutputs = x}) Decode ('Closed Any) (StrictSeq (Sized (BabbageTxOut DijkstraEra)))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
2 = (Coin -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) Coin -> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrFee = x}) Decode ('Closed Any) Coin
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
3 =
        (StrictMaybe SlotNo -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) SlotNo -> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(StrictMaybe x -> t -> t) -> Decode ('Closed d) x -> Field t
ofield
          (\StrictMaybe SlotNo
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrVldt = (dtbrVldt tx) {invalidHereafter = x}})
          Decode ('Closed Any) SlotNo
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
4 =
        String
-> (OSet (ConwayTxCert DijkstraEra) -> Bool)
-> (OSet (ConwayTxCert DijkstraEra)
    -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) (OSet (ConwayTxCert DijkstraEra))
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
String
-> (x -> Bool) -> (x -> t -> t) -> Decode ('Closed d) x -> Field t
fieldGuarded
          (String -> ShowS
emptyFailure String
"Certificates" String
"non-empty")
          OSet (ConwayTxCert DijkstraEra) -> Bool
forall a. OSet a -> Bool
OSet.null
          (\OSet (ConwayTxCert DijkstraEra)
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrCerts = x})
          Decode ('Closed Any) (OSet (ConwayTxCert DijkstraEra))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
5 =
        String
-> (Withdrawals -> Bool)
-> (Withdrawals -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) Withdrawals
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
String
-> (x -> Bool) -> (x -> t -> t) -> Decode ('Closed d) x -> Field t
fieldGuarded
          (String -> ShowS
emptyFailure String
"Withdrawals" String
"non-empty")
          (Map RewardAccount Coin -> Bool
forall a. Map RewardAccount a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (Map RewardAccount Coin -> Bool)
-> (Withdrawals -> Map RewardAccount Coin) -> Withdrawals -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Withdrawals -> Map RewardAccount Coin
unWithdrawals)
          (\Withdrawals
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrWithdrawals = x})
          Decode ('Closed Any) Withdrawals
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
7 = (StrictMaybe TxAuxDataHash
 -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) TxAuxDataHash -> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(StrictMaybe x -> t -> t) -> Decode ('Closed d) x -> Field t
ofield (\StrictMaybe TxAuxDataHash
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrAuxDataHash = x}) Decode ('Closed Any) TxAuxDataHash
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
8 =
        (StrictMaybe SlotNo -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) SlotNo -> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(StrictMaybe x -> t -> t) -> Decode ('Closed d) x -> Field t
ofield
          (\StrictMaybe SlotNo
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrVldt = (dtbrVldt tx) {invalidBefore = x}})
          Decode ('Closed Any) SlotNo
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
9 =
        String
-> (MultiAsset -> Bool)
-> (MultiAsset -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) MultiAsset
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
String
-> (x -> Bool) -> (x -> t -> t) -> Decode ('Closed d) x -> Field t
fieldGuarded
          (String -> ShowS
emptyFailure String
"Mint" String
"non-empty")
          (MultiAsset -> MultiAsset -> Bool
forall a. Eq a => a -> a -> Bool
== MultiAsset
forall a. Monoid a => a
mempty)
          (\MultiAsset
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrMint = x})
          Decode ('Closed Any) MultiAsset
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
11 = (StrictMaybe ScriptIntegrityHash
 -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) ScriptIntegrityHash
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(StrictMaybe x -> t -> t) -> Decode ('Closed d) x -> Field t
ofield (\StrictMaybe ScriptIntegrityHash
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrScriptIntegrityHash = x}) Decode ('Closed Any) ScriptIntegrityHash
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
13 =
        String
-> (Set TxIn -> Bool)
-> (Set TxIn -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) (Set TxIn)
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
String
-> (x -> Bool) -> (x -> t -> t) -> Decode ('Closed d) x -> Field t
fieldGuarded
          (String -> ShowS
emptyFailure String
"Collateral Inputs" String
"non-empty")
          Set TxIn -> Bool
forall a. Set a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null
          (\Set TxIn
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrCollateralInputs = x})
          Decode ('Closed Any) (Set TxIn)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
14 =
        String
-> (Set (KeyHash 'Witness) -> Bool)
-> (Set (KeyHash 'Witness)
    -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) (Set (KeyHash 'Witness))
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
String
-> (x -> Bool) -> (x -> t -> t) -> Decode ('Closed d) x -> Field t
fieldGuarded
          (String -> ShowS
emptyFailure String
"Required Signer Hashes" String
"non-empty")
          Set (KeyHash 'Witness) -> Bool
forall a. Set a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null
          (\Set (KeyHash 'Witness)
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrReqSignerHashes = x})
          Decode ('Closed Any) (Set (KeyHash 'Witness))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
15 = (StrictMaybe Network -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) Network -> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(StrictMaybe x -> t -> t) -> Decode ('Closed d) x -> Field t
ofield (\StrictMaybe Network
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrNetworkId = x}) Decode ('Closed Any) Network
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
16 = (StrictMaybe (Sized (BabbageTxOut DijkstraEra))
 -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) (Sized (BabbageTxOut DijkstraEra))
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(StrictMaybe x -> t -> t) -> Decode ('Closed d) x -> Field t
ofield (\StrictMaybe (Sized (BabbageTxOut DijkstraEra))
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrCollateralReturn = x}) Decode ('Closed Any) (Sized (BabbageTxOut DijkstraEra))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
17 = (StrictMaybe Coin -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) Coin -> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(StrictMaybe x -> t -> t) -> Decode ('Closed d) x -> Field t
ofield (\StrictMaybe Coin
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrTotalCollateral = x}) Decode ('Closed Any) Coin
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
18 =
        String
-> (Set TxIn -> Bool)
-> (Set TxIn -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) (Set TxIn)
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
String
-> (x -> Bool) -> (x -> t -> t) -> Decode ('Closed d) x -> Field t
fieldGuarded
          (String -> ShowS
emptyFailure String
"Reference Inputs" String
"non-empty")
          Set TxIn -> Bool
forall a. Set a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null
          (\Set TxIn
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrReferenceInputs = x})
          Decode ('Closed Any) (Set TxIn)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
19 =
        String
-> (VotingProcedures DijkstraEra -> Bool)
-> (VotingProcedures DijkstraEra
    -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) (VotingProcedures DijkstraEra)
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
String
-> (x -> Bool) -> (x -> t -> t) -> Decode ('Closed d) x -> Field t
fieldGuarded
          (String -> ShowS
emptyFailure String
"VotingProcedures" String
"non-empty")
          (Map Voter (Map GovActionId (VotingProcedure DijkstraEra)) -> Bool
forall a. Map Voter a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (Map Voter (Map GovActionId (VotingProcedure DijkstraEra)) -> Bool)
-> (VotingProcedures DijkstraEra
    -> Map Voter (Map GovActionId (VotingProcedure DijkstraEra)))
-> VotingProcedures DijkstraEra
-> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VotingProcedures DijkstraEra
-> Map Voter (Map GovActionId (VotingProcedure DijkstraEra))
forall era.
VotingProcedures era
-> Map Voter (Map GovActionId (VotingProcedure era))
unVotingProcedures)
          (\VotingProcedures DijkstraEra
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrVotingProcedures = x})
          Decode ('Closed Any) (VotingProcedures DijkstraEra)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
20 =
        String
-> (OSet (ProposalProcedure DijkstraEra) -> Bool)
-> (OSet (ProposalProcedure DijkstraEra)
    -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) (OSet (ProposalProcedure DijkstraEra))
-> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
String
-> (x -> Bool) -> (x -> t -> t) -> Decode ('Closed d) x -> Field t
fieldGuarded
          (String -> ShowS
emptyFailure String
"ProposalProcedures" String
"non-empty")
          OSet (ProposalProcedure DijkstraEra) -> Bool
forall a. OSet a -> Bool
OSet.null
          (\OSet (ProposalProcedure DijkstraEra)
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrProposalProcedures = x})
          Decode ('Closed Any) (OSet (ProposalProcedure DijkstraEra))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
21 = (StrictMaybe Coin -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed Any) Coin -> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(StrictMaybe x -> t -> t) -> Decode ('Closed d) x -> Field t
ofield (\StrictMaybe Coin
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrCurrentTreasuryValue = x}) Decode ('Closed Any) Coin
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
      bodyFields Word
22 =
        (StrictMaybe Coin -> DijkstraTxBodyRaw -> DijkstraTxBodyRaw)
-> Decode ('Closed 'Dense) Coin -> Field DijkstraTxBodyRaw
forall x t (d :: Density).
Typeable x =>
(StrictMaybe x -> t -> t) -> Decode ('Closed d) x -> Field t
ofield
          (\StrictMaybe Coin
x DijkstraTxBodyRaw
tx -> DijkstraTxBodyRaw
tx {dtbrTreasuryDonation = fromSMaybe zero x})
          ((forall s. Decoder s Coin) -> Decode ('Closed 'Dense) Coin
forall t. (forall s. Decoder s t) -> Decode ('Closed 'Dense) t
D (String -> Decoder s Coin
forall s. String -> Decoder s Coin
decodePositiveCoin (String -> Decoder s Coin) -> String -> Decoder s Coin
forall a b. (a -> b) -> a -> b
$ String -> ShowS
emptyFailure String
"Treasury Donation" String
"non-zero"))
      bodyFields Word
n = Word -> Field DijkstraTxBodyRaw
forall t. Word -> Field t
invalidField Word
n
      requiredFields :: [(Word, String)]
      requiredFields :: [(Word, String)]
requiredFields =
        [ (Word
0, String
"inputs")
        , (Word
1, String
"outputs")
        , (Word
2, String
"fee")
        ]
      emptyFailure :: String -> ShowS
emptyFailure String
fieldName String
requirement =
        String
"TxBody: '" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
fieldName String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"' must be " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
requirement String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
" when supplied"

encodeTxBodyRaw ::
  DijkstraTxBodyRaw ->
  Encode ('Closed 'Sparse) DijkstraTxBodyRaw
encodeTxBodyRaw :: DijkstraTxBodyRaw -> Encode ('Closed 'Sparse) DijkstraTxBodyRaw
encodeTxBodyRaw DijkstraTxBodyRaw {OSet (TxCert DijkstraEra)
OSet (ProposalProcedure DijkstraEra)
Set (KeyHash 'Witness)
Set TxIn
StrictMaybe ScriptIntegrityHash
StrictMaybe TxAuxDataHash
StrictMaybe (Sized (TxOut DijkstraEra))
StrictMaybe Coin
StrictMaybe Network
ValidityInterval
Withdrawals
StrictSeq (Sized (TxOut DijkstraEra))
VotingProcedures DijkstraEra
Coin
MultiAsset
dtbrSpendInputs :: DijkstraTxBodyRaw -> Set TxIn
dtbrCollateralInputs :: DijkstraTxBodyRaw -> Set TxIn
dtbrReferenceInputs :: DijkstraTxBodyRaw -> Set TxIn
dtbrOutputs :: DijkstraTxBodyRaw -> StrictSeq (Sized (TxOut DijkstraEra))
dtbrCollateralReturn :: DijkstraTxBodyRaw -> StrictMaybe (Sized (TxOut DijkstraEra))
dtbrTotalCollateral :: DijkstraTxBodyRaw -> StrictMaybe Coin
dtbrCerts :: DijkstraTxBodyRaw -> OSet (TxCert DijkstraEra)
dtbrWithdrawals :: DijkstraTxBodyRaw -> Withdrawals
dtbrFee :: DijkstraTxBodyRaw -> Coin
dtbrVldt :: DijkstraTxBodyRaw -> ValidityInterval
dtbrReqSignerHashes :: DijkstraTxBodyRaw -> Set (KeyHash 'Witness)
dtbrMint :: DijkstraTxBodyRaw -> MultiAsset
dtbrScriptIntegrityHash :: DijkstraTxBodyRaw -> StrictMaybe ScriptIntegrityHash
dtbrAuxDataHash :: DijkstraTxBodyRaw -> StrictMaybe TxAuxDataHash
dtbrNetworkId :: DijkstraTxBodyRaw -> StrictMaybe Network
dtbrVotingProcedures :: DijkstraTxBodyRaw -> VotingProcedures DijkstraEra
dtbrProposalProcedures :: DijkstraTxBodyRaw -> OSet (ProposalProcedure DijkstraEra)
dtbrCurrentTreasuryValue :: DijkstraTxBodyRaw -> StrictMaybe Coin
dtbrTreasuryDonation :: DijkstraTxBodyRaw -> Coin
dtbrSpendInputs :: Set TxIn
dtbrCollateralInputs :: Set TxIn
dtbrReferenceInputs :: Set TxIn
dtbrOutputs :: StrictSeq (Sized (TxOut DijkstraEra))
dtbrCollateralReturn :: StrictMaybe (Sized (TxOut DijkstraEra))
dtbrTotalCollateral :: StrictMaybe Coin
dtbrCerts :: OSet (TxCert DijkstraEra)
dtbrWithdrawals :: Withdrawals
dtbrFee :: Coin
dtbrVldt :: ValidityInterval
dtbrReqSignerHashes :: Set (KeyHash 'Witness)
dtbrMint :: MultiAsset
dtbrScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
dtbrAuxDataHash :: StrictMaybe TxAuxDataHash
dtbrNetworkId :: StrictMaybe Network
dtbrVotingProcedures :: VotingProcedures DijkstraEra
dtbrProposalProcedures :: OSet (ProposalProcedure DijkstraEra)
dtbrCurrentTreasuryValue :: StrictMaybe Coin
dtbrTreasuryDonation :: Coin
..} =
  let ValidityInterval StrictMaybe SlotNo
bot StrictMaybe SlotNo
top = ValidityInterval
dtbrVldt
   in (Set TxIn
 -> Set TxIn
 -> Set TxIn
 -> StrictSeq (Sized (BabbageTxOut DijkstraEra))
 -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
 -> StrictMaybe Coin
 -> Coin
 -> StrictMaybe SlotNo
 -> OSet (ConwayTxCert DijkstraEra)
 -> Withdrawals
 -> StrictMaybe SlotNo
 -> Set (KeyHash 'Witness)
 -> MultiAsset
 -> StrictMaybe ScriptIntegrityHash
 -> StrictMaybe TxAuxDataHash
 -> StrictMaybe Network
 -> VotingProcedures DijkstraEra
 -> OSet (ProposalProcedure DijkstraEra)
 -> StrictMaybe Coin
 -> Coin
 -> DijkstraTxBodyRaw)
-> Encode
     ('Closed 'Sparse)
     (Set TxIn
      -> Set TxIn
      -> Set TxIn
      -> StrictSeq (Sized (BabbageTxOut DijkstraEra))
      -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
      -> StrictMaybe Coin
      -> Coin
      -> StrictMaybe SlotNo
      -> OSet (ConwayTxCert DijkstraEra)
      -> Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall t. t -> Encode ('Closed 'Sparse) t
Keyed
        ( \Set TxIn
i Set TxIn
ci Set TxIn
ri StrictSeq (Sized (BabbageTxOut DijkstraEra))
o StrictMaybe (Sized (BabbageTxOut DijkstraEra))
cr StrictMaybe Coin
tc Coin
f StrictMaybe SlotNo
t OSet (ConwayTxCert DijkstraEra)
c Withdrawals
w StrictMaybe SlotNo
b ->
            Set TxIn
-> Set TxIn
-> Set TxIn
-> StrictSeq (Sized (TxOut DijkstraEra))
-> StrictMaybe (Sized (TxOut DijkstraEra))
-> StrictMaybe Coin
-> OSet (TxCert DijkstraEra)
-> Withdrawals
-> Coin
-> ValidityInterval
-> Set (KeyHash 'Witness)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> DijkstraTxBodyRaw
DijkstraTxBodyRaw Set TxIn
i Set TxIn
ci Set TxIn
ri StrictSeq (Sized (TxOut DijkstraEra))
StrictSeq (Sized (BabbageTxOut DijkstraEra))
o StrictMaybe (Sized (TxOut DijkstraEra))
StrictMaybe (Sized (BabbageTxOut DijkstraEra))
cr StrictMaybe Coin
tc OSet (TxCert DijkstraEra)
OSet (ConwayTxCert DijkstraEra)
c Withdrawals
w Coin
f (StrictMaybe SlotNo -> StrictMaybe SlotNo -> ValidityInterval
ValidityInterval StrictMaybe SlotNo
b StrictMaybe SlotNo
t)
        )
        Encode
  ('Closed 'Sparse)
  (Set TxIn
   -> Set TxIn
   -> Set TxIn
   -> StrictSeq (Sized (BabbageTxOut DijkstraEra))
   -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
   -> StrictMaybe Coin
   -> Coin
   -> StrictMaybe SlotNo
   -> OSet (ConwayTxCert DijkstraEra)
   -> Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (Set TxIn)
-> Encode
     ('Closed 'Sparse)
     (Set TxIn
      -> Set TxIn
      -> StrictSeq (Sized (BabbageTxOut DijkstraEra))
      -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
      -> StrictMaybe Coin
      -> Coin
      -> StrictMaybe SlotNo
      -> OSet (ConwayTxCert DijkstraEra)
      -> Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> Encode ('Closed 'Dense) (Set TxIn)
-> Encode ('Closed 'Sparse) (Set TxIn)
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
0 (Set TxIn -> Encode ('Closed 'Dense) (Set TxIn)
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To Set TxIn
dtbrSpendInputs)
        Encode
  ('Closed 'Sparse)
  (Set TxIn
   -> Set TxIn
   -> StrictSeq (Sized (BabbageTxOut DijkstraEra))
   -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
   -> StrictMaybe Coin
   -> Coin
   -> StrictMaybe SlotNo
   -> OSet (ConwayTxCert DijkstraEra)
   -> Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (Set TxIn)
-> Encode
     ('Closed 'Sparse)
     (Set TxIn
      -> StrictSeq (Sized (BabbageTxOut DijkstraEra))
      -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
      -> StrictMaybe Coin
      -> Coin
      -> StrictMaybe SlotNo
      -> OSet (ConwayTxCert DijkstraEra)
      -> Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (Set TxIn -> Bool)
-> Encode ('Closed 'Sparse) (Set TxIn)
-> Encode ('Closed 'Sparse) (Set TxIn)
forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit Set TxIn -> Bool
forall a. Set a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (Word
-> Encode ('Closed 'Dense) (Set TxIn)
-> Encode ('Closed 'Sparse) (Set TxIn)
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
13 (Set TxIn -> Encode ('Closed 'Dense) (Set TxIn)
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To Set TxIn
dtbrCollateralInputs))
        Encode
  ('Closed 'Sparse)
  (Set TxIn
   -> StrictSeq (Sized (BabbageTxOut DijkstraEra))
   -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
   -> StrictMaybe Coin
   -> Coin
   -> StrictMaybe SlotNo
   -> OSet (ConwayTxCert DijkstraEra)
   -> Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (Set TxIn)
-> Encode
     ('Closed 'Sparse)
     (StrictSeq (Sized (BabbageTxOut DijkstraEra))
      -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
      -> StrictMaybe Coin
      -> Coin
      -> StrictMaybe SlotNo
      -> OSet (ConwayTxCert DijkstraEra)
      -> Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (Set TxIn -> Bool)
-> Encode ('Closed 'Sparse) (Set TxIn)
-> Encode ('Closed 'Sparse) (Set TxIn)
forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit Set TxIn -> Bool
forall a. Set a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (Word
-> Encode ('Closed 'Dense) (Set TxIn)
-> Encode ('Closed 'Sparse) (Set TxIn)
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
18 (Set TxIn -> Encode ('Closed 'Dense) (Set TxIn)
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To Set TxIn
dtbrReferenceInputs))
        Encode
  ('Closed 'Sparse)
  (StrictSeq (Sized (BabbageTxOut DijkstraEra))
   -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
   -> StrictMaybe Coin
   -> Coin
   -> StrictMaybe SlotNo
   -> OSet (ConwayTxCert DijkstraEra)
   -> Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode
     ('Closed 'Sparse) (StrictSeq (Sized (BabbageTxOut DijkstraEra)))
-> Encode
     ('Closed 'Sparse)
     (StrictMaybe (Sized (BabbageTxOut DijkstraEra))
      -> StrictMaybe Coin
      -> Coin
      -> StrictMaybe SlotNo
      -> OSet (ConwayTxCert DijkstraEra)
      -> Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> Encode
     ('Closed 'Dense) (StrictSeq (Sized (BabbageTxOut DijkstraEra)))
-> Encode
     ('Closed 'Sparse) (StrictSeq (Sized (BabbageTxOut DijkstraEra)))
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
1 (StrictSeq (Sized (BabbageTxOut DijkstraEra))
-> Encode
     ('Closed 'Dense) (StrictSeq (Sized (BabbageTxOut DijkstraEra)))
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To StrictSeq (Sized (TxOut DijkstraEra))
StrictSeq (Sized (BabbageTxOut DijkstraEra))
dtbrOutputs)
        Encode
  ('Closed 'Sparse)
  (StrictMaybe (Sized (BabbageTxOut DijkstraEra))
   -> StrictMaybe Coin
   -> Coin
   -> StrictMaybe SlotNo
   -> OSet (ConwayTxCert DijkstraEra)
   -> Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode
     ('Closed 'Sparse) (StrictMaybe (Sized (BabbageTxOut DijkstraEra)))
-> Encode
     ('Closed 'Sparse)
     (StrictMaybe Coin
      -> Coin
      -> StrictMaybe SlotNo
      -> OSet (ConwayTxCert DijkstraEra)
      -> Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
-> Encode
     ('Closed 'Sparse) (StrictMaybe (Sized (BabbageTxOut DijkstraEra)))
forall a.
EncCBOR a =>
Word -> StrictMaybe a -> Encode ('Closed 'Sparse) (StrictMaybe a)
encodeKeyedStrictMaybe Word
16 StrictMaybe (Sized (TxOut DijkstraEra))
StrictMaybe (Sized (BabbageTxOut DijkstraEra))
dtbrCollateralReturn
        Encode
  ('Closed 'Sparse)
  (StrictMaybe Coin
   -> Coin
   -> StrictMaybe SlotNo
   -> OSet (ConwayTxCert DijkstraEra)
   -> Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (StrictMaybe Coin)
-> Encode
     ('Closed 'Sparse)
     (Coin
      -> StrictMaybe SlotNo
      -> OSet (ConwayTxCert DijkstraEra)
      -> Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> StrictMaybe Coin -> Encode ('Closed 'Sparse) (StrictMaybe Coin)
forall a.
EncCBOR a =>
Word -> StrictMaybe a -> Encode ('Closed 'Sparse) (StrictMaybe a)
encodeKeyedStrictMaybe Word
17 StrictMaybe Coin
dtbrTotalCollateral
        Encode
  ('Closed 'Sparse)
  (Coin
   -> StrictMaybe SlotNo
   -> OSet (ConwayTxCert DijkstraEra)
   -> Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) Coin
-> Encode
     ('Closed 'Sparse)
     (StrictMaybe SlotNo
      -> OSet (ConwayTxCert DijkstraEra)
      -> Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> Encode ('Closed 'Dense) Coin -> Encode ('Closed 'Sparse) Coin
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
2 (Coin -> Encode ('Closed 'Dense) Coin
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To Coin
dtbrFee)
        Encode
  ('Closed 'Sparse)
  (StrictMaybe SlotNo
   -> OSet (ConwayTxCert DijkstraEra)
   -> Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (StrictMaybe SlotNo)
-> Encode
     ('Closed 'Sparse)
     (OSet (ConwayTxCert DijkstraEra)
      -> Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> StrictMaybe SlotNo
-> Encode ('Closed 'Sparse) (StrictMaybe SlotNo)
forall a.
EncCBOR a =>
Word -> StrictMaybe a -> Encode ('Closed 'Sparse) (StrictMaybe a)
encodeKeyedStrictMaybe Word
3 StrictMaybe SlotNo
top
        Encode
  ('Closed 'Sparse)
  (OSet (ConwayTxCert DijkstraEra)
   -> Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (OSet (ConwayTxCert DijkstraEra))
-> Encode
     ('Closed 'Sparse)
     (Withdrawals
      -> StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (OSet (ConwayTxCert DijkstraEra) -> Bool)
-> Encode ('Closed 'Sparse) (OSet (ConwayTxCert DijkstraEra))
-> Encode ('Closed 'Sparse) (OSet (ConwayTxCert DijkstraEra))
forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit OSet (ConwayTxCert DijkstraEra) -> Bool
forall a. OSet a -> Bool
OSet.null (Word
-> Encode ('Closed 'Dense) (OSet (ConwayTxCert DijkstraEra))
-> Encode ('Closed 'Sparse) (OSet (ConwayTxCert DijkstraEra))
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
4 (OSet (ConwayTxCert DijkstraEra)
-> Encode ('Closed 'Dense) (OSet (ConwayTxCert DijkstraEra))
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To OSet (TxCert DijkstraEra)
OSet (ConwayTxCert DijkstraEra)
dtbrCerts))
        Encode
  ('Closed 'Sparse)
  (Withdrawals
   -> StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) Withdrawals
-> Encode
     ('Closed 'Sparse)
     (StrictMaybe SlotNo
      -> Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (Withdrawals -> Bool)
-> Encode ('Closed 'Sparse) Withdrawals
-> Encode ('Closed 'Sparse) Withdrawals
forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit (Map RewardAccount Coin -> Bool
forall a. Map RewardAccount a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (Map RewardAccount Coin -> Bool)
-> (Withdrawals -> Map RewardAccount Coin) -> Withdrawals -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Withdrawals -> Map RewardAccount Coin
unWithdrawals) (Word
-> Encode ('Closed 'Dense) Withdrawals
-> Encode ('Closed 'Sparse) Withdrawals
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
5 (Withdrawals -> Encode ('Closed 'Dense) Withdrawals
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To Withdrawals
dtbrWithdrawals))
        Encode
  ('Closed 'Sparse)
  (StrictMaybe SlotNo
   -> Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (StrictMaybe SlotNo)
-> Encode
     ('Closed 'Sparse)
     (Set (KeyHash 'Witness)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> StrictMaybe SlotNo
-> Encode ('Closed 'Sparse) (StrictMaybe SlotNo)
forall a.
EncCBOR a =>
Word -> StrictMaybe a -> Encode ('Closed 'Sparse) (StrictMaybe a)
encodeKeyedStrictMaybe Word
8 StrictMaybe SlotNo
bot
        Encode
  ('Closed 'Sparse)
  (Set (KeyHash 'Witness)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (Set (KeyHash 'Witness))
-> Encode
     ('Closed 'Sparse)
     (MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (Set (KeyHash 'Witness) -> Bool)
-> Encode ('Closed 'Sparse) (Set (KeyHash 'Witness))
-> Encode ('Closed 'Sparse) (Set (KeyHash 'Witness))
forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit Set (KeyHash 'Witness) -> Bool
forall a. Set a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (Word
-> Encode ('Closed 'Dense) (Set (KeyHash 'Witness))
-> Encode ('Closed 'Sparse) (Set (KeyHash 'Witness))
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
14 (Set (KeyHash 'Witness)
-> Encode ('Closed 'Dense) (Set (KeyHash 'Witness))
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To Set (KeyHash 'Witness)
dtbrReqSignerHashes))
        Encode
  ('Closed 'Sparse)
  (MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) MultiAsset
-> Encode
     ('Closed 'Sparse)
     (StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (MultiAsset -> Bool)
-> Encode ('Closed 'Sparse) MultiAsset
-> Encode ('Closed 'Sparse) MultiAsset
forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit (MultiAsset -> MultiAsset -> Bool
forall a. Eq a => a -> a -> Bool
== MultiAsset
forall a. Monoid a => a
mempty) (Word
-> Encode ('Closed 'Dense) MultiAsset
-> Encode ('Closed 'Sparse) MultiAsset
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
9 (MultiAsset -> Encode ('Closed 'Dense) MultiAsset
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To MultiAsset
dtbrMint))
        Encode
  ('Closed 'Sparse)
  (StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (StrictMaybe ScriptIntegrityHash)
-> Encode
     ('Closed 'Sparse)
     (StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> StrictMaybe ScriptIntegrityHash
-> Encode ('Closed 'Sparse) (StrictMaybe ScriptIntegrityHash)
forall a.
EncCBOR a =>
Word -> StrictMaybe a -> Encode ('Closed 'Sparse) (StrictMaybe a)
encodeKeyedStrictMaybe Word
11 StrictMaybe ScriptIntegrityHash
dtbrScriptIntegrityHash
        Encode
  ('Closed 'Sparse)
  (StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (StrictMaybe TxAuxDataHash)
-> Encode
     ('Closed 'Sparse)
     (StrictMaybe Network
      -> VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> StrictMaybe TxAuxDataHash
-> Encode ('Closed 'Sparse) (StrictMaybe TxAuxDataHash)
forall a.
EncCBOR a =>
Word -> StrictMaybe a -> Encode ('Closed 'Sparse) (StrictMaybe a)
encodeKeyedStrictMaybe Word
7 StrictMaybe TxAuxDataHash
dtbrAuxDataHash
        Encode
  ('Closed 'Sparse)
  (StrictMaybe Network
   -> VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (StrictMaybe Network)
-> Encode
     ('Closed 'Sparse)
     (VotingProcedures DijkstraEra
      -> OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin
      -> Coin
      -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> StrictMaybe Network
-> Encode ('Closed 'Sparse) (StrictMaybe Network)
forall a.
EncCBOR a =>
Word -> StrictMaybe a -> Encode ('Closed 'Sparse) (StrictMaybe a)
encodeKeyedStrictMaybe Word
15 StrictMaybe Network
dtbrNetworkId
        Encode
  ('Closed 'Sparse)
  (VotingProcedures DijkstraEra
   -> OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin
   -> Coin
   -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (VotingProcedures DijkstraEra)
-> Encode
     ('Closed 'Sparse)
     (OSet (ProposalProcedure DijkstraEra)
      -> StrictMaybe Coin -> Coin -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (VotingProcedures DijkstraEra -> Bool)
-> Encode ('Closed 'Sparse) (VotingProcedures DijkstraEra)
-> Encode ('Closed 'Sparse) (VotingProcedures DijkstraEra)
forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit (Map Voter (Map GovActionId (VotingProcedure DijkstraEra)) -> Bool
forall a. Map Voter a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (Map Voter (Map GovActionId (VotingProcedure DijkstraEra)) -> Bool)
-> (VotingProcedures DijkstraEra
    -> Map Voter (Map GovActionId (VotingProcedure DijkstraEra)))
-> VotingProcedures DijkstraEra
-> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VotingProcedures DijkstraEra
-> Map Voter (Map GovActionId (VotingProcedure DijkstraEra))
forall era.
VotingProcedures era
-> Map Voter (Map GovActionId (VotingProcedure era))
unVotingProcedures) (Word
-> Encode ('Closed 'Dense) (VotingProcedures DijkstraEra)
-> Encode ('Closed 'Sparse) (VotingProcedures DijkstraEra)
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
19 (VotingProcedures DijkstraEra
-> Encode ('Closed 'Dense) (VotingProcedures DijkstraEra)
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To VotingProcedures DijkstraEra
dtbrVotingProcedures))
        Encode
  ('Closed 'Sparse)
  (OSet (ProposalProcedure DijkstraEra)
   -> StrictMaybe Coin -> Coin -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (OSet (ProposalProcedure DijkstraEra))
-> Encode
     ('Closed 'Sparse) (StrictMaybe Coin -> Coin -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (OSet (ProposalProcedure DijkstraEra) -> Bool)
-> Encode ('Closed 'Sparse) (OSet (ProposalProcedure DijkstraEra))
-> Encode ('Closed 'Sparse) (OSet (ProposalProcedure DijkstraEra))
forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit OSet (ProposalProcedure DijkstraEra) -> Bool
forall a. OSet a -> Bool
OSet.null (Word
-> Encode ('Closed 'Dense) (OSet (ProposalProcedure DijkstraEra))
-> Encode ('Closed 'Sparse) (OSet (ProposalProcedure DijkstraEra))
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
20 (OSet (ProposalProcedure DijkstraEra)
-> Encode ('Closed 'Dense) (OSet (ProposalProcedure DijkstraEra))
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To OSet (ProposalProcedure DijkstraEra)
dtbrProposalProcedures))
        Encode
  ('Closed 'Sparse) (StrictMaybe Coin -> Coin -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) (StrictMaybe Coin)
-> Encode ('Closed 'Sparse) (Coin -> DijkstraTxBodyRaw)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word
-> StrictMaybe Coin -> Encode ('Closed 'Sparse) (StrictMaybe Coin)
forall a.
EncCBOR a =>
Word -> StrictMaybe a -> Encode ('Closed 'Sparse) (StrictMaybe a)
encodeKeyedStrictMaybe Word
21 StrictMaybe Coin
dtbrCurrentTreasuryValue
        Encode ('Closed 'Sparse) (Coin -> DijkstraTxBodyRaw)
-> Encode ('Closed 'Sparse) Coin
-> Encode ('Closed 'Sparse) DijkstraTxBodyRaw
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (Coin -> Bool)
-> Encode ('Closed 'Sparse) Coin -> Encode ('Closed 'Sparse) Coin
forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit (Coin -> Coin -> Bool
forall a. Eq a => a -> a -> Bool
== Coin
forall a. Monoid a => a
mempty) (Word
-> Encode ('Closed 'Dense) Coin -> Encode ('Closed 'Sparse) Coin
forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
22 (Encode ('Closed 'Dense) Coin -> Encode ('Closed 'Sparse) Coin)
-> Encode ('Closed 'Dense) Coin -> Encode ('Closed 'Sparse) Coin
forall a b. (a -> b) -> a -> b
$ Coin -> Encode ('Closed 'Dense) Coin
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To Coin
dtbrTreasuryDonation)

instance EncCBOR DijkstraTxBodyRaw where
  encCBOR :: DijkstraTxBodyRaw -> Encoding
encCBOR = Encode ('Closed 'Sparse) DijkstraTxBodyRaw -> Encoding
forall (w :: Wrapped) t. Encode w t -> Encoding
encode (Encode ('Closed 'Sparse) DijkstraTxBodyRaw -> Encoding)
-> (DijkstraTxBodyRaw
    -> Encode ('Closed 'Sparse) DijkstraTxBodyRaw)
-> DijkstraTxBodyRaw
-> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraTxBodyRaw -> Encode ('Closed 'Sparse) DijkstraTxBodyRaw
encodeTxBodyRaw

deriving instance NoThunks (TxBody DijkstraEra)

deriving instance Eq (TxBody DijkstraEra)

deriving newtype instance NFData (TxBody DijkstraEra)

deriving instance Show (TxBody DijkstraEra)

pattern DijkstraTxBody ::
  Set TxIn ->
  Set TxIn ->
  Set TxIn ->
  StrictSeq (Sized (TxOut DijkstraEra)) ->
  StrictMaybe (Sized (TxOut DijkstraEra)) ->
  StrictMaybe Coin ->
  OSet.OSet (TxCert DijkstraEra) ->
  Withdrawals ->
  Coin ->
  ValidityInterval ->
  Set (KeyHash 'Witness) ->
  MultiAsset ->
  StrictMaybe ScriptIntegrityHash ->
  StrictMaybe TxAuxDataHash ->
  StrictMaybe Network ->
  VotingProcedures DijkstraEra ->
  OSet.OSet (ProposalProcedure DijkstraEra) ->
  StrictMaybe Coin ->
  Coin ->
  TxBody DijkstraEra
pattern $mDijkstraTxBody :: forall {r}.
TxBody DijkstraEra
-> (Set TxIn
    -> Set TxIn
    -> Set TxIn
    -> StrictSeq (Sized (TxOut DijkstraEra))
    -> StrictMaybe (Sized (TxOut DijkstraEra))
    -> StrictMaybe Coin
    -> OSet (TxCert DijkstraEra)
    -> Withdrawals
    -> Coin
    -> ValidityInterval
    -> Set (KeyHash 'Witness)
    -> MultiAsset
    -> StrictMaybe ScriptIntegrityHash
    -> StrictMaybe TxAuxDataHash
    -> StrictMaybe Network
    -> VotingProcedures DijkstraEra
    -> OSet (ProposalProcedure DijkstraEra)
    -> StrictMaybe Coin
    -> Coin
    -> r)
-> ((# #) -> r)
-> r
$bDijkstraTxBody :: Set TxIn
-> Set TxIn
-> Set TxIn
-> StrictSeq (Sized (TxOut DijkstraEra))
-> StrictMaybe (Sized (TxOut DijkstraEra))
-> StrictMaybe Coin
-> OSet (TxCert DijkstraEra)
-> Withdrawals
-> Coin
-> ValidityInterval
-> Set (KeyHash 'Witness)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> TxBody DijkstraEra
DijkstraTxBody
  { TxBody DijkstraEra -> Set TxIn
dtbSpendInputs
  , TxBody DijkstraEra -> Set TxIn
dtbCollateralInputs
  , TxBody DijkstraEra -> Set TxIn
dtbReferenceInputs
  , TxBody DijkstraEra -> StrictSeq (Sized (TxOut DijkstraEra))
dtbOutputs
  , TxBody DijkstraEra -> StrictMaybe (Sized (TxOut DijkstraEra))
dtbCollateralReturn
  , TxBody DijkstraEra -> StrictMaybe Coin
dtbTotalCollateral
  , TxBody DijkstraEra -> OSet (TxCert DijkstraEra)
dtbCerts
  , TxBody DijkstraEra -> Withdrawals
dtbWithdrawals
  , TxBody DijkstraEra -> Coin
dtbTxfee
  , TxBody DijkstraEra -> ValidityInterval
dtbVldt
  , TxBody DijkstraEra -> Set (KeyHash 'Witness)
dtbReqSignerHashes
  , TxBody DijkstraEra -> MultiAsset
dtbMint
  , TxBody DijkstraEra -> StrictMaybe ScriptIntegrityHash
dtbScriptIntegrityHash
  , TxBody DijkstraEra -> StrictMaybe TxAuxDataHash
dtbAdHash
  , TxBody DijkstraEra -> StrictMaybe Network
dtbTxNetworkId
  , TxBody DijkstraEra -> VotingProcedures DijkstraEra
dtbVotingProcedures
  , TxBody DijkstraEra -> OSet (ProposalProcedure DijkstraEra)
dtbProposalProcedures
  , TxBody DijkstraEra -> StrictMaybe Coin
dtbCurrentTreasuryValue
  , TxBody DijkstraEra -> Coin
dtbTreasuryDonation
  } <-
  ( getMemoRawType ->
      DijkstraTxBodyRaw
        { dtbrSpendInputs = dtbSpendInputs
        , dtbrCollateralInputs = dtbCollateralInputs
        , dtbrReferenceInputs = dtbReferenceInputs
        , dtbrOutputs = dtbOutputs
        , dtbrCollateralReturn = dtbCollateralReturn
        , dtbrTotalCollateral = dtbTotalCollateral
        , dtbrCerts = dtbCerts
        , dtbrWithdrawals = dtbWithdrawals
        , dtbrFee = dtbTxfee
        , dtbrVldt = dtbVldt
        , dtbrReqSignerHashes = dtbReqSignerHashes
        , dtbrMint = dtbMint
        , dtbrScriptIntegrityHash = dtbScriptIntegrityHash
        , dtbrAuxDataHash = dtbAdHash
        , dtbrNetworkId = dtbTxNetworkId
        , dtbrVotingProcedures = dtbVotingProcedures
        , dtbrProposalProcedures = dtbProposalProcedures
        , dtbrCurrentTreasuryValue = dtbCurrentTreasuryValue
        , dtbrTreasuryDonation = dtbTreasuryDonation
        }
    )
  where
    DijkstraTxBody
      Set TxIn
inputsX
      Set TxIn
collateralX
      Set TxIn
referenceInputsX
      StrictSeq (Sized (TxOut DijkstraEra))
outputsX
      StrictMaybe (Sized (TxOut DijkstraEra))
collateralReturnX
      StrictMaybe Coin
totalCollateralX
      OSet (TxCert DijkstraEra)
certsX
      Withdrawals
withdrawalsX
      Coin
txfeeX
      ValidityInterval
vldtX
      Set (KeyHash 'Witness)
reqSignerHashesX
      MultiAsset
mintX
      StrictMaybe ScriptIntegrityHash
scriptIntegrityHashX
      StrictMaybe TxAuxDataHash
adHashX
      StrictMaybe Network
txnetworkidX
      VotingProcedures DijkstraEra
votingProcedures
      OSet (ProposalProcedure DijkstraEra)
proposalProcedures
      StrictMaybe Coin
currentTreasuryValue
      Coin
treasuryDonation =
        forall era t.
(Era era, EncCBOR (RawType t), Memoized t) =>
RawType t -> t
mkMemoizedEra @DijkstraEra (RawType (TxBody DijkstraEra) -> TxBody DijkstraEra)
-> RawType (TxBody DijkstraEra) -> TxBody DijkstraEra
forall a b. (a -> b) -> a -> b
$
          Set TxIn
-> Set TxIn
-> Set TxIn
-> StrictSeq (Sized (TxOut DijkstraEra))
-> StrictMaybe (Sized (TxOut DijkstraEra))
-> StrictMaybe Coin
-> OSet (TxCert DijkstraEra)
-> Withdrawals
-> Coin
-> ValidityInterval
-> Set (KeyHash 'Witness)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> DijkstraTxBodyRaw
DijkstraTxBodyRaw
            Set TxIn
inputsX
            Set TxIn
collateralX
            Set TxIn
referenceInputsX
            StrictSeq (Sized (TxOut DijkstraEra))
outputsX
            StrictMaybe (Sized (TxOut DijkstraEra))
collateralReturnX
            StrictMaybe Coin
totalCollateralX
            OSet (TxCert DijkstraEra)
certsX
            Withdrawals
withdrawalsX
            Coin
txfeeX
            ValidityInterval
vldtX
            Set (KeyHash 'Witness)
reqSignerHashesX
            MultiAsset
mintX
            StrictMaybe ScriptIntegrityHash
scriptIntegrityHashX
            StrictMaybe TxAuxDataHash
adHashX
            StrictMaybe Network
txnetworkidX
            VotingProcedures DijkstraEra
votingProcedures
            OSet (ProposalProcedure DijkstraEra)
proposalProcedures
            StrictMaybe Coin
currentTreasuryValue
            Coin
treasuryDonation

{-# COMPLETE DijkstraTxBody #-}

instance Memoized (TxBody DijkstraEra) where
  type RawType (TxBody DijkstraEra) = DijkstraTxBodyRaw

instance EncCBOR (TxBody DijkstraEra)

type instance MemoHashIndex DijkstraTxBodyRaw = EraIndependentTxBody

instance HashAnnotated (TxBody DijkstraEra) EraIndependentTxBody where
  hashAnnotated :: TxBody DijkstraEra -> SafeHash EraIndependentTxBody
hashAnnotated = TxBody DijkstraEra -> SafeHash EraIndependentTxBody
TxBody DijkstraEra
-> SafeHash (MemoHashIndex (RawType (TxBody DijkstraEra)))
forall t. Memoized t => t -> SafeHash (MemoHashIndex (RawType t))
getMemoSafeHash

instance DecCBOR (Annotator DijkstraTxBodyRaw) where
  decCBOR :: forall s. Decoder s (Annotator DijkstraTxBodyRaw)
decCBOR = DijkstraTxBodyRaw -> Annotator DijkstraTxBodyRaw
forall a. a -> Annotator a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (DijkstraTxBodyRaw -> Annotator DijkstraTxBodyRaw)
-> Decoder s DijkstraTxBodyRaw
-> Decoder s (Annotator DijkstraTxBodyRaw)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s DijkstraTxBodyRaw
forall s. Decoder s DijkstraTxBodyRaw
forall a s. DecCBOR a => Decoder s a
decCBOR

deriving via Mem DijkstraTxBodyRaw instance DecCBOR (Annotator (TxBody DijkstraEra))

instance EraTxBody DijkstraEra where
  newtype TxBody DijkstraEra = MkDijkstraTxBody (MemoBytes DijkstraTxBodyRaw)
    deriving ((forall x. TxBody DijkstraEra -> Rep (TxBody DijkstraEra) x)
-> (forall x. Rep (TxBody DijkstraEra) x -> TxBody DijkstraEra)
-> Generic (TxBody DijkstraEra)
forall x. Rep (TxBody DijkstraEra) x -> TxBody DijkstraEra
forall x. TxBody DijkstraEra -> Rep (TxBody DijkstraEra) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. TxBody DijkstraEra -> Rep (TxBody DijkstraEra) x
from :: forall x. TxBody DijkstraEra -> Rep (TxBody DijkstraEra) x
$cto :: forall x. Rep (TxBody DijkstraEra) x -> TxBody DijkstraEra
to :: forall x. Rep (TxBody DijkstraEra) x -> TxBody DijkstraEra
Generic, TxBody DijkstraEra -> Int
TxBody DijkstraEra -> ByteString
(TxBody DijkstraEra -> ByteString)
-> (TxBody DijkstraEra -> Int)
-> (forall i. Proxy i -> TxBody DijkstraEra -> SafeHash i)
-> SafeToHash (TxBody DijkstraEra)
forall i. Proxy i -> TxBody DijkstraEra -> SafeHash i
forall t.
(t -> ByteString)
-> (t -> Int)
-> (forall i. Proxy i -> t -> SafeHash i)
-> SafeToHash t
$coriginalBytes :: TxBody DijkstraEra -> ByteString
originalBytes :: TxBody DijkstraEra -> ByteString
$coriginalBytesSize :: TxBody DijkstraEra -> Int
originalBytesSize :: TxBody DijkstraEra -> Int
$cmakeHashWithExplicitProxys :: forall i. Proxy i -> TxBody DijkstraEra -> SafeHash i
makeHashWithExplicitProxys :: forall i. Proxy i -> TxBody DijkstraEra -> SafeHash i
SafeToHash, Typeable (TxBody DijkstraEra)
Typeable (TxBody DijkstraEra) =>
(TxBody DijkstraEra -> Encoding)
-> ((forall t. ToCBOR t => Proxy t -> Size)
    -> Proxy (TxBody DijkstraEra) -> Size)
-> ((forall t. ToCBOR t => Proxy t -> Size)
    -> Proxy [TxBody DijkstraEra] -> Size)
-> ToCBOR (TxBody DijkstraEra)
TxBody DijkstraEra -> Encoding
(forall t. ToCBOR t => Proxy t -> Size)
-> Proxy [TxBody DijkstraEra] -> Size
(forall t. ToCBOR t => Proxy t -> Size)
-> Proxy (TxBody DijkstraEra) -> Size
forall a.
Typeable a =>
(a -> Encoding)
-> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy a -> Size)
-> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy [a] -> Size)
-> ToCBOR a
$ctoCBOR :: TxBody DijkstraEra -> Encoding
toCBOR :: TxBody DijkstraEra -> Encoding
$cencodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size)
-> Proxy (TxBody DijkstraEra) -> Size
encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size)
-> Proxy (TxBody DijkstraEra) -> Size
$cencodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size)
-> Proxy [TxBody DijkstraEra] -> Size
encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size)
-> Proxy [TxBody DijkstraEra] -> Size
ToCBOR)

  mkBasicTxBody :: TxBody DijkstraEra
mkBasicTxBody = forall era t.
(Era era, EncCBOR (RawType t), Memoized t) =>
RawType t -> t
mkMemoizedEra @DijkstraEra RawType (TxBody DijkstraEra)
DijkstraTxBodyRaw
basicDijkstraTxBodyRaw

  inputsTxBodyL :: Lens' (TxBody DijkstraEra) (Set TxIn)
inputsTxBodyL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> Set TxIn
DijkstraTxBodyRaw -> Set TxIn
dtbrSpendInputs ((RawType (TxBody DijkstraEra)
  -> Set TxIn -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (Set TxIn))
-> (RawType (TxBody DijkstraEra)
    -> Set TxIn -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (Set TxIn)
forall a b. (a -> b) -> a -> b
$
    \RawType (TxBody DijkstraEra)
txb Set TxIn
x -> RawType (TxBody DijkstraEra)
txb {dtbrSpendInputs = x}
  {-# INLINE inputsTxBodyL #-}

  outputsTxBodyL :: Lens' (TxBody DijkstraEra) (StrictSeq (TxOut DijkstraEra))
outputsTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra ((Sized (BabbageTxOut DijkstraEra) -> BabbageTxOut DijkstraEra)
-> StrictSeq (Sized (BabbageTxOut DijkstraEra))
-> StrictSeq (BabbageTxOut DijkstraEra)
forall a b. (a -> b) -> StrictSeq a -> StrictSeq b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Sized (BabbageTxOut DijkstraEra) -> BabbageTxOut DijkstraEra
forall a. Sized a -> a
sizedValue (StrictSeq (Sized (BabbageTxOut DijkstraEra))
 -> StrictSeq (BabbageTxOut DijkstraEra))
-> (DijkstraTxBodyRaw
    -> StrictSeq (Sized (BabbageTxOut DijkstraEra)))
-> DijkstraTxBodyRaw
-> StrictSeq (BabbageTxOut DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraTxBodyRaw -> StrictSeq (Sized (TxOut DijkstraEra))
DijkstraTxBodyRaw -> StrictSeq (Sized (BabbageTxOut DijkstraEra))
dtbrOutputs) ((RawType (TxBody DijkstraEra)
  -> StrictSeq (TxOut DijkstraEra) -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (StrictSeq (TxOut DijkstraEra)))
-> (RawType (TxBody DijkstraEra)
    -> StrictSeq (TxOut DijkstraEra) -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (StrictSeq (TxOut DijkstraEra))
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb StrictSeq (TxOut DijkstraEra)
x -> RawType (TxBody DijkstraEra)
txb {dtbrOutputs = mkSized (eraProtVerLow @DijkstraEra) <$> x}
  {-# INLINE outputsTxBodyL #-}

  feeTxBodyL :: Lens' (TxBody DijkstraEra) Coin
feeTxBodyL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> Coin
DijkstraTxBodyRaw -> Coin
dtbrFee (\RawType (TxBody DijkstraEra)
txb Coin
x -> RawType (TxBody DijkstraEra)
txb {dtbrFee = x})
  {-# INLINE feeTxBodyL #-}

  auxDataHashTxBodyL :: Lens' (TxBody DijkstraEra) (StrictMaybe TxAuxDataHash)
auxDataHashTxBodyL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> StrictMaybe TxAuxDataHash
DijkstraTxBodyRaw -> StrictMaybe TxAuxDataHash
dtbrAuxDataHash ((RawType (TxBody DijkstraEra)
  -> StrictMaybe TxAuxDataHash -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (StrictMaybe TxAuxDataHash))
-> (RawType (TxBody DijkstraEra)
    -> StrictMaybe TxAuxDataHash -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (StrictMaybe TxAuxDataHash)
forall a b. (a -> b) -> a -> b
$
    \RawType (TxBody DijkstraEra)
txb StrictMaybe TxAuxDataHash
x -> RawType (TxBody DijkstraEra)
txb {dtbrAuxDataHash = x}
  {-# INLINE auxDataHashTxBodyL #-}

  spendableInputsTxBodyF :: SimpleGetter (TxBody DijkstraEra) (Set TxIn)
spendableInputsTxBodyF = Getting r (TxBody DijkstraEra) (Set TxIn)
forall era.
BabbageEraTxBody era =>
SimpleGetter (TxBody era) (Set TxIn)
SimpleGetter (TxBody DijkstraEra) (Set TxIn)
babbageSpendableInputsTxBodyF
  {-# INLINE spendableInputsTxBodyF #-}

  allInputsTxBodyF :: SimpleGetter (TxBody DijkstraEra) (Set TxIn)
allInputsTxBodyF = Getting r (TxBody DijkstraEra) (Set TxIn)
forall era.
BabbageEraTxBody era =>
SimpleGetter (TxBody era) (Set TxIn)
SimpleGetter (TxBody DijkstraEra) (Set TxIn)
babbageAllInputsTxBodyF
  {-# INLINE allInputsTxBodyF #-}

  withdrawalsTxBodyL :: Lens' (TxBody DijkstraEra) Withdrawals
withdrawalsTxBodyL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> Withdrawals
DijkstraTxBodyRaw -> Withdrawals
dtbrWithdrawals ((RawType (TxBody DijkstraEra)
  -> Withdrawals -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) Withdrawals)
-> (RawType (TxBody DijkstraEra)
    -> Withdrawals -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) Withdrawals
forall a b. (a -> b) -> a -> b
$
    \RawType (TxBody DijkstraEra)
txb Withdrawals
x -> RawType (TxBody DijkstraEra)
txb {dtbrWithdrawals = x}
  {-# INLINE withdrawalsTxBodyL #-}

  certsTxBodyL :: Lens' (TxBody DijkstraEra) (StrictSeq (TxCert DijkstraEra))
certsTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra (OSet (ConwayTxCert DijkstraEra)
-> StrictSeq (ConwayTxCert DijkstraEra)
forall a. OSet a -> StrictSeq a
OSet.toStrictSeq (OSet (ConwayTxCert DijkstraEra)
 -> StrictSeq (ConwayTxCert DijkstraEra))
-> (DijkstraTxBodyRaw -> OSet (ConwayTxCert DijkstraEra))
-> DijkstraTxBodyRaw
-> StrictSeq (ConwayTxCert DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraTxBodyRaw -> OSet (TxCert DijkstraEra)
DijkstraTxBodyRaw -> OSet (ConwayTxCert DijkstraEra)
dtbrCerts) ((RawType (TxBody DijkstraEra)
  -> StrictSeq (TxCert DijkstraEra) -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (StrictSeq (TxCert DijkstraEra)))
-> (RawType (TxBody DijkstraEra)
    -> StrictSeq (TxCert DijkstraEra) -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (StrictSeq (TxCert DijkstraEra))
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb StrictSeq (TxCert DijkstraEra)
x -> RawType (TxBody DijkstraEra)
txb {dtbrCerts = OSet.fromStrictSeq x}
  {-# INLINE certsTxBodyL #-}

  getTotalDepositsTxBody :: PParams DijkstraEra
-> (KeyHash 'StakePool -> Bool) -> TxBody DijkstraEra -> Coin
getTotalDepositsTxBody = PParams DijkstraEra
-> (KeyHash 'StakePool -> Bool) -> TxBody DijkstraEra -> Coin
dijkstraTotalDepositsTxBody

  getTotalRefundsTxBody :: PParams DijkstraEra
-> (Credential 'Staking -> Maybe Coin)
-> (Credential 'DRepRole -> Maybe Coin)
-> TxBody DijkstraEra
-> Coin
getTotalRefundsTxBody PParams DijkstraEra
pp Credential 'Staking -> Maybe Coin
lookupStakingDeposit Credential 'DRepRole -> Maybe Coin
lookupDRepDeposit TxBody DijkstraEra
txBody =
    PParams DijkstraEra
-> (Credential 'Staking -> Maybe Coin)
-> (Credential 'DRepRole -> Maybe Coin)
-> StrictSeq (TxCert DijkstraEra)
-> Coin
forall era (f :: * -> *).
(EraTxCert era, Foldable f) =>
PParams era
-> (Credential 'Staking -> Maybe Coin)
-> (Credential 'DRepRole -> Maybe Coin)
-> f (TxCert era)
-> Coin
forall (f :: * -> *).
Foldable f =>
PParams DijkstraEra
-> (Credential 'Staking -> Maybe Coin)
-> (Credential 'DRepRole -> Maybe Coin)
-> f (TxCert DijkstraEra)
-> Coin
getTotalRefundsTxCerts PParams DijkstraEra
pp Credential 'Staking -> Maybe Coin
lookupStakingDeposit Credential 'DRepRole -> Maybe Coin
lookupDRepDeposit (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting
     (StrictSeq (ConwayTxCert DijkstraEra))
     (TxBody DijkstraEra)
     (StrictSeq (ConwayTxCert DijkstraEra))
-> StrictSeq (ConwayTxCert DijkstraEra)
forall s a. s -> Getting a s a -> a
^. (StrictSeq (TxCert DijkstraEra)
 -> Const
      (StrictSeq (ConwayTxCert DijkstraEra))
      (StrictSeq (TxCert DijkstraEra)))
-> TxBody DijkstraEra
-> Const
     (StrictSeq (ConwayTxCert DijkstraEra)) (TxBody DijkstraEra)
Getting
  (StrictSeq (ConwayTxCert DijkstraEra))
  (TxBody DijkstraEra)
  (StrictSeq (ConwayTxCert DijkstraEra))
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxCert era))
Lens' (TxBody DijkstraEra) (StrictSeq (TxCert DijkstraEra))
certsTxBodyL)

  upgradeTxBody :: EraTxBody (PreviousEra DijkstraEra) =>
TxBody (PreviousEra DijkstraEra)
-> Either (TxBodyUpgradeError DijkstraEra) (TxBody DijkstraEra)
upgradeTxBody ConwayTxBody {OSet (TxCert ConwayEra)
OSet (ProposalProcedure ConwayEra)
Set (KeyHash 'Witness)
Set TxIn
StrictMaybe ScriptIntegrityHash
StrictMaybe TxAuxDataHash
StrictMaybe (Sized (TxOut ConwayEra))
StrictMaybe Coin
StrictMaybe Network
ValidityInterval
Withdrawals
StrictSeq (Sized (TxOut ConwayEra))
VotingProcedures ConwayEra
Coin
MultiAsset
ctbSpendInputs :: Set TxIn
ctbCollateralInputs :: Set TxIn
ctbReferenceInputs :: Set TxIn
ctbOutputs :: StrictSeq (Sized (TxOut ConwayEra))
ctbCollateralReturn :: StrictMaybe (Sized (TxOut ConwayEra))
ctbTotalCollateral :: StrictMaybe Coin
ctbCerts :: OSet (TxCert ConwayEra)
ctbWithdrawals :: Withdrawals
ctbTxfee :: Coin
ctbVldt :: ValidityInterval
ctbReqSignerHashes :: Set (KeyHash 'Witness)
ctbMint :: MultiAsset
ctbScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
ctbAdHash :: StrictMaybe TxAuxDataHash
ctbTxNetworkId :: StrictMaybe Network
ctbVotingProcedures :: VotingProcedures ConwayEra
ctbProposalProcedures :: OSet (ProposalProcedure ConwayEra)
ctbCurrentTreasuryValue :: StrictMaybe Coin
ctbTreasuryDonation :: Coin
ctbSpendInputs :: TxBody ConwayEra -> Set TxIn
ctbCollateralInputs :: TxBody ConwayEra -> Set TxIn
ctbReferenceInputs :: TxBody ConwayEra -> Set TxIn
ctbOutputs :: TxBody ConwayEra -> StrictSeq (Sized (TxOut ConwayEra))
ctbCollateralReturn :: TxBody ConwayEra -> StrictMaybe (Sized (TxOut ConwayEra))
ctbTotalCollateral :: TxBody ConwayEra -> StrictMaybe Coin
ctbCerts :: TxBody ConwayEra -> OSet (TxCert ConwayEra)
ctbWithdrawals :: TxBody ConwayEra -> Withdrawals
ctbTxfee :: TxBody ConwayEra -> Coin
ctbVldt :: TxBody ConwayEra -> ValidityInterval
ctbReqSignerHashes :: TxBody ConwayEra -> Set (KeyHash 'Witness)
ctbMint :: TxBody ConwayEra -> MultiAsset
ctbScriptIntegrityHash :: TxBody ConwayEra -> StrictMaybe ScriptIntegrityHash
ctbAdHash :: TxBody ConwayEra -> StrictMaybe TxAuxDataHash
ctbTxNetworkId :: TxBody ConwayEra -> StrictMaybe Network
ctbVotingProcedures :: TxBody ConwayEra -> VotingProcedures ConwayEra
ctbProposalProcedures :: TxBody ConwayEra -> OSet (ProposalProcedure ConwayEra)
ctbCurrentTreasuryValue :: TxBody ConwayEra -> StrictMaybe Coin
ctbTreasuryDonation :: TxBody ConwayEra -> Coin
..} = do
    TxBody DijkstraEra
-> Either (TxBodyUpgradeError DijkstraEra) (TxBody DijkstraEra)
forall a. a -> Either (TxBodyUpgradeError DijkstraEra) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (TxBody DijkstraEra
 -> Either (TxBodyUpgradeError DijkstraEra) (TxBody DijkstraEra))
-> TxBody DijkstraEra
-> Either (TxBodyUpgradeError DijkstraEra) (TxBody DijkstraEra)
forall a b. (a -> b) -> a -> b
$
      DijkstraTxBody
        { dtbSpendInputs :: Set TxIn
dtbSpendInputs = Set TxIn
ctbSpendInputs
        , dtbOutputs :: StrictSeq (Sized (TxOut DijkstraEra))
dtbOutputs = (TxOut (PreviousEra DijkstraEra) -> BabbageTxOut DijkstraEra)
-> Sized (TxOut (PreviousEra DijkstraEra))
-> Sized (BabbageTxOut DijkstraEra)
forall a b. (a -> b) -> Sized a -> Sized b
unsafeMapSized TxOut (PreviousEra DijkstraEra) -> TxOut DijkstraEra
TxOut (PreviousEra DijkstraEra) -> BabbageTxOut DijkstraEra
forall era.
(EraTxOut era, EraTxOut (PreviousEra era)) =>
TxOut (PreviousEra era) -> TxOut era
upgradeTxOut (Sized (TxOut (PreviousEra DijkstraEra))
 -> Sized (BabbageTxOut DijkstraEra))
-> StrictSeq (Sized (TxOut (PreviousEra DijkstraEra)))
-> StrictSeq (Sized (BabbageTxOut DijkstraEra))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> StrictSeq (Sized (TxOut (PreviousEra DijkstraEra)))
StrictSeq (Sized (TxOut ConwayEra))
ctbOutputs
        , dtbCerts :: OSet (TxCert DijkstraEra)
dtbCerts = (ConwayTxCert ConwayEra -> ConwayTxCert DijkstraEra)
-> OSet (ConwayTxCert ConwayEra) -> OSet (ConwayTxCert DijkstraEra)
forall b a. Ord b => (a -> b) -> OSet a -> OSet b
OSet.mapL ConwayTxCert ConwayEra -> ConwayTxCert DijkstraEra
forall a b. Coercible a b => a -> b
coerce OSet (TxCert ConwayEra)
OSet (ConwayTxCert ConwayEra)
ctbCerts
        , dtbWithdrawals :: Withdrawals
dtbWithdrawals = Withdrawals
ctbWithdrawals
        , dtbTxfee :: Coin
dtbTxfee = Coin
ctbTxfee
        , dtbVldt :: ValidityInterval
dtbVldt = ValidityInterval
ctbVldt
        , dtbAdHash :: StrictMaybe TxAuxDataHash
dtbAdHash = StrictMaybe TxAuxDataHash
ctbAdHash
        , dtbMint :: MultiAsset
dtbMint = MultiAsset
ctbMint
        , dtbCollateralInputs :: Set TxIn
dtbCollateralInputs = Set TxIn
ctbCollateralInputs
        , dtbReqSignerHashes :: Set (KeyHash 'Witness)
dtbReqSignerHashes = Set (KeyHash 'Witness)
ctbReqSignerHashes
        , dtbScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
dtbScriptIntegrityHash = StrictMaybe ScriptIntegrityHash
ctbScriptIntegrityHash
        , dtbTxNetworkId :: StrictMaybe Network
dtbTxNetworkId = StrictMaybe Network
ctbTxNetworkId
        , dtbReferenceInputs :: Set TxIn
dtbReferenceInputs = Set TxIn
ctbReferenceInputs
        , dtbCollateralReturn :: StrictMaybe (Sized (TxOut DijkstraEra))
dtbCollateralReturn = (TxOut (PreviousEra DijkstraEra) -> BabbageTxOut DijkstraEra)
-> Sized (TxOut (PreviousEra DijkstraEra))
-> Sized (BabbageTxOut DijkstraEra)
forall a b. (a -> b) -> Sized a -> Sized b
unsafeMapSized TxOut (PreviousEra DijkstraEra) -> TxOut DijkstraEra
TxOut (PreviousEra DijkstraEra) -> BabbageTxOut DijkstraEra
forall era.
(EraTxOut era, EraTxOut (PreviousEra era)) =>
TxOut (PreviousEra era) -> TxOut era
upgradeTxOut (Sized (TxOut (PreviousEra DijkstraEra))
 -> Sized (BabbageTxOut DijkstraEra))
-> StrictMaybe (Sized (TxOut (PreviousEra DijkstraEra)))
-> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> StrictMaybe (Sized (TxOut (PreviousEra DijkstraEra)))
StrictMaybe (Sized (TxOut ConwayEra))
ctbCollateralReturn
        , dtbTotalCollateral :: StrictMaybe Coin
dtbTotalCollateral = StrictMaybe Coin
ctbTotalCollateral
        , dtbCurrentTreasuryValue :: StrictMaybe Coin
dtbCurrentTreasuryValue = StrictMaybe Coin
ctbCurrentTreasuryValue
        , dtbProposalProcedures :: OSet (ProposalProcedure DijkstraEra)
dtbProposalProcedures = (ProposalProcedure ConwayEra -> ProposalProcedure DijkstraEra)
-> OSet (ProposalProcedure ConwayEra)
-> OSet (ProposalProcedure DijkstraEra)
forall b a. Ord b => (a -> b) -> OSet a -> OSet b
OSet.mapL ProposalProcedure ConwayEra -> ProposalProcedure DijkstraEra
upgradeProposals OSet (ProposalProcedure ConwayEra)
ctbProposalProcedures
        , dtbVotingProcedures :: VotingProcedures DijkstraEra
dtbVotingProcedures = VotingProcedures ConwayEra -> VotingProcedures DijkstraEra
forall a b. Coercible a b => a -> b
coerce VotingProcedures ConwayEra
ctbVotingProcedures
        , dtbTreasuryDonation :: Coin
dtbTreasuryDonation = Coin
ctbTreasuryDonation
        }

upgradeGovAction ::
  Coercible (PParamsHKD StrictMaybe (PreviousEra era)) (PParamsHKD StrictMaybe era) =>
  GovAction (PreviousEra era) -> GovAction era
upgradeGovAction :: forall era.
Coercible
  (PParamsHKD StrictMaybe (PreviousEra era))
  (PParamsHKD StrictMaybe era) =>
GovAction (PreviousEra era) -> GovAction era
upgradeGovAction (ParameterChange StrictMaybe (GovPurposeId 'PParamUpdatePurpose)
x PParamsUpdate (PreviousEra era)
y StrictMaybe ScriptHash
z) = StrictMaybe (GovPurposeId 'PParamUpdatePurpose)
-> PParamsUpdate era -> StrictMaybe ScriptHash -> GovAction era
forall era.
StrictMaybe (GovPurposeId 'PParamUpdatePurpose)
-> PParamsUpdate era -> StrictMaybe ScriptHash -> GovAction era
ParameterChange (StrictMaybe (GovPurposeId 'PParamUpdatePurpose)
-> StrictMaybe (GovPurposeId 'PParamUpdatePurpose)
forall a b. Coercible a b => a -> b
coerce StrictMaybe (GovPurposeId 'PParamUpdatePurpose)
x) (PParamsUpdate (PreviousEra era) -> PParamsUpdate era
forall a b. Coercible a b => a -> b
coerce PParamsUpdate (PreviousEra era)
y) StrictMaybe ScriptHash
z
upgradeGovAction (HardForkInitiation StrictMaybe (GovPurposeId 'HardForkPurpose)
x ProtVer
y) = StrictMaybe (GovPurposeId 'HardForkPurpose)
-> ProtVer -> GovAction era
forall era.
StrictMaybe (GovPurposeId 'HardForkPurpose)
-> ProtVer -> GovAction era
HardForkInitiation (StrictMaybe (GovPurposeId 'HardForkPurpose)
-> StrictMaybe (GovPurposeId 'HardForkPurpose)
forall a b. Coercible a b => a -> b
coerce StrictMaybe (GovPurposeId 'HardForkPurpose)
x) ProtVer
y
upgradeGovAction (TreasuryWithdrawals Map RewardAccount Coin
x StrictMaybe ScriptHash
y) = Map RewardAccount Coin -> StrictMaybe ScriptHash -> GovAction era
forall era.
Map RewardAccount Coin -> StrictMaybe ScriptHash -> GovAction era
TreasuryWithdrawals Map RewardAccount Coin
x StrictMaybe ScriptHash
y
upgradeGovAction (NoConfidence StrictMaybe (GovPurposeId 'CommitteePurpose)
x) = StrictMaybe (GovPurposeId 'CommitteePurpose) -> GovAction era
forall era.
StrictMaybe (GovPurposeId 'CommitteePurpose) -> GovAction era
NoConfidence StrictMaybe (GovPurposeId 'CommitteePurpose)
x
upgradeGovAction (UpdateCommittee StrictMaybe (GovPurposeId 'CommitteePurpose)
x Set (Credential 'ColdCommitteeRole)
y Map (Credential 'ColdCommitteeRole) EpochNo
z UnitInterval
w) = StrictMaybe (GovPurposeId 'CommitteePurpose)
-> Set (Credential 'ColdCommitteeRole)
-> Map (Credential 'ColdCommitteeRole) EpochNo
-> UnitInterval
-> GovAction era
forall era.
StrictMaybe (GovPurposeId 'CommitteePurpose)
-> Set (Credential 'ColdCommitteeRole)
-> Map (Credential 'ColdCommitteeRole) EpochNo
-> UnitInterval
-> GovAction era
UpdateCommittee StrictMaybe (GovPurposeId 'CommitteePurpose)
x Set (Credential 'ColdCommitteeRole)
y Map (Credential 'ColdCommitteeRole) EpochNo
z UnitInterval
w
upgradeGovAction (NewConstitution StrictMaybe (GovPurposeId 'ConstitutionPurpose)
x Constitution (PreviousEra era)
y) = StrictMaybe (GovPurposeId 'ConstitutionPurpose)
-> Constitution era -> GovAction era
forall era.
StrictMaybe (GovPurposeId 'ConstitutionPurpose)
-> Constitution era -> GovAction era
NewConstitution StrictMaybe (GovPurposeId 'ConstitutionPurpose)
x (Constitution (PreviousEra era) -> Constitution era
forall a b. Coercible a b => a -> b
coerce Constitution (PreviousEra era)
y)
upgradeGovAction GovAction (PreviousEra era)
InfoAction = GovAction era
forall era. GovAction era
InfoAction

upgradeProposals :: ProposalProcedure ConwayEra -> ProposalProcedure DijkstraEra
upgradeProposals :: ProposalProcedure ConwayEra -> ProposalProcedure DijkstraEra
upgradeProposals ProposalProcedure {Anchor
GovAction ConwayEra
Coin
RewardAccount
pProcDeposit :: Coin
pProcReturnAddr :: RewardAccount
pProcGovAction :: GovAction ConwayEra
pProcAnchor :: Anchor
pProcDeposit :: forall era. ProposalProcedure era -> Coin
pProcReturnAddr :: forall era. ProposalProcedure era -> RewardAccount
pProcGovAction :: forall era. ProposalProcedure era -> GovAction era
pProcAnchor :: forall era. ProposalProcedure era -> Anchor
..} =
  ProposalProcedure
    { pProcDeposit :: Coin
pProcDeposit = Coin
pProcDeposit
    , pProcReturnAddr :: RewardAccount
pProcReturnAddr = RewardAccount
pProcReturnAddr
    , pProcGovAction :: GovAction DijkstraEra
pProcGovAction = GovAction (PreviousEra DijkstraEra) -> GovAction DijkstraEra
forall era.
Coercible
  (PParamsHKD StrictMaybe (PreviousEra era))
  (PParamsHKD StrictMaybe era) =>
GovAction (PreviousEra era) -> GovAction era
upgradeGovAction GovAction (PreviousEra DijkstraEra)
GovAction ConwayEra
pProcGovAction
    , pProcAnchor :: Anchor
pProcAnchor = Anchor
pProcAnchor
    }

dijkstraTotalDepositsTxBody ::
  PParams DijkstraEra -> (KeyHash StakePool -> Bool) -> TxBody DijkstraEra -> Coin
dijkstraTotalDepositsTxBody :: PParams DijkstraEra
-> (KeyHash 'StakePool -> Bool) -> TxBody DijkstraEra -> Coin
dijkstraTotalDepositsTxBody PParams DijkstraEra
pp KeyHash 'StakePool -> Bool
isPoolRegisted TxBody DijkstraEra
txBody =
  PParams DijkstraEra
-> (KeyHash 'StakePool -> Bool)
-> StrictSeq (TxCert DijkstraEra)
-> Coin
forall era (f :: * -> *).
(EraTxCert era, Foldable f) =>
PParams era
-> (KeyHash 'StakePool -> Bool) -> f (TxCert era) -> Coin
forall (f :: * -> *).
Foldable f =>
PParams DijkstraEra
-> (KeyHash 'StakePool -> Bool) -> f (TxCert DijkstraEra) -> Coin
getTotalDepositsTxCerts PParams DijkstraEra
pp KeyHash 'StakePool -> Bool
isPoolRegisted (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting
     (StrictSeq (ConwayTxCert DijkstraEra))
     (TxBody DijkstraEra)
     (StrictSeq (ConwayTxCert DijkstraEra))
-> StrictSeq (ConwayTxCert DijkstraEra)
forall s a. s -> Getting a s a -> a
^. (StrictSeq (TxCert DijkstraEra)
 -> Const
      (StrictSeq (ConwayTxCert DijkstraEra))
      (StrictSeq (TxCert DijkstraEra)))
-> TxBody DijkstraEra
-> Const
     (StrictSeq (ConwayTxCert DijkstraEra)) (TxBody DijkstraEra)
Getting
  (StrictSeq (ConwayTxCert DijkstraEra))
  (TxBody DijkstraEra)
  (StrictSeq (ConwayTxCert DijkstraEra))
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxCert era))
Lens' (TxBody DijkstraEra) (StrictSeq (TxCert DijkstraEra))
certsTxBodyL)
    Coin -> Coin -> Coin
forall t. Val t => t -> t -> t
<+> PParams DijkstraEra -> TxBody DijkstraEra -> Coin
forall era.
ConwayEraTxBody era =>
PParams era -> TxBody era -> Coin
conwayProposalsDeposits PParams DijkstraEra
pp TxBody DijkstraEra
txBody

instance AllegraEraTxBody DijkstraEra where
  vldtTxBodyL :: Lens' (TxBody DijkstraEra) ValidityInterval
vldtTxBodyL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> ValidityInterval
DijkstraTxBodyRaw -> ValidityInterval
dtbrVldt ((RawType (TxBody DijkstraEra)
  -> ValidityInterval -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) ValidityInterval)
-> (RawType (TxBody DijkstraEra)
    -> ValidityInterval -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) ValidityInterval
forall a b. (a -> b) -> a -> b
$
    \RawType (TxBody DijkstraEra)
txb ValidityInterval
x -> RawType (TxBody DijkstraEra)
txb {dtbrVldt = x}
  {-# INLINE vldtTxBodyL #-}

instance MaryEraTxBody DijkstraEra where
  mintTxBodyL :: Lens' (TxBody DijkstraEra) MultiAsset
mintTxBodyL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> MultiAsset
DijkstraTxBodyRaw -> MultiAsset
dtbrMint ((RawType (TxBody DijkstraEra)
  -> MultiAsset -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) MultiAsset)
-> (RawType (TxBody DijkstraEra)
    -> MultiAsset -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) MultiAsset
forall a b. (a -> b) -> a -> b
$
    \RawType (TxBody DijkstraEra)
txb MultiAsset
x -> RawType (TxBody DijkstraEra)
txb {dtbrMint = x}
  {-# INLINE mintTxBodyL #-}

  mintedTxBodyF :: SimpleGetter (TxBody DijkstraEra) (Set PolicyID)
mintedTxBodyF = (TxBody DijkstraEra -> Set PolicyID)
-> SimpleGetter (TxBody DijkstraEra) (Set PolicyID)
forall s a. (s -> a) -> SimpleGetter s a
to ((TxBody DijkstraEra -> Set PolicyID)
 -> SimpleGetter (TxBody DijkstraEra) (Set PolicyID))
-> (TxBody DijkstraEra -> Set PolicyID)
-> SimpleGetter (TxBody DijkstraEra) (Set PolicyID)
forall a b. (a -> b) -> a -> b
$ \TxBody DijkstraEra
txBody -> MultiAsset -> Set PolicyID
policies (DijkstraTxBodyRaw -> MultiAsset
dtbrMint (TxBody DijkstraEra -> RawType (TxBody DijkstraEra)
forall t. Memoized t => t -> RawType t
getMemoRawType TxBody DijkstraEra
txBody))
  {-# INLINE mintedTxBodyF #-}

instance AlonzoEraTxBody DijkstraEra where
  collateralInputsTxBodyL :: Lens' (TxBody DijkstraEra) (Set TxIn)
collateralInputsTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> Set TxIn
DijkstraTxBodyRaw -> Set TxIn
dtbrCollateralInputs ((RawType (TxBody DijkstraEra)
  -> Set TxIn -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (Set TxIn))
-> (RawType (TxBody DijkstraEra)
    -> Set TxIn -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (Set TxIn)
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb Set TxIn
x -> RawType (TxBody DijkstraEra)
txb {dtbrCollateralInputs = x}
  {-# INLINE collateralInputsTxBodyL #-}

  reqSignerHashesTxBodyL :: Lens' (TxBody DijkstraEra) (Set (KeyHash 'Witness))
reqSignerHashesTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> Set (KeyHash 'Witness)
DijkstraTxBodyRaw -> Set (KeyHash 'Witness)
dtbrReqSignerHashes ((RawType (TxBody DijkstraEra)
  -> Set (KeyHash 'Witness) -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (Set (KeyHash 'Witness)))
-> (RawType (TxBody DijkstraEra)
    -> Set (KeyHash 'Witness) -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (Set (KeyHash 'Witness))
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb Set (KeyHash 'Witness)
x -> RawType (TxBody DijkstraEra)
txb {dtbrReqSignerHashes = x}
  {-# INLINE reqSignerHashesTxBodyL #-}

  scriptIntegrityHashTxBodyL :: Lens' (TxBody DijkstraEra) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> StrictMaybe ScriptIntegrityHash
DijkstraTxBodyRaw -> StrictMaybe ScriptIntegrityHash
dtbrScriptIntegrityHash ((RawType (TxBody DijkstraEra)
  -> StrictMaybe ScriptIntegrityHash -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (StrictMaybe ScriptIntegrityHash))
-> (RawType (TxBody DijkstraEra)
    -> StrictMaybe ScriptIntegrityHash -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (StrictMaybe ScriptIntegrityHash)
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb StrictMaybe ScriptIntegrityHash
x -> RawType (TxBody DijkstraEra)
txb {dtbrScriptIntegrityHash = x}
  {-# INLINE scriptIntegrityHashTxBodyL #-}

  networkIdTxBodyL :: Lens' (TxBody DijkstraEra) (StrictMaybe Network)
networkIdTxBodyL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> StrictMaybe Network
DijkstraTxBodyRaw -> StrictMaybe Network
dtbrNetworkId ((RawType (TxBody DijkstraEra)
  -> StrictMaybe Network -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (StrictMaybe Network))
-> (RawType (TxBody DijkstraEra)
    -> StrictMaybe Network -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (StrictMaybe Network)
forall a b. (a -> b) -> a -> b
$
    \RawType (TxBody DijkstraEra)
txb StrictMaybe Network
x -> RawType (TxBody DijkstraEra)
txb {dtbrNetworkId = x}
  {-# INLINE networkIdTxBodyL #-}

  redeemerPointer :: TxBody DijkstraEra
-> PlutusPurpose AsItem DijkstraEra
-> StrictMaybe (PlutusPurpose AsIx DijkstraEra)
redeemerPointer = TxBody DijkstraEra
-> PlutusPurpose AsItem DijkstraEra
-> StrictMaybe (PlutusPurpose AsIx DijkstraEra)
TxBody DijkstraEra
-> ConwayPlutusPurpose AsItem DijkstraEra
-> StrictMaybe (ConwayPlutusPurpose AsIx DijkstraEra)
forall era.
ConwayEraTxBody era =>
TxBody era
-> ConwayPlutusPurpose AsItem era
-> StrictMaybe (ConwayPlutusPurpose AsIx era)
conwayRedeemerPointer

  redeemerPointerInverse :: TxBody DijkstraEra
-> PlutusPurpose AsIx DijkstraEra
-> StrictMaybe (PlutusPurpose AsIxItem DijkstraEra)
redeemerPointerInverse = TxBody DijkstraEra
-> PlutusPurpose AsIx DijkstraEra
-> StrictMaybe (PlutusPurpose AsIxItem DijkstraEra)
TxBody DijkstraEra
-> ConwayPlutusPurpose AsIx DijkstraEra
-> StrictMaybe (ConwayPlutusPurpose AsIxItem DijkstraEra)
forall era.
ConwayEraTxBody era =>
TxBody era
-> ConwayPlutusPurpose AsIx era
-> StrictMaybe (ConwayPlutusPurpose AsIxItem era)
conwayRedeemerPointerInverse

instance BabbageEraTxBody DijkstraEra where
  sizedOutputsTxBodyL :: Lens' (TxBody DijkstraEra) (StrictSeq (Sized (TxOut DijkstraEra)))
sizedOutputsTxBodyL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra)
-> StrictSeq (Sized (TxOut DijkstraEra))
DijkstraTxBodyRaw -> StrictSeq (Sized (TxOut DijkstraEra))
dtbrOutputs ((RawType (TxBody DijkstraEra)
  -> StrictSeq (Sized (TxOut DijkstraEra))
  -> RawType (TxBody DijkstraEra))
 -> Lens'
      (TxBody DijkstraEra) (StrictSeq (Sized (TxOut DijkstraEra))))
-> (RawType (TxBody DijkstraEra)
    -> StrictSeq (Sized (TxOut DijkstraEra))
    -> RawType (TxBody DijkstraEra))
-> Lens'
     (TxBody DijkstraEra) (StrictSeq (Sized (TxOut DijkstraEra)))
forall a b. (a -> b) -> a -> b
$
    \RawType (TxBody DijkstraEra)
txb StrictSeq (Sized (TxOut DijkstraEra))
x -> RawType (TxBody DijkstraEra)
txb {dtbrOutputs = x}
  {-# INLINE sizedOutputsTxBodyL #-}

  referenceInputsTxBodyL :: Lens' (TxBody DijkstraEra) (Set TxIn)
referenceInputsTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> Set TxIn
DijkstraTxBodyRaw -> Set TxIn
dtbrReferenceInputs ((RawType (TxBody DijkstraEra)
  -> Set TxIn -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (Set TxIn))
-> (RawType (TxBody DijkstraEra)
    -> Set TxIn -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (Set TxIn)
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb Set TxIn
x -> RawType (TxBody DijkstraEra)
txb {dtbrReferenceInputs = x}
  {-# INLINE referenceInputsTxBodyL #-}

  totalCollateralTxBodyL :: Lens' (TxBody DijkstraEra) (StrictMaybe Coin)
totalCollateralTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> StrictMaybe Coin
DijkstraTxBodyRaw -> StrictMaybe Coin
dtbrTotalCollateral ((RawType (TxBody DijkstraEra)
  -> StrictMaybe Coin -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (StrictMaybe Coin))
-> (RawType (TxBody DijkstraEra)
    -> StrictMaybe Coin -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (StrictMaybe Coin)
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb StrictMaybe Coin
x -> RawType (TxBody DijkstraEra)
txb {dtbrTotalCollateral = x}
  {-# INLINE totalCollateralTxBodyL #-}

  collateralReturnTxBodyL :: Lens' (TxBody DijkstraEra) (StrictMaybe (TxOut DijkstraEra))
collateralReturnTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra ((Sized (BabbageTxOut DijkstraEra) -> BabbageTxOut DijkstraEra)
-> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
-> StrictMaybe (BabbageTxOut DijkstraEra)
forall a b. (a -> b) -> StrictMaybe a -> StrictMaybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Sized (BabbageTxOut DijkstraEra) -> BabbageTxOut DijkstraEra
forall a. Sized a -> a
sizedValue (StrictMaybe (Sized (BabbageTxOut DijkstraEra))
 -> StrictMaybe (BabbageTxOut DijkstraEra))
-> (DijkstraTxBodyRaw
    -> StrictMaybe (Sized (BabbageTxOut DijkstraEra)))
-> DijkstraTxBodyRaw
-> StrictMaybe (BabbageTxOut DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraTxBodyRaw -> StrictMaybe (Sized (TxOut DijkstraEra))
DijkstraTxBodyRaw -> StrictMaybe (Sized (BabbageTxOut DijkstraEra))
dtbrCollateralReturn) ((RawType (TxBody DijkstraEra)
  -> StrictMaybe (TxOut DijkstraEra) -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (StrictMaybe (TxOut DijkstraEra)))
-> (RawType (TxBody DijkstraEra)
    -> StrictMaybe (TxOut DijkstraEra) -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (StrictMaybe (TxOut DijkstraEra))
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb StrictMaybe (TxOut DijkstraEra)
x -> RawType (TxBody DijkstraEra)
txb {dtbrCollateralReturn = mkSized (eraProtVerLow @DijkstraEra) <$> x}
  {-# INLINE collateralReturnTxBodyL #-}

  sizedCollateralReturnTxBodyL :: Lens'
  (TxBody DijkstraEra) (StrictMaybe (Sized (TxOut DijkstraEra)))
sizedCollateralReturnTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra)
-> StrictMaybe (Sized (TxOut DijkstraEra))
DijkstraTxBodyRaw -> StrictMaybe (Sized (TxOut DijkstraEra))
dtbrCollateralReturn ((RawType (TxBody DijkstraEra)
  -> StrictMaybe (Sized (TxOut DijkstraEra))
  -> RawType (TxBody DijkstraEra))
 -> Lens'
      (TxBody DijkstraEra) (StrictMaybe (Sized (TxOut DijkstraEra))))
-> (RawType (TxBody DijkstraEra)
    -> StrictMaybe (Sized (TxOut DijkstraEra))
    -> RawType (TxBody DijkstraEra))
-> Lens'
     (TxBody DijkstraEra) (StrictMaybe (Sized (TxOut DijkstraEra)))
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb StrictMaybe (Sized (TxOut DijkstraEra))
x -> RawType (TxBody DijkstraEra)
txb {dtbrCollateralReturn = x}
  {-# INLINE sizedCollateralReturnTxBodyL #-}

  allSizedOutputsTxBodyF :: SimpleGetter
  (TxBody DijkstraEra) (StrictSeq (Sized (TxOut DijkstraEra)))
allSizedOutputsTxBodyF = Getting
  r (TxBody DijkstraEra) (StrictSeq (Sized (TxOut DijkstraEra)))
forall era.
BabbageEraTxBody era =>
SimpleGetter (TxBody era) (StrictSeq (Sized (TxOut era)))
SimpleGetter
  (TxBody DijkstraEra) (StrictSeq (Sized (TxOut DijkstraEra)))
allSizedOutputsBabbageTxBodyF
  {-# INLINE allSizedOutputsTxBodyF #-}

instance ConwayEraTxBody DijkstraEra where
  votingProceduresTxBodyL :: Lens' (TxBody DijkstraEra) (VotingProcedures DijkstraEra)
votingProceduresTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> VotingProcedures DijkstraEra
DijkstraTxBodyRaw -> VotingProcedures DijkstraEra
dtbrVotingProcedures ((RawType (TxBody DijkstraEra)
  -> VotingProcedures DijkstraEra -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (VotingProcedures DijkstraEra))
-> (RawType (TxBody DijkstraEra)
    -> VotingProcedures DijkstraEra -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (VotingProcedures DijkstraEra)
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb VotingProcedures DijkstraEra
x -> RawType (TxBody DijkstraEra)
txb {dtbrVotingProcedures = x}
  {-# INLINE votingProceduresTxBodyL #-}
  proposalProceduresTxBodyL :: Lens' (TxBody DijkstraEra) (OSet (ProposalProcedure DijkstraEra))
proposalProceduresTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra)
-> OSet (ProposalProcedure DijkstraEra)
DijkstraTxBodyRaw -> OSet (ProposalProcedure DijkstraEra)
dtbrProposalProcedures ((RawType (TxBody DijkstraEra)
  -> OSet (ProposalProcedure DijkstraEra)
  -> RawType (TxBody DijkstraEra))
 -> Lens'
      (TxBody DijkstraEra) (OSet (ProposalProcedure DijkstraEra)))
-> (RawType (TxBody DijkstraEra)
    -> OSet (ProposalProcedure DijkstraEra)
    -> RawType (TxBody DijkstraEra))
-> Lens'
     (TxBody DijkstraEra) (OSet (ProposalProcedure DijkstraEra))
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb OSet (ProposalProcedure DijkstraEra)
x -> RawType (TxBody DijkstraEra)
txb {dtbrProposalProcedures = x}
  {-# INLINE proposalProceduresTxBodyL #-}
  currentTreasuryValueTxBodyL :: Lens' (TxBody DijkstraEra) (StrictMaybe Coin)
currentTreasuryValueTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> StrictMaybe Coin
DijkstraTxBodyRaw -> StrictMaybe Coin
dtbrCurrentTreasuryValue ((RawType (TxBody DijkstraEra)
  -> StrictMaybe Coin -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) (StrictMaybe Coin))
-> (RawType (TxBody DijkstraEra)
    -> StrictMaybe Coin -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) (StrictMaybe Coin)
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb StrictMaybe Coin
x -> RawType (TxBody DijkstraEra)
txb {dtbrCurrentTreasuryValue = x}
  {-# INLINE currentTreasuryValueTxBodyL #-}
  treasuryDonationTxBodyL :: Lens' (TxBody DijkstraEra) Coin
treasuryDonationTxBodyL =
    forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @DijkstraEra RawType (TxBody DijkstraEra) -> Coin
DijkstraTxBodyRaw -> Coin
dtbrTreasuryDonation ((RawType (TxBody DijkstraEra)
  -> Coin -> RawType (TxBody DijkstraEra))
 -> Lens' (TxBody DijkstraEra) Coin)
-> (RawType (TxBody DijkstraEra)
    -> Coin -> RawType (TxBody DijkstraEra))
-> Lens' (TxBody DijkstraEra) Coin
forall a b. (a -> b) -> a -> b
$
      \RawType (TxBody DijkstraEra)
txb Coin
x -> RawType (TxBody DijkstraEra)
txb {dtbrTreasuryDonation = x}
  {-# INLINE treasuryDonationTxBodyL #-}