| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Cardano.Api.Experimental.Plutus
Synopsis
- data AnyPlutusScript era where
- AnyPlutusScript :: forall era (lang :: Language). (Era era, Typeable lang, PlutusLanguage lang) => PlutusScriptInEra lang era -> AnyPlutusScript era
- decodeAnyPlutusScript :: Era era => ByteString -> AnyPlutusScriptLanguage -> Either DecoderError (AnyPlutusScript era)
- data PlutusScriptInEra (lang :: Language) era where
- PlutusScriptInEra :: forall (lang :: Language) era. PlutusLanguage lang => PlutusRunnable lang -> PlutusScriptInEra lang era
- data AnyPlutusScriptLanguage where
- AnyPlutusScriptLanguage :: forall (lang :: Language). PlutusLanguage lang => SLanguage lang -> AnyPlutusScriptLanguage
- deserialisePlutusScriptInEra :: forall era (lang :: Language). (PlutusLanguage lang, HasTypeProxy (SLanguage lang), Era era) => SLanguage lang -> ByteString -> Either DecoderError (PlutusScriptInEra lang era)
- hashPlutusScriptInEra :: forall era (lang :: Language). IsEra era => PlutusScriptInEra lang (LedgerEra era) -> ScriptHash
- plutusLanguageToText :: AnyPlutusScriptLanguage -> Text
- plutusScriptInEraLanguage :: forall (lang :: Language) era. PlutusLanguage lang => PlutusScriptInEra lang era -> Language
- plutusScriptInEraSLanguage :: forall (lang :: Language) era. PlutusLanguage lang => PlutusScriptInEra lang era -> SLanguage lang
- plutusScriptInEraToScript :: forall (lang :: Language) era. AlonzoEraScript era => PlutusScriptInEra lang era -> Script era
- textToPlutusLanguage :: Text -> Maybe AnyPlutusScriptLanguage
- legacyWitnessToScriptRequirements :: forall era (witnessable :: WitnessableItem) ctx. AlonzoEraOnwards era -> [(Witnessable witnessable (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness ctx era))] -> Either DecoderError (TxScriptWitnessRequirements (ShelleyLedgerEra era))
- legacyWitnessConversion :: forall era (witnessable :: WitnessableItem) ctx. AlonzoEraOnwards era -> [(Witnessable witnessable (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness ctx era))] -> Either DecoderError [(Witnessable witnessable (ShelleyLedgerEra era), AnyWitness (ShelleyLedgerEra era))]
- toPlutusSLanguage :: PlutusScriptVersion lang -> SLanguage (ToLedgerPlutusLanguage lang)
- fromPlutusSLanguage :: forall (lang :: Language). SLanguage lang -> PlutusScriptVersion (FromLedgerPlutusLanguage lang)
- mkLegacyPolicyId :: IsEra era => Script (LedgerEra era) -> PolicyId
- data PlutusScriptWitness (lang :: Language) (purpose :: PlutusScriptPurpose) era where
- PlutusScriptWitness :: forall (lang :: Language) era (purpose :: PlutusScriptPurpose). SLanguage lang -> PlutusScriptOrReferenceInput lang era -> PlutusScriptDatum lang purpose -> ScriptRedeemer -> ExecutionUnits -> PlutusScriptWitness lang purpose era
- data PlutusScriptOrReferenceInput (lang :: Language) era
- = PScript (PlutusScriptInEra lang era)
- | PReferenceScript TxIn
- type ScriptRedeemer = HashableScriptData
- data PlutusScriptPurpose
- data PlutusScriptDatum (lang :: Language) (purpose :: PlutusScriptPurpose) where
- SpendingScriptDatum :: forall (lang :: Language). PlutusScriptDatumF lang 'SpendingScript -> PlutusScriptDatum lang 'SpendingScript
- InlineDatum :: forall (lang :: Language) (purpose :: PlutusScriptPurpose). PlutusScriptDatum lang purpose
- NoScriptDatum :: forall (lang :: Language) (purpose :: PlutusScriptPurpose). PlutusScriptDatum lang purpose
- data NoScriptDatum = NoScriptDatumAllowed
- getPlutusScriptWitnessLanguage :: forall (lang :: Language) (purpose :: PlutusScriptPurpose) era. PlutusScriptWitness lang purpose era -> Language
- data AnyIndexedPlutusScriptWitness era where
- AnyIndexedPlutusScriptWitness :: forall (witnessable :: WitnessableItem) (lang :: Language) (purpose :: PlutusScriptPurpose) era. IndexedPlutusScriptWitness witnessable lang purpose era -> AnyIndexedPlutusScriptWitness era
- data IndexedPlutusScriptWitness (witnessable :: WitnessableItem) (lang :: Language) (purpose :: PlutusScriptPurpose) era where
- IndexedPlutusScriptWitness :: forall era (witnessable :: WitnessableItem) (lang :: Language) (purpose :: PlutusScriptPurpose). AlonzoEraScript era => Witnessable witnessable era -> PlutusPurpose AsIx era -> AnyPlutusScriptWitness lang purpose era -> IndexedPlutusScriptWitness witnessable lang purpose era
- data Witnessable (thing :: WitnessableItem) era where
- WitTxIn :: forall era. AlonzoEraScript era => TxIn -> Witnessable 'TxInItem era
- WitTxCert :: forall era. (EraTxCert era, AlonzoEraScript era) => TxCert era -> StakeCredential -> Witnessable 'CertItem era
- WitMint :: forall era. AlonzoEraScript era => PolicyId -> PolicyAssets -> Witnessable 'MintItem era
- WitWithdrawal :: forall era. AlonzoEraScript era => StakeAddress -> Coin -> Witnessable 'WithdrawalItem era
- WitVote :: forall era. ConwayEraScript era => Voter -> Witnessable 'VoterItem era
- WitProposal :: forall era. (ConwayEraScript era, EraPParams era) => ProposalProcedure era -> Witnessable 'ProposalItem era
- data WitnessableItem
- toPlutusScriptPurpose :: forall (thing :: WitnessableItem) era. Word32 -> Witnessable thing era -> PlutusPurpose AsIx era
- createIndexedPlutusScriptWitnesses :: forall era (witnessable :: WitnessableItem). AlonzoEraScript era => [(Witnessable witnessable era, AnyWitness era)] -> [AnyIndexedPlutusScriptWitness era]
- getAnyWitnessRedeemerPointerMap :: forall era (witnessable :: WitnessableItem). AlonzoEraScript era => [(Witnessable witnessable era, AnyWitness era)] -> Redeemers era
- obtainAlonzoScriptPurposeConstraints :: AlonzoEraOnwards era -> (AlonzoEraScript (ShelleyLedgerEra era) => a) -> a
- constructRedeeemerPointerMap :: AlonzoEraScript era => [AnyIndexedPlutusScriptWitness era] -> Redeemers era
Plutus Script
data AnyPlutusScript era where Source #
Constructors
| AnyPlutusScript :: forall era (lang :: Language). (Era era, Typeable lang, PlutusLanguage lang) => PlutusScriptInEra lang era -> AnyPlutusScript era |
decodeAnyPlutusScript :: Era era => ByteString -> AnyPlutusScriptLanguage -> Either DecoderError (AnyPlutusScript era) Source #
data PlutusScriptInEra (lang :: Language) era where Source #
A Plutus script in a particular era.
Why PlutusRunnable? Mainly for deserialization benefits.
The deserialization of this type looks at the
major protocol version and the script language to determine if
indeed the script is runnable. This is a dramatic improvement over the old api
which essentially read a ByteString and hoped for the best.
Any failures due to malformed/invalid scripts were caught upon transaction
submission or running the script when attempting to predict the necessary execution units.
Where do we get the major protocol version from?
In order to access the major protocol version we pass in an era type parameter which
can be translated to the major protocol version.
Where do we get the script language from?
The serialized version of PlutusRunnable encodes the script language.
See `DecCBOR (PlutusRunnable l)` in cardano-ledger for more details.
Constructors
| PlutusScriptInEra :: forall (lang :: Language) era. PlutusLanguage lang => PlutusRunnable lang -> PlutusScriptInEra lang era |
Instances
data AnyPlutusScriptLanguage where Source #
Constructors
| AnyPlutusScriptLanguage :: forall (lang :: Language). PlutusLanguage lang => SLanguage lang -> AnyPlutusScriptLanguage |
deserialisePlutusScriptInEra :: forall era (lang :: Language). (PlutusLanguage lang, HasTypeProxy (SLanguage lang), Era era) => SLanguage lang -> ByteString -> Either DecoderError (PlutusScriptInEra lang era) Source #
hashPlutusScriptInEra :: forall era (lang :: Language). IsEra era => PlutusScriptInEra lang (LedgerEra era) -> ScriptHash Source #
plutusScriptInEraLanguage :: forall (lang :: Language) era. PlutusLanguage lang => PlutusScriptInEra lang era -> Language Source #
plutusScriptInEraSLanguage :: forall (lang :: Language) era. PlutusLanguage lang => PlutusScriptInEra lang era -> SLanguage lang Source #
plutusScriptInEraToScript :: forall (lang :: Language) era. AlonzoEraScript era => PlutusScriptInEra lang era -> Script era Source #
Legacy Scripts
legacyWitnessToScriptRequirements :: forall era (witnessable :: WitnessableItem) ctx. AlonzoEraOnwards era -> [(Witnessable witnessable (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness ctx era))] -> Either DecoderError (TxScriptWitnessRequirements (ShelleyLedgerEra era)) Source #
legacyWitnessConversion :: forall era (witnessable :: WitnessableItem) ctx. AlonzoEraOnwards era -> [(Witnessable witnessable (ShelleyLedgerEra era), BuildTxWith BuildTx (Witness ctx era))] -> Either DecoderError [(Witnessable witnessable (ShelleyLedgerEra era), AnyWitness (ShelleyLedgerEra era))] Source #
When it comes to using plutus scripts we need to provide the following to the tx:
- The redeemer pointer map
- The set of plutus languages in use
- The set of plutus scripts in use (present in the t)
- The datum map
toPlutusSLanguage :: PlutusScriptVersion lang -> SLanguage (ToLedgerPlutusLanguage lang) Source #
fromPlutusSLanguage :: forall (lang :: Language). SLanguage lang -> PlutusScriptVersion (FromLedgerPlutusLanguage lang) Source #
Plutus Script Witness
data PlutusScriptWitness (lang :: Language) (purpose :: PlutusScriptPurpose) era where Source #
This is a Plutus script witness. It possesses: 1. The plutus script or reference input 2. The script redeemer 3. The execution units 4. Potentially a script datum. See the PlutusScriptDatum type family for more details.
Note that Plutus script witnesses do not exist on their own. They must witness something
and a redeemer pointer must be constucted to point to the thing being witnessed.
See IndexedPlutusScriptWitness for more details.
Constructors
| PlutusScriptWitness :: forall (lang :: Language) era (purpose :: PlutusScriptPurpose). SLanguage lang -> PlutusScriptOrReferenceInput lang era -> PlutusScriptDatum lang purpose -> ScriptRedeemer -> ExecutionUnits -> PlutusScriptWitness lang purpose era |
Instances
| Show (PlutusScriptWitness lang purpose era) Source # | |
| Eq (PlutusScriptWitness 'PlutusV1 'SpendingScript era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptWitness 'PlutusV1 'SpendingScript era -> PlutusScriptWitness 'PlutusV1 'SpendingScript era -> Bool Source # (/=) :: PlutusScriptWitness 'PlutusV1 'SpendingScript era -> PlutusScriptWitness 'PlutusV1 'SpendingScript era -> Bool Source # | |
| Eq (PlutusScriptWitness 'PlutusV2 'SpendingScript era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptWitness 'PlutusV2 'SpendingScript era -> PlutusScriptWitness 'PlutusV2 'SpendingScript era -> Bool Source # (/=) :: PlutusScriptWitness 'PlutusV2 'SpendingScript era -> PlutusScriptWitness 'PlutusV2 'SpendingScript era -> Bool Source # | |
| Eq (PlutusScriptWitness 'PlutusV3 'SpendingScript era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptWitness 'PlutusV3 'SpendingScript era -> PlutusScriptWitness 'PlutusV3 'SpendingScript era -> Bool Source # (/=) :: PlutusScriptWitness 'PlutusV3 'SpendingScript era -> PlutusScriptWitness 'PlutusV3 'SpendingScript era -> Bool Source # | |
| Eq (PlutusScriptWitness 'PlutusV4 'SpendingScript era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptWitness 'PlutusV4 'SpendingScript era -> PlutusScriptWitness 'PlutusV4 'SpendingScript era -> Bool Source # (/=) :: PlutusScriptWitness 'PlutusV4 'SpendingScript era -> PlutusScriptWitness 'PlutusV4 'SpendingScript era -> Bool Source # | |
| Eq (PlutusScriptWitness lang 'CertifyingScript era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptWitness lang 'CertifyingScript era -> PlutusScriptWitness lang 'CertifyingScript era -> Bool Source # (/=) :: PlutusScriptWitness lang 'CertifyingScript era -> PlutusScriptWitness lang 'CertifyingScript era -> Bool Source # | |
| Eq (PlutusScriptWitness lang 'MintingScript era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptWitness lang 'MintingScript era -> PlutusScriptWitness lang 'MintingScript era -> Bool Source # (/=) :: PlutusScriptWitness lang 'MintingScript era -> PlutusScriptWitness lang 'MintingScript era -> Bool Source # | |
| Eq (PlutusScriptWitness lang 'ProposingScript era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptWitness lang 'ProposingScript era -> PlutusScriptWitness lang 'ProposingScript era -> Bool Source # (/=) :: PlutusScriptWitness lang 'ProposingScript era -> PlutusScriptWitness lang 'ProposingScript era -> Bool Source # | |
| Eq (PlutusScriptWitness lang 'VotingScript era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptWitness lang 'VotingScript era -> PlutusScriptWitness lang 'VotingScript era -> Bool Source # (/=) :: PlutusScriptWitness lang 'VotingScript era -> PlutusScriptWitness lang 'VotingScript era -> Bool Source # | |
| Eq (PlutusScriptWitness lang 'WithdrawingScript era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptWitness lang 'WithdrawingScript era -> PlutusScriptWitness lang 'WithdrawingScript era -> Bool Source # (/=) :: PlutusScriptWitness lang 'WithdrawingScript era -> PlutusScriptWitness lang 'WithdrawingScript era -> Bool Source # | |
Constructing a plutus script witness.
data PlutusScriptOrReferenceInput (lang :: Language) era Source #
You can provide the plutus script directly in the transaction or a reference input that points to the script in the UTxO. Using a reference script saves space in your transaction.
Constructors
| PScript (PlutusScriptInEra lang era) | |
| PReferenceScript TxIn |
Instances
| Show (PlutusScriptOrReferenceInput lang era) Source # | |
| Eq (PlutusScriptOrReferenceInput lang era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.Script Methods (==) :: PlutusScriptOrReferenceInput lang era -> PlutusScriptOrReferenceInput lang era -> Bool Source # (/=) :: PlutusScriptOrReferenceInput lang era -> PlutusScriptOrReferenceInput lang era -> Bool Source # | |
type ScriptRedeemer = HashableScriptData Source #
data PlutusScriptPurpose Source #
Every Plutus script has a purpose that indicates what that script is witnessing.
Constructors
| SpendingScript | Witnesses a transaction input |
| MintingScript | Witnesses a minting policy |
| WithdrawingScript | Witnesses a withdrawal |
| CertifyingScript | Witnesses a certificate |
| ProposingScript | Witnesses a proposal |
| VotingScript | Witnesses a vote |
data PlutusScriptDatum (lang :: Language) (purpose :: PlutusScriptPurpose) where Source #
Constructors
| SpendingScriptDatum :: forall (lang :: Language). PlutusScriptDatumF lang 'SpendingScript -> PlutusScriptDatum lang 'SpendingScript | |
| InlineDatum :: forall (lang :: Language) (purpose :: PlutusScriptPurpose). PlutusScriptDatum lang purpose | |
| NoScriptDatum :: forall (lang :: Language) (purpose :: PlutusScriptPurpose). PlutusScriptDatum lang purpose |
Instances
| Show (PlutusScriptDatum lang purpose) Source # | |
| Eq (PlutusScriptDatum lang 'CertifyingScript) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptDatum lang 'CertifyingScript -> PlutusScriptDatum lang 'CertifyingScript -> Bool Source # (/=) :: PlutusScriptDatum lang 'CertifyingScript -> PlutusScriptDatum lang 'CertifyingScript -> Bool Source # | |
| Eq (PlutusScriptDatum lang 'MintingScript) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptDatum lang 'MintingScript -> PlutusScriptDatum lang 'MintingScript -> Bool Source # (/=) :: PlutusScriptDatum lang 'MintingScript -> PlutusScriptDatum lang 'MintingScript -> Bool Source # | |
| Eq (PlutusScriptDatum lang 'ProposingScript) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptDatum lang 'ProposingScript -> PlutusScriptDatum lang 'ProposingScript -> Bool Source # (/=) :: PlutusScriptDatum lang 'ProposingScript -> PlutusScriptDatum lang 'ProposingScript -> Bool Source # | |
| Eq (PlutusScriptDatumF lang 'SpendingScript) => Eq (PlutusScriptDatum lang 'SpendingScript) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptDatum lang 'SpendingScript -> PlutusScriptDatum lang 'SpendingScript -> Bool Source # (/=) :: PlutusScriptDatum lang 'SpendingScript -> PlutusScriptDatum lang 'SpendingScript -> Bool Source # | |
| Eq (PlutusScriptDatum lang 'VotingScript) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptDatum lang 'VotingScript -> PlutusScriptDatum lang 'VotingScript -> Bool Source # (/=) :: PlutusScriptDatum lang 'VotingScript -> PlutusScriptDatum lang 'VotingScript -> Bool Source # | |
| Eq (PlutusScriptDatum lang 'WithdrawingScript) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: PlutusScriptDatum lang 'WithdrawingScript -> PlutusScriptDatum lang 'WithdrawingScript -> Bool Source # (/=) :: PlutusScriptDatum lang 'WithdrawingScript -> PlutusScriptDatum lang 'WithdrawingScript -> Bool Source # | |
data NoScriptDatum Source #
Constructors
| NoScriptDatumAllowed |
Instances
| Show NoScriptDatum Source # | |
| Eq NoScriptDatum Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.ScriptWitness Methods (==) :: NoScriptDatum -> NoScriptDatum -> Bool Source # (/=) :: NoScriptDatum -> NoScriptDatum -> Bool Source # | |
getPlutusScriptWitnessLanguage :: forall (lang :: Language) (purpose :: PlutusScriptPurpose) era. PlutusScriptWitness lang purpose era -> Language Source #
Constuct an indexed plutus script witness.
data AnyIndexedPlutusScriptWitness era where Source #
Constructors
| AnyIndexedPlutusScriptWitness :: forall (witnessable :: WitnessableItem) (lang :: Language) (purpose :: PlutusScriptPurpose) era. IndexedPlutusScriptWitness witnessable lang purpose era -> AnyIndexedPlutusScriptWitness era |
Instances
data IndexedPlutusScriptWitness (witnessable :: WitnessableItem) (lang :: Language) (purpose :: PlutusScriptPurpose) era where Source #
A Plutus script witness along the thing it is witnessing and the index of that thing. E.g transaction input, certificate, withdrawal, minting policy, etc. A Plutus script witness only makes sense in the context of what it is witnessing and the index of the thing it is witnessing.
Constructors
| IndexedPlutusScriptWitness :: forall era (witnessable :: WitnessableItem) (lang :: Language) (purpose :: PlutusScriptPurpose). AlonzoEraScript era => Witnessable witnessable era -> PlutusPurpose AsIx era -> AnyPlutusScriptWitness lang purpose era -> IndexedPlutusScriptWitness witnessable lang purpose era |
Instances
| Show (IndexedPlutusScriptWitness witnessable lang purpose era) Source # | |
Witnessable things.
data Witnessable (thing :: WitnessableItem) era where Source #
These are all of the "things" a plutus script can witness. We include the relevant
type class constraint to avoid boilerplate when creating the PlutusPurpose in the toPlutusScriptPurpose.
Constructors
| WitTxIn :: forall era. AlonzoEraScript era => TxIn -> Witnessable 'TxInItem era | |
| WitTxCert :: forall era. (EraTxCert era, AlonzoEraScript era) => TxCert era -> StakeCredential -> Witnessable 'CertItem era | |
| WitMint :: forall era. AlonzoEraScript era => PolicyId -> PolicyAssets -> Witnessable 'MintItem era | |
| WitWithdrawal :: forall era. AlonzoEraScript era => StakeAddress -> Coin -> Witnessable 'WithdrawalItem era | |
| WitVote :: forall era. ConwayEraScript era => Voter -> Witnessable 'VoterItem era | |
| WitProposal :: forall era. (ConwayEraScript era, EraPParams era) => ProposalProcedure era -> Witnessable 'ProposalItem era |
Instances
| Show (Witnessable thing era) Source # | |
| Eq (Witnessable thing era) Source # | |
Defined in Cardano.Api.Experimental.Plutus.Internal.IndexedPlutusScriptWitness Methods (==) :: Witnessable thing era -> Witnessable thing era -> Bool Source # (/=) :: Witnessable thing era -> Witnessable thing era -> Bool Source # | |
data WitnessableItem Source #
Constructors
| TxInItem | |
| CertItem | |
| MintItem | |
| WithdrawalItem | |
| VoterItem | |
| ProposalItem |
Create the index for a witnessable thing.
toPlutusScriptPurpose :: forall (thing :: WitnessableItem) era. Word32 -> Witnessable thing era -> PlutusPurpose AsIx era Source #
To reduce boilerplate, we reuse the PlutusPurpose type from `cardano-ledger`.
This type is utilized in constructing the redeemer pointers map, which
links the redeemer and execution units with the entity being witnessed.
The map is indexed by the redeemer pointer.
A natural question arises: How do Plutus scripts determine which
execution units and redeemer are paired with them? The ledger constructs a redeemer pointer
for every Plutus script, and this pointer corresponds to the one in the transaction's
redeemer pointers map. For more details, refer to collectPlutusScriptsWithContext
in `cardano-ledger`.
createIndexedPlutusScriptWitnesses :: forall era (witnessable :: WitnessableItem). AlonzoEraScript era => [(Witnessable witnessable era, AnyWitness era)] -> [AnyIndexedPlutusScriptWitness era] Source #
Create a list of indexed plutus script witnesses from anything witnessable that has been witnesseed by a plutus script.
getAnyWitnessRedeemerPointerMap :: forall era (witnessable :: WitnessableItem). AlonzoEraScript era => [(Witnessable witnessable era, AnyWitness era)] -> Redeemers era Source #
The transaction's redeemer pointer map allows the ledger to connect a redeemer and execution unit pairing to the relevant script. The ledger basically reconstructs the indicies (redeemer pointers) of this map can then look up the relevant execution units/redeemer pairing. NB: the redeemer pointer has been renamed to 'PlutusPurpose AsIndex' in the ledger.
obtainAlonzoScriptPurposeConstraints :: AlonzoEraOnwards era -> (AlonzoEraScript (ShelleyLedgerEra era) => a) -> a Source #
Low level functions
constructRedeeemerPointerMap :: AlonzoEraScript era => [AnyIndexedPlutusScriptWitness era] -> Redeemers era Source #