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

Plutus.Script.Utils.Scripts

Description

This module contains functions related to versioning scripts and BuiltinData, or more specifially, Datums and Redeemers. These functions do not depend on a particular version of Plutus.

Synopsis

Plutus language versioning

data Language Source #

Non-Native Script language. This is an Enumerated type. This is expected to be an open type. We will add new Constuctors to this type as additional Non-Native scripting language as are added. We use an enumerated type for two reasons. 1) We can write total functions by case analysis over the constructors 2) We will use DataKinds to make some datatypes indexed by Language For now, the only Non-Native Scriting language is Plutus We might add new languages in the futures.

Note that the the serialization of Language depends on the ordering.

Constructors

PlutusV1 
PlutusV2 

Instances

Instances details
Bounded Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Enum Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Eq Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Ord Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Show Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Ix Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Generic Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Associated Types

type Rep Language :: Type -> Type Source #

NFData Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Methods

rnf :: Language -> () Source #

FromCBOR Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

ToCBOR Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Methods

toCBOR :: Language -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy Language -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Language] -> Size Source #

NoThunks Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

Pretty Language Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

Methods

pretty :: Language -> Doc ann Source #

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

Serialise Language Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

type Rep Language 
Instance details

Defined in Cardano.Ledger.Alonzo.Language

type Rep Language = D1 ('MetaData "Language" "Cardano.Ledger.Alonzo.Language" "cardano-ledger-alonzo-0.1.0.0-NThdmINrvW30AlLdZjZ0g" 'False) (C1 ('MetaCons "PlutusV1" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PlutusV2" 'PrefixI 'False) (U1 :: Type -> Type))

data Versioned script Source #

A script of some kind with its Plutus language version

Constructors

Versioned 

Fields

Instances

Instances details
Functor Versioned Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

Methods

fmap :: (a -> b) -> Versioned a -> Versioned b Source #

(<$) :: a -> Versioned b -> Versioned a Source #

Eq script => Eq (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

Methods

(==) :: Versioned script -> Versioned script -> Bool Source #

(/=) :: Versioned script -> Versioned script -> Bool Source #

Ord script => Ord (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

Methods

compare :: Versioned script -> Versioned script -> Ordering Source #

(<) :: Versioned script -> Versioned script -> Bool Source #

(<=) :: Versioned script -> Versioned script -> Bool Source #

(>) :: Versioned script -> Versioned script -> Bool Source #

(>=) :: Versioned script -> Versioned script -> Bool Source #

max :: Versioned script -> Versioned script -> Versioned script Source #

min :: Versioned script -> Versioned script -> Versioned script Source #

Show script => Show (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

Methods

showsPrec :: Int -> Versioned script -> ShowS Source #

show :: Versioned script -> String Source #

showList :: [Versioned script] -> ShowS Source #

Generic (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

Associated Types

type Rep (Versioned script) :: Type -> Type Source #

Methods

from :: Versioned script -> Rep (Versioned script) x Source #

to :: Rep (Versioned script) x -> Versioned script Source #

NFData script => NFData (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

Methods

rnf :: Versioned script -> () Source #

ToJSON script => ToJSON (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

FromJSON script => FromJSON (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

Pretty script => Pretty (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

Methods

pretty :: Versioned script -> Doc ann Source #

prettyList :: [Versioned script] -> Doc ann Source #

Serialise script => Serialise (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

type Rep (Versioned script) Source # 
Instance details

Defined in Plutus.Script.Utils.Scripts

type Rep (Versioned script) = D1 ('MetaData "Versioned" "Plutus.Script.Utils.Scripts" "plutus-script-utils-1.1.0.0-IFwyzE6CIQ44doxQRh05YH" 'False) (C1 ('MetaCons "Versioned" 'PrefixI 'True) (S1 ('MetaSel ('Just "unversioned") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 script) :*: S1 ('MetaSel ('Just "version") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Language)))

Script hashing

Script utilities

scriptCurrencySymbol :: Versioned MintingPolicy -> CurrencySymbol Source #

The CurrencySymbol of a MintingPolicy.

Script data hashes

data Datum Source #

Datum is a wrapper around Data values which are used as data in transaction outputs.

Instances

Instances details
Eq Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

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

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

Ord Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Show Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Generic Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Associated Types

type Rep Datum :: Type -> Type Source #

Methods

from :: Datum -> Rep Datum x Source #

to :: Rep Datum x -> Datum Source #

NFData Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

rnf :: Datum -> () Source #

Pretty Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

pretty :: Datum -> Doc ann Source #

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

UnsafeFromData Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

FromData Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

ToData Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Eq Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

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

Lift DefaultUni Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Typeable DefaultUni Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

type Rep Datum 
Instance details

Defined in Plutus.V1.Ledger.Scripts

type Rep Datum = D1 ('MetaData "Datum" "Plutus.V1.Ledger.Scripts" "plutus-ledger-api-1.0.0.1-EUjexvcAhXiGIaLon6olWb" 'True) (C1 ('MetaCons "Datum" 'PrefixI 'True) (S1 ('MetaSel ('Just "getDatum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData)))

data DatumHash Source #

Script runtime representation of a Digest SHA256.

Instances

Instances details
Eq DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Ord DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Show DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

IsString DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Generic DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Associated Types

type Rep DatumHash :: Type -> Type Source #

NFData DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

rnf :: DatumHash -> () Source #

Pretty DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

pretty :: DatumHash -> Doc ann Source #

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

UnsafeFromData DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

FromData DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

ToData DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Ord DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Eq DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Lift DefaultUni DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Typeable DefaultUni DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

type Rep DatumHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

type Rep DatumHash = D1 ('MetaData "DatumHash" "Plutus.V1.Ledger.Scripts" "plutus-ledger-api-1.0.0.1-EUjexvcAhXiGIaLon6olWb" 'True) (C1 ('MetaCons "DatumHash" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinByteString)))

data Redeemer Source #

Redeemer is a wrapper around Data values that are used as redeemers in transaction inputs.

Instances

Instances details
Eq Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Ord Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Show Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Generic Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Associated Types

type Rep Redeemer :: Type -> Type Source #

NFData Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

rnf :: Redeemer -> () Source #

Pretty Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

pretty :: Redeemer -> Doc ann Source #

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

UnsafeFromData Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

FromData Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

ToData Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Eq Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

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

Lift DefaultUni Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Typeable DefaultUni Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

type Rep Redeemer 
Instance details

Defined in Plutus.V1.Ledger.Scripts

type Rep Redeemer = D1 ('MetaData "Redeemer" "Plutus.V1.Ledger.Scripts" "plutus-ledger-api-1.0.0.1-EUjexvcAhXiGIaLon6olWb" 'True) (C1 ('MetaCons "Redeemer" 'PrefixI 'True) (S1 ('MetaSel ('Just "getRedeemer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData)))

data RedeemerHash Source #

Script runtime representation of a Digest SHA256.

Instances

Instances details
Eq RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Ord RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Show RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

IsString RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Generic RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Associated Types

type Rep RedeemerHash :: Type -> Type Source #

NFData RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Methods

rnf :: RedeemerHash -> () Source #

Pretty RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

UnsafeFromData RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

FromData RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

ToData RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Ord RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Eq RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Lift DefaultUni RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

Typeable DefaultUni RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

type Rep RedeemerHash 
Instance details

Defined in Plutus.V1.Ledger.Scripts

type Rep RedeemerHash = D1 ('MetaData "RedeemerHash" "Plutus.V1.Ledger.Scripts" "plutus-ledger-api-1.0.0.1-EUjexvcAhXiGIaLon6olWb" 'True) (C1 ('MetaCons "RedeemerHash" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinByteString)))

datumHash :: Datum -> DatumHash Source #

Hash a 'PV1.Datum builtin data.

Orphan instances