cardano-ledger-shelley-1.21.0.0: Shelley Ledger Executable Model
Safe HaskellNone
LanguageHaskell2010

Cardano.Ledger.Shelley.Scripts

Synopsis

Documentation

newtype MultiSig era Source #

Constructors

MkMultiSig (MemoBytes (MultiSigRaw era)) 

Instances

Instances details
(ShelleyEraScript era, NativeScript era ~ MultiSig era) ⇒ FromJSON (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

(ShelleyEraScript era, NativeScript era ~ MultiSig era) ⇒ ToJSON (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Typeable era ⇒ ToCBOR (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

toCBOR ∷ MultiSig era → Encoding Source #

encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy (MultiSig era) → Size Source #

encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [MultiSig era] → Size Source #

Era era ⇒ DecCBOR (Annotator (MultiSig era)) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Era era ⇒ EncCBOR (MultiSig era) Source #

Encodes memoized bytes created upon construction.

Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

encCBOR ∷ MultiSig era → Encoding Source #

SafeToHash (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

EqRaw (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

eqRaw ∷ MultiSig era → MultiSig era → Bool Source #

Memoized (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Associated Types

type RawType (MultiSig era) 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

type RawType (MultiSig era) = MultiSigRaw era
NFData (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

rnf ∷ MultiSig era → () #

Generic (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Associated Types

type Rep (MultiSig era) 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

type Rep (MultiSig era) = D1 ('MetaData "MultiSig" "Cardano.Ledger.Shelley.Scripts" "cardano-ledger-shelley-1.21.0.0-inplace" 'True) (C1 ('MetaCons "MkMultiSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MemoBytes (MultiSigRaw era)))))

Methods

from ∷ MultiSig era → Rep (MultiSig era) x #

to ∷ Rep (MultiSig era) x → MultiSig era #

Show (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

showsPrec ∷ Int → MultiSig era → ShowS #

show ∷ MultiSig era → String #

showList ∷ [MultiSig era] → ShowS #

Eq (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

(==) ∷ MultiSig era → MultiSig era → Bool #

(/=) ∷ MultiSig era → MultiSig era → Bool #

Ord (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

compare ∷ MultiSig era → MultiSig era → Ordering #

(<) ∷ MultiSig era → MultiSig era → Bool #

(<=) ∷ MultiSig era → MultiSig era → Bool #

(>) ∷ MultiSig era → MultiSig era → Bool #

(>=) ∷ MultiSig era → MultiSig era → Bool #

max ∷ MultiSig era → MultiSig era → MultiSig era #

min ∷ MultiSig era → MultiSig era → MultiSig era #

Typeable era ⇒ NoThunks (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

type RawType (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

type RawType (MultiSig era) = MultiSigRaw era
type Rep (MultiSig era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

type Rep (MultiSig era) = D1 ('MetaData "MultiSig" "Cardano.Ledger.Shelley.Scripts" "cardano-ledger-shelley-1.21.0.0-inplace" 'True) (C1 ('MetaCons "MkMultiSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MemoBytes (MultiSigRaw era)))))

class EraScript era ⇒ ShelleyEraScript era where Source #

evalMultiSig ∷ (ShelleyEraScript era, NativeScript era ~ MultiSig era) ⇒ Set (KeyHash 'Witness) → NativeScript era → Bool Source #

Script evaluator for native multi-signature scheme. vhks is the set of key hashes that signed the transaction to be validated.

validateMultiSig ∷ ∀ era (t ∷ TxLevel). (ShelleyEraScript era, EraTx era, NativeScript era ~ MultiSig era) ⇒ Tx t era → NativeScript era → Bool Source #

Script validator for native multi-signature scheme.

nativeMultiSigTag ∷ ByteString Source #

Magic number "memorialized" in the ValidateScript class under the method: scriptPrefixTag:: Core.Script era -> Bs.ByteString, for the Shelley Era.

eqMultiSigRaw ∷ MultiSig era → MultiSig era → Bool Source #

Check the equality of two underlying types, while ignoring their binary representation, which Eq instance normally does. This is used for testing.

data MultiSigRaw era Source #

A simple language for expressing conditions under which it is valid to withdraw from a normal UTxO payment address or to use a stake address.

The use case is for expressing multi-signature payment addresses and multi-signature stake addresses. These can be combined arbitrarily using logical operations:

  • multi-way "and";
  • multi-way "or";
  • multi-way "N of M".

This makes it easy to express multi-signature addresses, and provides an extension point to express other validity conditions, e.g., as needed for locking funds used with lightning.

Constructors

MultiSigSignature !(KeyHash 'Witness)

Require the redeeming transaction be witnessed by the spending key corresponding to the given verification key hash.

MultiSigAllOf !(StrictSeq (MultiSig era))

Require all the sub-terms to be satisfied.

MultiSigAnyOf !(StrictSeq (MultiSig era))

Require any one of the sub-terms to be satisfied.

MultiSigMOf !Int !(StrictSeq (MultiSig era))

Require M of the given sub-terms to be satisfied.

Instances

Instances details
Era era ⇒ DecCBOR (Annotator (MultiSigRaw era)) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

NFData (MultiSigRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

rnf ∷ MultiSigRaw era → () #

Generic (MultiSigRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Associated Types

type Rep (MultiSigRaw era) 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

type Rep (MultiSigRaw era) = D1 ('MetaData "MultiSigRaw" "Cardano.Ledger.Shelley.Scripts" "cardano-ledger-shelley-1.21.0.0-inplace" 'False) ((C1 ('MetaCons "MultiSigSignature" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (KeyHash 'Witness))) :+: C1 ('MetaCons "MultiSigAllOf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictSeq (MultiSig era))))) :+: (C1 ('MetaCons "MultiSigAnyOf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictSeq (MultiSig era)))) :+: C1 ('MetaCons "MultiSigMOf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictSeq (MultiSig era))))))

Methods

from ∷ MultiSigRaw era → Rep (MultiSigRaw era) x #

to ∷ Rep (MultiSigRaw era) x → MultiSigRaw era #

Show (MultiSigRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

showsPrec ∷ Int → MultiSigRaw era → ShowS #

show ∷ MultiSigRaw era → String #

showList ∷ [MultiSigRaw era] → ShowS #

Eq (MultiSigRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

(==) ∷ MultiSigRaw era → MultiSigRaw era → Bool #

(/=) ∷ MultiSigRaw era → MultiSigRaw era → Bool #

Ord (MultiSigRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

Methods

compare ∷ MultiSigRaw era → MultiSigRaw era → Ordering #

(<) ∷ MultiSigRaw era → MultiSigRaw era → Bool #

(<=) ∷ MultiSigRaw era → MultiSigRaw era → Bool #

(>) ∷ MultiSigRaw era → MultiSigRaw era → Bool #

(>=) ∷ MultiSigRaw era → MultiSigRaw era → Bool #

max ∷ MultiSigRaw era → MultiSigRaw era → MultiSigRaw era #

min ∷ MultiSigRaw era → MultiSigRaw era → MultiSigRaw era #

Typeable era ⇒ NoThunks (MultiSigRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

type Rep (MultiSigRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Shelley.Scripts

type Rep (MultiSigRaw era) = D1 ('MetaData "MultiSigRaw" "Cardano.Ledger.Shelley.Scripts" "cardano-ledger-shelley-1.21.0.0-inplace" 'False) ((C1 ('MetaCons "MultiSigSignature" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (KeyHash 'Witness))) :+: C1 ('MetaCons "MultiSigAllOf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictSeq (MultiSig era))))) :+: (C1 ('MetaCons "MultiSigAnyOf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictSeq (MultiSig era)))) :+: C1 ('MetaCons "MultiSigMOf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictSeq (MultiSig era))))))

JSON utilities

Orphan instances