| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Convex.ThreatModel.TxModifier
Synopsis
- data Output = Output {}
- data Input = Input {}
- class IsInputOrOutput t where
- changeAddressOf :: t -> AddressAny -> TxModifier
- changeValueOf :: t -> Value -> TxModifier
- changeDatumOf :: t -> Datum -> TxModifier
- changeRefScriptOf :: t -> ReferenceScript Era -> TxModifier
- addressOf :: t -> AddressAny
- valueOf :: t -> Value
- refScriptOf :: t -> ReferenceScript Era
- type Datum = TxOutDatum CtxTx Era
- type Redeemer = ScriptData
- newtype TxModifier = TxModifier [TxMod]
- data TxMod where
- RemoveInput :: TxIn -> TxMod
- RemoveOutput :: TxIx -> TxMod
- ChangeOutput :: TxIx -> Maybe AddressAny -> Maybe Value -> Maybe Datum -> Maybe (ReferenceScript Era) -> TxMod
- ChangeInput :: TxIn -> Maybe AddressAny -> Maybe Value -> Maybe Datum -> Maybe (ReferenceScript Era) -> TxMod
- ChangeScriptInput :: TxIn -> Maybe Value -> Maybe Datum -> Maybe Redeemer -> Maybe (ReferenceScript Era) -> TxMod
- ChangeValidityRange :: Maybe (TxValidityLowerBound Era) -> Maybe (TxValidityUpperBound Era) -> TxMod
- AddOutput :: AddressAny -> Value -> Datum -> ReferenceScript Era -> TxMod
- AddInput :: AddressAny -> Value -> Datum -> ReferenceScript Era -> Bool -> TxMod
- AddReferenceScriptInput :: ScriptHash -> Value -> Datum -> Redeemer -> TxMod
- AddPlutusScriptInput :: IsPlutusScriptInEra lang => PlutusScript lang -> Value -> Datum -> Redeemer -> ReferenceScript Era -> TxMod
- AddPlutusScriptReferenceInput :: IsPlutusScriptInEra lang => PlutusScript lang -> Value -> Datum -> ReferenceScript Era -> TxMod
- AddSimpleScriptInput :: SimpleScript -> Value -> ReferenceScript Era -> Bool -> TxMod
- AddPlutusScriptMint :: IsPlutusScriptInEra lang => PlutusScript lang -> AssetName -> Quantity -> ScriptData -> TxMod
- RemoveRequiredSigner :: Hash PaymentKey -> TxMod
- ReplaceTx :: Tx Era -> UTxO Era -> TxMod
- txMod :: TxMod -> TxModifier
- applyTxModifier :: Tx Era -> UTxO Era -> TxModifier -> (Tx Era, UTxO Era)
- mkNewTxIn :: UTxO Era -> TxIn
- applyTxMod :: Tx Era -> UTxO Era -> TxMod -> (Tx Era, UTxO Era)
- addOutput :: AddressAny -> Value -> Datum -> ReferenceScript Era -> TxModifier
- removeOutput :: Output -> TxModifier
- addKeyInput :: AddressAny -> Value -> Datum -> ReferenceScript Era -> TxModifier
- addKeyReferenceInput :: AddressAny -> Value -> Datum -> ReferenceScript Era -> TxModifier
- removeInput :: Input -> TxModifier
- addReferenceScriptInput :: ScriptHash -> Value -> Datum -> Redeemer -> TxModifier
- addPlutusScriptInput :: IsPlutusScriptInEra lang => PlutusScript lang -> Value -> Datum -> Redeemer -> ReferenceScript Era -> TxModifier
- addPlutusScriptReferenceInput :: IsPlutusScriptInEra lang => PlutusScript lang -> Value -> Datum -> ReferenceScript Era -> TxModifier
- addSimpleScriptInput :: SimpleScript -> Value -> ReferenceScript Era -> TxModifier
- addSimpleScriptReferenceInput :: SimpleScript -> Value -> ReferenceScript Era -> TxModifier
- addPlutusScriptMint :: IsPlutusScriptInEra lang => PlutusScript lang -> AssetName -> Quantity -> ScriptData -> TxModifier
- alwaysSucceedsMintingPolicy :: PlutusScript PlutusScriptV2
- changeRedeemerOf :: Input -> Redeemer -> TxModifier
- changeValidityRange :: (TxValidityLowerBound Era, TxValidityUpperBound Era) -> TxModifier
- changeValidityLowerBound :: TxValidityLowerBound Era -> TxModifier
- changeValidityUpperBound :: TxValidityUpperBound Era -> TxModifier
- removeRequiredSigner :: Hash PaymentKey -> TxModifier
- replaceTx :: Tx Era -> UTxO Era -> TxModifier
- renderAddressAny :: AddressAny -> Text
- renderDatumAny :: Datum -> Maybe Text
Documentation
A transaction output paired with its index in the transaction.
Instances
| Show Output Source # | |
| IsInputOrOutput Output Source # | |
Defined in Convex.ThreatModel.TxModifier Methods changeAddressOf :: Output -> AddressAny -> TxModifier Source # changeValueOf :: Output -> Value -> TxModifier Source # changeDatumOf :: Output -> Datum -> TxModifier Source # changeRefScriptOf :: Output -> ReferenceScript Era -> TxModifier Source # addressOf :: Output -> AddressAny Source # valueOf :: Output -> Value Source # refScriptOf :: Output -> ReferenceScript Era Source # | |
Instances
| Show Input Source # | |
| IsInputOrOutput Input Source # | |
Defined in Convex.ThreatModel.TxModifier Methods changeAddressOf :: Input -> AddressAny -> TxModifier Source # changeValueOf :: Input -> Value -> TxModifier Source # changeDatumOf :: Input -> Datum -> TxModifier Source # changeRefScriptOf :: Input -> ReferenceScript Era -> TxModifier Source # addressOf :: Input -> AddressAny Source # valueOf :: Input -> Value Source # refScriptOf :: Input -> ReferenceScript Era Source # | |
class IsInputOrOutput t where Source #
Methods
changeAddressOf :: t -> AddressAny -> TxModifier Source #
Change the target address of an input or an output. For outputs this means redirecting an output to a different address, and for inputs it means modifying the UTxO set, changing the owner of the given input.
Note: Does not work for script inputs.
changeValueOf :: t -> Value -> TxModifier Source #
Change the value of an input or an output.
changeDatumOf :: t -> Datum -> TxModifier Source #
Change the datum on an input or an output.
changeRefScriptOf :: t -> ReferenceScript Era -> TxModifier Source #
Change the reference script on an input or an output
addressOf :: t -> AddressAny Source #
Get the address (pubkey or script address) of an input or an output.
valueOf :: t -> Value Source #
Get the value at an input or an output.
refScriptOf :: t -> ReferenceScript Era Source #
Get the reference script at an input or an output.
Instances
| IsInputOrOutput Input Source # | |
Defined in Convex.ThreatModel.TxModifier Methods changeAddressOf :: Input -> AddressAny -> TxModifier Source # changeValueOf :: Input -> Value -> TxModifier Source # changeDatumOf :: Input -> Datum -> TxModifier Source # changeRefScriptOf :: Input -> ReferenceScript Era -> TxModifier Source # addressOf :: Input -> AddressAny Source # valueOf :: Input -> Value Source # refScriptOf :: Input -> ReferenceScript Era Source # | |
| IsInputOrOutput Output Source # | |
Defined in Convex.ThreatModel.TxModifier Methods changeAddressOf :: Output -> AddressAny -> TxModifier Source # changeValueOf :: Output -> Value -> TxModifier Source # changeDatumOf :: Output -> Datum -> TxModifier Source # changeRefScriptOf :: Output -> ReferenceScript Era -> TxModifier Source # addressOf :: Output -> AddressAny Source # valueOf :: Output -> Value Source # refScriptOf :: Output -> ReferenceScript Era Source # | |
type Datum = TxOutDatum CtxTx Era Source #
Type synonym for datums. The CtxTx context means that the actual datum value can be present,
not just the hash.
type Redeemer = ScriptData Source #
Redeemers are plain ScriptData.
newtype TxModifier Source #
The type of transaction modifiers. When combined using the monoid instance, individual modifications are applied in left-to-right order.
Constructors
| TxModifier [TxMod] |
Instances
| Monoid TxModifier Source # | |
Defined in Convex.ThreatModel.TxModifier Methods mempty :: TxModifier # mappend :: TxModifier -> TxModifier -> TxModifier # mconcat :: [TxModifier] -> TxModifier # | |
| Semigroup TxModifier Source # | |
Defined in Convex.ThreatModel.TxModifier Methods (<>) :: TxModifier -> TxModifier -> TxModifier # sconcat :: NonEmpty TxModifier -> TxModifier # stimes :: Integral b => b -> TxModifier -> TxModifier # | |
Constructors
txMod :: TxMod -> TxModifier Source #
addOutput :: AddressAny -> Value -> Datum -> ReferenceScript Era -> TxModifier Source #
Add a new output of any type (public key or script)
removeOutput :: Output -> TxModifier Source #
Remove an output of any type.
addKeyInput :: AddressAny -> Value -> Datum -> ReferenceScript Era -> TxModifier Source #
Add a new public key input.
addKeyReferenceInput :: AddressAny -> Value -> Datum -> ReferenceScript Era -> TxModifier Source #
Add a new public key reference input.
removeInput :: Input -> TxModifier Source #
Remove an input of any type.
addReferenceScriptInput :: ScriptHash -> Value -> Datum -> Redeemer -> TxModifier Source #
Add a reference script input
addPlutusScriptInput :: IsPlutusScriptInEra lang => PlutusScript lang -> Value -> Datum -> Redeemer -> ReferenceScript Era -> TxModifier Source #
Add a plutus V2 script input.
addPlutusScriptReferenceInput :: IsPlutusScriptInEra lang => PlutusScript lang -> Value -> Datum -> ReferenceScript Era -> TxModifier Source #
Add a plutus script reference input.
addSimpleScriptInput :: SimpleScript -> Value -> ReferenceScript Era -> TxModifier Source #
Add a simple script input.
addSimpleScriptReferenceInput :: SimpleScript -> Value -> ReferenceScript Era -> TxModifier Source #
Add a simple script reference input.
addPlutusScriptMint :: IsPlutusScriptInEra lang => PlutusScript lang -> AssetName -> Quantity -> ScriptData -> TxModifier Source #
Smart constructor for minting with a Plutus V2 script
alwaysSucceedsMintingPolicy :: PlutusScript PlutusScriptV2 Source #
Always-succeeds minting policy for testing Takes 2 arguments: redeemer and script context
changeRedeemerOf :: Input -> Redeemer -> TxModifier Source #
Change the redeemer of a script input.
changeValidityRange :: (TxValidityLowerBound Era, TxValidityUpperBound Era) -> TxModifier Source #
Change the validity range of the transaction.
changeValidityLowerBound :: TxValidityLowerBound Era -> TxModifier Source #
Change the validity lower bound of the transaction.
changeValidityUpperBound :: TxValidityUpperBound Era -> TxModifier Source #
Change the validity upper bound of the transaction.
removeRequiredSigner :: Hash PaymentKey -> TxModifier Source #
Remove a required signer from the transaction.
replaceTx :: Tx Era -> UTxO Era -> TxModifier Source #
The most general transaction modifier. Simply replace the original transaction and UTxO set
by the given values. In most cases the modifiers above should be sufficient.
renderAddressAny :: AddressAny -> Text Source #
Render an AddressAny as text (bech32 for Shelley, show for Byron).