plutus-script-utils-1.1.0.0: Helper/utility functions for writing Plutus scripts.
Safe HaskellNone
LanguageHaskell2010

Plutus.Script.Utils.V1.Contexts

Synopsis

Documentation

spendsOutput :: TxInfo -> TxId -> Integer -> Bool Source #

Check if the pending transaction spends a specific transaction output (identified by the hash of a transaction and an index into that transactions' outputs)

ownCurrencySymbol :: ScriptContext -> CurrencySymbol Source #

The CurrencySymbol of the current validator script.

valueProduced :: TxInfo -> Value Source #

Get the total value of outputs produced by this transaction.

valueSpent :: TxInfo -> Value Source #

Get the total value of inputs spent by this transaction.

pubKeyOutputsAt :: PubKeyHash -> TxInfo -> [Value] Source #

Get the values paid to a public key address by a pending transaction.

valueLockedBy :: TxInfo -> ValidatorHash -> Value Source #

Get the total value locked by the given validator in this transaction.

scriptOutputsAt :: ValidatorHash -> TxInfo -> [(DatumHash, Value)] Source #

Get the list of TxOut outputs of the pending transaction at a given script address.

ownHash :: ScriptContext -> ValidatorHash Source #

Get the hash of the validator script that is currently being validated.

ownHashes :: ScriptContext -> (ValidatorHash, DatumHash) Source #

Get the validator and datum hashes of the output that is curently being validated

pubKeyOutput :: TxOut -> Maybe PubKeyHash Source #

Get the public key hash that locks the transaction output, if any.

txSignedBy :: TxInfo -> PubKeyHash -> Bool Source #

Check if a transaction was signed by the given public key.

findContinuingOutputs :: ScriptContext -> [Integer] Source #

Finds all the outputs that pay to the same script address that we are currently spending from, if any.

findDatumHash :: Datum -> TxInfo -> Maybe DatumHash Source #

Find the hash of a datum, if it is part of the pending transaction's hashes

findDatum :: DatumHash -> TxInfo -> Maybe Datum Source #

Find the data corresponding to a data hash, if there is one

findOwnInput :: ScriptContext -> Maybe TxInInfo Source #

Find the input currently being validated.

data TxInInfo Source #

An input of a pending transaction.

Instances

Instances details
Eq TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Show TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Generic TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Associated Types

type Rep TxInInfo :: Type -> Type Source #

Pretty TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Methods

pretty :: TxInInfo -> Doc ann Source #

prettyList :: [TxInInfo] -> Doc ann Source #

UnsafeFromData TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

FromData TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

ToData TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Eq TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Methods

(==) :: TxInInfo -> TxInInfo -> Bool Source #

Lift DefaultUni TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Typeable DefaultUni TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

type Rep TxInInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

type Rep TxInInfo = D1 ('MetaData "TxInInfo" "Plutus.V1.Ledger.Contexts" "plutus-ledger-api-1.0.0.1-EUjexvcAhXiGIaLon6olWb" 'False) (C1 ('MetaCons "TxInInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "txInInfoOutRef") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxOutRef) :*: S1 ('MetaSel ('Just "txInInfoResolved") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxOut)))

data ScriptPurpose Source #

Purpose of the script that is currently running

Instances

Instances details
Eq ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Show ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Generic ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Associated Types

type Rep ScriptPurpose :: Type -> Type Source #

Pretty ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

UnsafeFromData ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

FromData ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

ToData ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Eq ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Lift DefaultUni ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Typeable DefaultUni ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

type Rep ScriptPurpose 
Instance details

Defined in Plutus.V1.Ledger.Contexts

data TxInfo Source #

A pending transaction. This is the view as seen by validator scripts, so some details are stripped out.

Constructors

TxInfo 

Fields

Instances

Instances details
Eq TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Show TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Generic TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Associated Types

type Rep TxInfo :: Type -> Type Source #

Pretty TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Methods

pretty :: TxInfo -> Doc ann Source #

prettyList :: [TxInfo] -> Doc ann Source #

UnsafeFromData TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

FromData TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

ToData TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Eq TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Methods

(==) :: TxInfo -> TxInfo -> Bool Source #

Lift DefaultUni TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Typeable DefaultUni TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

type Rep TxInfo 
Instance details

Defined in Plutus.V1.Ledger.Contexts

data ScriptContext Source #

Instances

Instances details
Eq ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Show ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Generic ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Associated Types

type Rep ScriptContext :: Type -> Type Source #

Pretty ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

UnsafeFromData ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

FromData ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

ToData ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Eq ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

IsScriptContext ScriptContext Source # 
Instance details

Defined in Plutus.Script.Utils.Typed

Lift DefaultUni ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

Typeable DefaultUni ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

type Rep ScriptContext 
Instance details

Defined in Plutus.V1.Ledger.Contexts

type Rep ScriptContext = D1 ('MetaData "ScriptContext" "Plutus.V1.Ledger.Contexts" "plutus-ledger-api-1.0.0.1-EUjexvcAhXiGIaLon6olWb" 'False) (C1 ('MetaCons "ScriptContext" 'PrefixI 'True) (S1 ('MetaSel ('Just "scriptContextTxInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxInfo) :*: S1 ('MetaSel ('Just "scriptContextPurpose") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ScriptPurpose)))

newtype TxId Source #

A transaction ID, using a SHA256 hash as the transaction id.

Constructors

TxId 

Instances

Instances details
Eq TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

(==) :: TxId -> TxId -> Bool Source #

(/=) :: TxId -> TxId -> Bool Source #

Ord TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Show TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

IsString TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Generic TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Associated Types

type Rep TxId :: Type -> Type Source #

Methods

from :: TxId -> Rep TxId x Source #

to :: Rep TxId x -> TxId Source #

NFData TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

rnf :: TxId -> () Source #

Pretty TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

pretty :: TxId -> Doc ann Source #

prettyList :: [TxId] -> Doc ann Source #

UnsafeFromData TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

FromData TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

ToData TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Ord TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Eq TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

(==) :: TxId -> TxId -> Bool Source #

Lift DefaultUni TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

Typeable DefaultUni TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

type Rep TxId 
Instance details

Defined in Plutus.V1.Ledger.Tx

type Rep TxId = D1 ('MetaData "TxId" "Plutus.V1.Ledger.Tx" "plutus-ledger-api-1.0.0.1-EUjexvcAhXiGIaLon6olWb" 'True) (C1 ('MetaCons "TxId" 'PrefixI 'True) (S1 ('MetaSel ('Just "getTxId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinByteString)))

data TxOutRef Source #

A reference to a transaction output. This is a pair of a transaction reference, and an index indicating which of the outputs of that transaction we are referring to.

Constructors

TxOutRef 

Fields

Instances

Instances details
Eq TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

Ord TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

Show TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

Generic TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

Associated Types

type Rep TxOutRef :: Type -> Type Source #

NFData TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

rnf :: TxOutRef -> () Source #

Pretty TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

pretty :: TxOutRef -> Doc ann Source #

prettyList :: [TxOutRef] -> Doc ann Source #

UnsafeFromData TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

FromData TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

ToData TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

Eq TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

(==) :: TxOutRef -> TxOutRef -> Bool Source #

Lift DefaultUni TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

Typeable DefaultUni TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

type Rep TxOutRef 
Instance details

Defined in Plutus.V1.Ledger.Tx

type Rep TxOutRef = D1 ('MetaData "TxOutRef" "Plutus.V1.Ledger.Tx" "plutus-ledger-api-1.0.0.1-EUjexvcAhXiGIaLon6olWb" 'False) (C1 ('MetaCons "TxOutRef" 'PrefixI 'True) (S1 ('MetaSel ('Just "txOutRefId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxId) :*: S1 ('MetaSel ('Just "txOutRefIdx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))

data TxOut Source #

A transaction output, consisting of a target address, a value, and optionally a datum hash.

Instances

Instances details
Eq TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

(==) :: TxOut -> TxOut -> Bool Source #

(/=) :: TxOut -> TxOut -> Bool Source #

Show TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

Generic TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

Associated Types

type Rep TxOut :: Type -> Type Source #

Methods

from :: TxOut -> Rep TxOut x Source #

to :: Rep TxOut x -> TxOut Source #

NFData TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

rnf :: TxOut -> () Source #

Pretty TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

pretty :: TxOut -> Doc ann Source #

prettyList :: [TxOut] -> Doc ann Source #

UnsafeFromData TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

FromData TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

ToData TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

Eq TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

Methods

(==) :: TxOut -> TxOut -> Bool Source #

Lift DefaultUni TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

Typeable DefaultUni TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

type Rep TxOut 
Instance details

Defined in Plutus.V1.Ledger.Tx

type Rep TxOut = D1 ('MetaData "TxOut" "Plutus.V1.Ledger.Tx" "plutus-ledger-api-1.0.0.1-EUjexvcAhXiGIaLon6olWb" 'False) (C1 ('MetaCons "TxOut" 'PrefixI 'True) (S1 ('MetaSel ('Just "txOutAddress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Address) :*: (S1 ('MetaSel ('Just "txOutValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Value) :*: S1 ('MetaSel ('Just "txOutDatumHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DatumHash)))))

outputsAt :: Address -> TxInfo -> [Value] Source #

Get the values paid to a public key address by a pending transaction.

valuePaidTo :: TxInfo -> Address -> Value Source #

Get the total value paid to a public key address by a pending transaction.