cooked-validators
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cooked.Skeleton.Redeemer

Description

This module exposes the notion of redeemers used whenever a script in invoked in a TxSkel.

Synopsis

Type constraints

type RedeemerConstrs redeemer = (ToData redeemer, FromData redeemer, Show redeemer, PrettyCooked redeemer, Eq redeemer, Typeable redeemer) Source #

These are the constraints that must be satisfied by the inner content of a redeemer, that is the actual data that will be passed to the script as its redeemer during during validation

Data types

data TxSkelRedeemer where Source #

A bundle around a redeemer which allows to provide a reference input in which the script associated with the redeemer can be found

Constructors

TxSkelRedeemer 

Fields

Instances

Instances details
Monoid DoubleSatDelta Source # 
Instance details

Defined in Cooked.Attack.DoubleSat

Semigroup DoubleSatDelta Source # 
Instance details

Defined in Cooked.Attack.DoubleSat

Show TxSkelRedeemer Source # 
Instance details

Defined in Cooked.Skeleton.Redeemer

PrettyCookedList TxSkelRedeemer Source # 
Instance details

Defined in Cooked.Pretty.Skeleton

Eq TxSkelRedeemer Source # 
Instance details

Defined in Cooked.Skeleton.Redeemer

Ord TxSkelRedeemer Source # 
Instance details

Defined in Cooked.Skeleton.Redeemer

Optics

txSkelRedeemerMReferenceInputL :: Lens' TxSkelRedeemer (Maybe TxOutRef) Source #

Focuses on the possible reference input from a redeemer

txSkelRedeemerReferenceInputAT :: AffineTraversal' TxSkelRedeemer TxOutRef Source #

Focuses on the reference input form a redeemer

txSkelRedeemerAutoFillL :: Lens' TxSkelRedeemer Bool Source #

Sets or gets the autofill property from a redeemer

txSkelRedeemerTypedAT :: (RedeemerConstrs a, RedeemerConstrs b) => AffineTraversal TxSkelRedeemer TxSkelRedeemer a b Source #

Extracts, or sets, the typed redeemer of a TxSkelRedeemer. This is attempted in two ways: first, we try to simply cast the content, and then, if it fails, we serialise the content and then attempt to deserialise it to the right type. This second case is specifically useful when the current content is an BuiltinData itself directly, but it can also be used in the cornercase when both types have compatible serialized representation.

txSkelRedeemerBuiltinDataL :: Lens' TxSkelRedeemer BuiltinData Source #

Extracts, or sets, the redeemer content as an BuiltinData

Smart constructors

someTxSkelRedeemer :: RedeemerConstrs redeemer => redeemer -> TxSkelRedeemer Source #

Creates a TxSkelRedeemer from an inner content with no reference input

someTxSkelRedeemerNoAutoFill :: RedeemerConstrs redeemer => redeemer -> TxSkelRedeemer Source #

Creates a TxSkelRedeemer from an inner content with no reference input, while not allowing it to be automatically assigned

emptyTxSkelRedeemer :: TxSkelRedeemer Source #

Creates a TxSkelRedeemer without an inner content nor a reference input

emptyTxSkelRedeemerNoAutoFill :: TxSkelRedeemer Source #

Creates a TxSkelRedeemer with no inner content and no reference input, while dissallowing it to be automatically assinged

Utilities

fillReferenceInput :: TxOutRef -> TxSkelRedeemer -> TxSkelRedeemer Source #

Attaches a reference input to this TxSkelRedeemer when none is already attached. Is meant to be used by the automated attachment process during transaction generation.