cardano-ledger-api-1.7.0.1: Public API for the cardano ledger codebase
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cardano.Ledger.Api.Tx.Body

Synopsis

Documentation

Building and inspecting transaction outputs

Working with Timelock scripts and Plutus scripts

class (EraTxOut era, EraTxCert era, EraPParams era, HashAnnotated (TxBody era) EraIndependentTxBody (EraCrypto era), DecCBOR (Annotator (TxBody era)), EncCBOR (TxBody era), ToCBOR (TxBody era), NoThunks (TxBody era), NFData (TxBody era), Show (TxBody era), Eq (TxBody era), EqRaw (TxBody era), ToExpr (TxBody era)) => EraTxBody era #

Associated Types

type TxBody era = (r :: Type) | r -> era #

inputsTxBodyL :: EraTxBody era => Lens' (TxBody era) (Set (TxIn (EraCrypto era))) #

outputsTxBodyL :: EraTxBody era => Lens' (TxBody era) (StrictSeq (TxOut era)) #

feeTxBodyL :: EraTxBody era => Lens' (TxBody era) Coin #

withdrawalsTxBodyL :: EraTxBody era => Lens' (TxBody era) (Withdrawals (EraCrypto era)) #

newtype Withdrawals c #

Constructors

Withdrawals 

Fields

Instances

Instances details
Generic (Withdrawals c) 
Instance details

Defined in Cardano.Ledger.Address

Associated Types

type Rep (Withdrawals c) :: Type -> Type Source #

Show (Withdrawals c) 
Instance details

Defined in Cardano.Ledger.Address

Crypto c => DecCBOR (Withdrawals c) 
Instance details

Defined in Cardano.Ledger.Address

Methods

decCBOR :: Decoder s (Withdrawals c)

dropCBOR :: Proxy (Withdrawals c) -> Decoder s ()

label :: Proxy (Withdrawals c) -> Text

Crypto c => EncCBOR (Withdrawals c) 
Instance details

Defined in Cardano.Ledger.Address

Methods

encCBOR :: Withdrawals c -> Encoding

encodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy (Withdrawals c) -> Size

encodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [Withdrawals c] -> Size

NFData (Withdrawals c) 
Instance details

Defined in Cardano.Ledger.Address

Methods

rnf :: Withdrawals c -> () Source #

Eq (Withdrawals c) 
Instance details

Defined in Cardano.Ledger.Address

NoThunks (Withdrawals c) 
Instance details

Defined in Cardano.Ledger.Address

Methods

noThunks :: Context -> Withdrawals c -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> Withdrawals c -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (Withdrawals c) -> String

ToExpr (Withdrawals c) 
Instance details

Defined in Cardano.Ledger.Address

Methods

toExpr :: Withdrawals c -> Expr

listToExpr :: [Withdrawals c] -> Expr

type Rep (Withdrawals c) 
Instance details

Defined in Cardano.Ledger.Address

