liqwid-plutarch-extra-3.21.1: A collection of Plutarch extras from Liqwid Labs
Maintainer[email protected]
Safe HaskellSafe-Inferred
LanguageHaskell2010

Plutarch.Extra.MultiSig

Description

A basic N of M multisignature validation function.

Synopsis

Documentation

validatedByMultisig :: forall (s :: S). MultiSig -> Term s (PMultiSigContext :--> PBool) Source #

Check if a Haskell-level MultiSig signs this transaction.

Since: 3.2.0

pvalidatedByMultisig :: forall (s :: S). Term s (PMultiSig :--> (PMultiSigContext :--> PBool)) Source #

Check if a Plutarch-level MultiSig signs this transaction.

Since: 3.2.0

newtype PMultiSig (s :: S) Source #

Plutarch-level MultiSig

Since: 0.1.0

Constructors

PMultiSig 

Fields

Instances

Instances details
PIsData PMultiSig Source #

Since: 0.1.0

Instance details

Defined in Plutarch.Extra.MultiSig

Methods

pfromDataImpl :: forall (s :: S). Term s (PAsData PMultiSig) -> Term s PMultiSig Source #

pdataImpl :: forall (s :: S). Term s PMultiSig -> Term s PData Source #

PDataFields PMultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

Associated Types

type PFields PMultiSig :: [PLabeledType] Source #

Methods

ptoFields :: forall (s :: S). Term s PMultiSig -> Term s (PDataRecord (PFields PMultiSig)) Source #

DerivePlutusType PMultiSig Source #

Since: 1.4.0

Instance details

Defined in Plutarch.Extra.MultiSig

Associated Types

type DPTStrat PMultiSig Source #

PlutusType PMultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

Methods

pcon' :: forall (s :: S). PMultiSig s -> Term s (PInner PMultiSig) Source #

pmatch' :: forall (s :: S) (b :: PType). Term s (PInner PMultiSig) -> (PMultiSig s -> Term s b) -> Term s b Source #

PUnsafeLiftDecl PMultiSig Source #

Since: 0.1.0

Instance details

Defined in Plutarch.Extra.MultiSig

Associated Types

type PLifted PMultiSig = (r :: Type) Source #

PTryFrom PData PMultiSig Source #

Since: 3.2.0

Instance details

Defined in Plutarch.Extra.MultiSig

Associated Types

type PTryFromExcess PData PMultiSig :: PType Source #

Methods

ptryFrom' :: forall (s :: S) (r :: PType). Term s PData -> ((Term s PMultiSig, Reduce (PTryFromExcess PData PMultiSig s)) -> Term s r) -> Term s r Source #

Generic (PMultiSig s) Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

Associated Types

type Rep (PMultiSig s) :: Type -> Type Source #

Methods

from :: PMultiSig s -> Rep (PMultiSig s) x Source #

to :: Rep (PMultiSig s) x -> PMultiSig s Source #

type PFields PMultiSig Source #

Since: 0.1.0

Instance details

Defined in Plutarch.Extra.MultiSig

type DPTStrat PMultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type PContravariant' PMultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type PContravariant' PMultiSig = All2 PContravariant'' (PCode PMultiSig)
type PCovariant' PMultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type PCovariant' PMultiSig = All2 PCovariant'' (PCode PMultiSig)
type PInner PMultiSig Source #

Since: 0.1.0

Instance details

Defined in Plutarch.Extra.MultiSig

type PVariant' PMultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type PVariant' PMultiSig = All2 PVariant'' (PCode PMultiSig)
type PLifted PMultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type PTryFromExcess PData PMultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type Rep (PMultiSig s) Source #

Since: 0.1.0

Instance details

Defined in Plutarch.Extra.MultiSig

type Rep (PMultiSig s) = D1 ('MetaData "PMultiSig" "Plutarch.Extra.MultiSig" "liqwid-plutarch-extra-3.21.1-KPadsMN5oqEA2Ctxwq6qig" 'True) (C1 ('MetaCons "PMultiSig" 'PrefixI 'True) (S1 ('MetaSel ('Just "getMultiSig") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term s (PDataRecord '["keys" := PBuiltinList (PAsData PPubKeyHash), "minSigs" := PInteger])))))

data MultiSig Source #

A MultiSig represents a proof that a particular set of signatures are present on a transaction.

Since: 3.8.0

Instances

Instances details
Generic MultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

Associated Types