type Rep (Withdrawals c) = D1 ('MetaData "Withdrawals" "Cardano.Ledger.Address" "cardano-ledger-core-1.9.0.0-1dQ7WLDbkZc8aXLEpNIvOr" 'True) (C1 ('MetaCons "Withdrawals" 'PrefixI 'True) (S1 ('MetaSel ('Just "unWithdrawals") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map (RewardAcnt c) Coin))))

auxDataHashTxBodyL :: EraTxBody era => Lens' (TxBody era) (StrictMaybe (AuxiliaryDataHash (EraCrypto era))) #

data AuxiliaryDataHash c #

Instances

Instances details
Crypto c => ToJSON (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

Generic (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

Associated Types

type Rep (AuxiliaryDataHash c) :: Type -> Type Source #

Show (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

Crypto c => DecCBOR (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

Methods

decCBOR :: Decoder s (AuxiliaryDataHash c)

dropCBOR :: Proxy (AuxiliaryDataHash c) -> Decoder s ()

label :: Proxy (AuxiliaryDataHash c) -> Text

Crypto c => EncCBOR (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

Methods

encCBOR :: AuxiliaryDataHash c -> Encoding

encodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy (AuxiliaryDataHash c) -> Size

encodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [AuxiliaryDataHash c] -> Size

NFData (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

Methods

rnf :: AuxiliaryDataHash c -> () Source #

Eq (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

Ord (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

NoThunks (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

Methods

noThunks :: Context -> AuxiliaryDataHash c -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> AuxiliaryDataHash c -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (AuxiliaryDataHash c) -> String

ToExpr (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

Methods

toExpr :: AuxiliaryDataHash c -> Expr

listToExpr :: [AuxiliaryDataHash c] -> Expr

type Rep (AuxiliaryDataHash c) 
Instance details

Defined in Cardano.Ledger.AuxiliaryData

type Rep (AuxiliaryDataHash c) = D1 ('MetaData "AuxiliaryDataHash" "Cardano.Ledger.AuxiliaryData" "cardano-ledger-core-1.9.0.0-1dQ7WLDbkZc8aXLEpNIvOr" 'True) (C1 ('MetaCons "AuxiliaryDataHash" 'PrefixI 'True) (S1 ('MetaSel ('Just "unsafeAuxiliaryDataHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SafeHash c EraIndependentTxAuxData))))

spendableInputsTxBodyF :: EraTxBody era => SimpleGetter (TxBody era) (Set (TxIn (EraCrypto era))) #

allInputsTxBodyF :: EraTxBody era => SimpleGetter (TxBody era) (Set (TxIn (EraCrypto era))) #

evalBalanceTxBody Source #

Arguments

:: EraUTxO era 
=> PParams era

Current protocol parameters

-> (Credential 'Staking (EraCrypto era) -> Maybe Coin)

Lookup current deposit amount for a registered stake credential delegation. This function must produce valid answer for all of the stake credentials present in any of the DeRegKey delegation certificates in the supplied TxBody. In other words, there is no requirement to know about all of the delegation certificates in the ledger state, just the ones this transaction cares about.

-> (Credential 'DRepRole (EraCrypto era) -> Maybe Coin)

Lookup current deposit amount for a registered DRep credential. This function must produce valid answer for all of the DRep credentials present in any of the UnRegDRep certificates in the supplied TxBody. In other words, there is no requirement to know about all of the DRep registrations in the ledger state, just the ones this transaction cares about.

-> (KeyHash 'StakePool (EraCrypto era) -> Bool)

Check whether a pool with a supplied PoolStakeId is already registered. There is no requirement to answer this question for all stake pool credentials, just for the ones that have the registration certificates included in the supplied TxBody

-> UTxO era

The UTxO relevant to the transaction.

-> TxBody era

The transaction being evaluated for balance.

-> Value era

The difference between what the transaction consumes and what it produces.

Evaluate the difference between the value currently being consumed by a transaction and the total value being produced. This value will be zero for a valid transaction.

In case when full CertState is available then this can be simplified to:

let lookupRefund = lookupDepositDState (certDState dpState)
let isRegPoolId = (`Map.member` psStakePoolParams (certPState dpState))
evalBalanceTxBody pp lookupRefund isRegPoolId utxo txBody

Shelley Era

class (ShelleyEraTxCert era, EraTxBody era) => ShelleyEraTxBody era #

Minimal complete definition

ttlTxBodyL, updateTxBodyL

ttlTxBodyL :: ShelleyEraTxBody era => Lens' (TxBody era) SlotNo #

updateTxBodyL :: ShelleyEraTxBody era => Lens' (TxBody era) (StrictMaybe (Update era)) #

updateTxBodyG :: ShelleyEraTxBody era => SimpleGetter (TxBody era) (StrictMaybe (Update era)) #

certsTxBodyL :: EraTxBody era => Lens' (TxBody era) (StrictSeq (TxCert era)) #

Allegra Era

class ShelleyEraTxBody era => AllegraEraTxBody era #

Minimal complete definition

vldtTxBodyL

data ValidityInterval #

Constructors

ValidityInterval 

Fields

Instances

Instances details
Generic ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Associated Types

type Rep ValidityInterval :: Type -> Type Source #

Show ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

DecCBOR ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

decCBOR :: Decoder s ValidityInterval

dropCBOR :: Proxy ValidityInterval -> Decoder s ()

label :: Proxy ValidityInterval -> Text

EncCBOR ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

encCBOR :: ValidityInterval -> Encoding

encodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy ValidityInterval -> Size

encodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [ValidityInterval] -> Size

NFData ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

rnf :: ValidityInterval -> () Source #

Eq ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Ord ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

NoThunks ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

noThunks :: Context -> ValidityInterval -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> ValidityInterval -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy ValidityInterval -> String

ToExpr ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

toExpr :: ValidityInterval -> Expr

listToExpr :: [ValidityInterval] -> Expr

type Rep ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type Rep ValidityInterval = D1 ('MetaData "ValidityInterval" "Cardano.Ledger.Allegra.Scripts" "cardano-ledger-allegra-1.2.5.0-24qA9GSu3xXIRUxpGuTGnh" 'False) (C1 ('MetaCons "ValidityInterval" 'PrefixI 'True) (S1 ('MetaSel ('Just "invalidBefore") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictMaybe SlotNo)) :*: S1 ('MetaSel ('Just "invalidHereafter") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictMaybe SlotNo))))

invalidBeforeL :: Lens' ValidityInterval (Maybe SlotNo) Source #

Lens to access the invalidBefore field of a ValidityInterval as a 'Maybe SlotNo'.

invalidHereAfterL :: Lens' ValidityInterval (Maybe SlotNo) Source #

Lens to access the invalidHereAfter field of a ValidityInterval as a 'Maybe SlotNo'.

Mary Era

class AllegraEraTxBody era => MaryEraTxBody era #

Minimal complete definition

mintTxBodyL, mintValueTxBodyF, mintedTxBodyF

mintTxBodyL :: MaryEraTxBody era => Lens' (TxBody era) (MultiAsset (EraCrypto era)) #

mintValueTxBodyF :: MaryEraTxBody era => SimpleGetter (TxBody era) (Value era) #

mintedTxBodyF :: MaryEraTxBody era => SimpleGetter (TxBody era) (Set (ScriptHash (EraCrypto era))) #

Alonzo Era

collateralInputsTxBodyL :: AlonzoEraTxBody era => Lens' (TxBody era) (Set (TxIn (EraCrypto era))) #

reqSignerHashesTxBodyL :: AlonzoEraTxBody era => Lens' (TxBody era) (Set (KeyHash 'Witness (EraCrypto era))) #

scriptIntegrityHashTxBodyL :: AlonzoEraTxBody era => Lens' (TxBody era) (StrictMaybe (ScriptIntegrityHash (EraCrypto era))) #

networkIdTxBodyL :: AlonzoEraTxBody era => Lens' (TxBody era) (StrictMaybe Network) #

Babbage Era

sizedOutputsTxBodyL :: BabbageEraTxBody era => Lens' (TxBody era) (StrictSeq (Sized (TxOut era))) #

referenceInputsTxBodyL :: BabbageEraTxBody era => Lens' (TxBody era) (Set (TxIn (EraCrypto era))) #

totalCollateralTxBodyL :: BabbageEraTxBody era => Lens' (TxBody era) (StrictMaybe Coin) #

collateralReturnTxBodyL :: BabbageEraTxBody era => Lens' (TxBody era) (StrictMaybe (TxOut era)) #

sizedCollateralReturnTxBodyL :: BabbageEraTxBody era => Lens' (TxBody era) (StrictMaybe (Sized (TxOut era))) #

allSizedOutputsTxBodyF :: BabbageEraTxBody era => SimpleGetter (TxBody era) (StrictSeq (Sized (TxOut era))) #

Conway Era

class (BabbageEraTxBody era, ConwayEraTxCert era, ConwayEraPParams era) => ConwayEraTxBody era #

Minimal complete definition

currentTreasuryValueTxBodyL, votingProceduresTxBodyL, proposalProceduresTxBodyL, treasuryDonationTxBodyL

Instances

Instances details
Crypto c => ConwayEraTxBody (ConwayEra c) 
Instance details

Defined in Cardano.Ledger.Conway.TxBody