type Rep MultiSig :: Type -> Type Source #

Show MultiSig Source #

Since: 0.1.0

Instance details

Defined in Plutarch.Extra.MultiSig

Eq MultiSig Source #

Since: 0.1.0

Instance details

Defined in Plutarch.Extra.MultiSig

PConstantDecl MultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

FromData MultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

ToData MultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

UnsafeFromData MultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

Lift DefaultUni MultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

Typeable DefaultUni MultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

(k ~ A_Traversal, a ~ PubKeyHash, b ~ PubKeyHash) => LabelOptic "keys" k MultiSig MultiSig a b Source #

Allows traversing over the list of PubKeyHashes that must be present in the list of signatories.

Since: 3.8.0

Instance details

Defined in Plutarch.Extra.MultiSig

(k ~ A_Getter, a ~ Integer, b ~ Integer) => LabelOptic "minSigs" k MultiSig MultiSig a b Source #

Allows access to (but not changing) the minimum number of signatories that must be present. Changing this field independently is forbidden, as it could construct an invalid result.

Since: 3.8.0

Instance details

Defined in Plutarch.Extra.MultiSig

type Rep MultiSig Source #

Since: 0.1.0

Instance details

Defined in Plutarch.Extra.MultiSig

type Rep MultiSig = D1 ('MetaData "MultiSig" "Plutarch.Extra.MultiSig" "liqwid-plutarch-extra-3.21.1-KPadsMN5oqEA2Ctxwq6qig" 'False) (C1 ('MetaCons "MultiSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PubKeyHash]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))
type PConstantRepr MultiSig Source #

Since: 0.1.0

Instance details

Defined in Plutarch.Extra.MultiSig

type PConstanted MultiSig Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

mkMultiSig :: [PubKeyHash] -> Integer -> Maybe MultiSig Source #

Given a list of keys, and a minimum number of signatories, returns Nothing if given too few keys, or Just a MultiSig otherwise.

Since: 3.8.0

data PMultiSigContext (s :: S) Source #

Context required in order to check MultiSig.

Should be constructed with pmultiSigContext.

Since: 3.8.0

Instances

Instances details
PEq PMultiSigContext Source #

Since: 3.2.0

Instance details

Defined in Plutarch.Extra.MultiSig

Methods

(#==) :: forall (s :: S). Term s PMultiSigContext -> Term s PMultiSigContext -> Term s PBool Source #

DerivePlutusType PMultiSigContext Source #

Since: 3.2.0

Instance details

Defined in Plutarch.Extra.MultiSig

Associated Types

type DPTStrat PMultiSigContext Source #

PlutusType PMultiSigContext Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

Methods

pcon' :: forall (s :: S). PMultiSigContext s -> Term s (PInner PMultiSigContext) Source #

pmatch' :: forall (s :: S) (b :: PType). Term s (PInner PMultiSigContext) -> (PMultiSigContext s -> Term s b) -> Term s b Source #

HasField "signatories" (PMultiSigContext s) (Term s (PBuiltinList (PAsData PPubKeyHash))) Source #

Since: 3.8.0

Instance details

Defined in Plutarch.Extra.MultiSig

Generic (PMultiSigContext s) Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

Associated Types

type Rep (PMultiSigContext s) :: Type -> Type Source #

type DPTStrat PMultiSigContext Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type PContravariant' PMultiSigContext Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type PCovariant' PMultiSigContext Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type PInner PMultiSigContext Source #

Since: 3.2.0

Instance details

Defined in Plutarch.Extra.MultiSig

type PVariant' PMultiSigContext Source # 
Instance details

Defined in Plutarch.Extra.MultiSig

type Rep (PMultiSigContext s) Source #

Since: 3.2.0

Instance details

Defined in Plutarch.Extra.MultiSig

type Rep (PMultiSigContext s) = D1 ('MetaData "PMultiSigContext" "Plutarch.Extra.MultiSig" "liqwid-plutarch-extra-3.21.1-KPadsMN5oqEA2Ctxwq6qig" 'True) (C1 ('MetaCons "PMultiSigContext" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term s (PBuiltinList (PAsData PPubKeyHash))))))

pmultiSigContext :: forall r (s :: S). HasField "signatories" r (Term s (PBuiltinList (PAsData PPubKeyHash))) => r -> Term s PMultiSigContext Source #

Construct PMultiSigContext providing the signatories field, which typically comes from PTxInfo.

Since: 3.2.0