| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Cardano.Ledger.Shelley.Scripts
Contents
Synopsis
- newtype MultiSig era = MkMultiSig (MemoBytes (MultiSigRaw era))
- class EraScript era ⇒ ShelleyEraScript era where
- mkRequireSignature ∷ KeyHash 'Witness → NativeScript era
- getRequireSignature ∷ NativeScript era → Maybe (KeyHash 'Witness)
- mkRequireAllOf ∷ StrictSeq (NativeScript era) → NativeScript era
- getRequireAllOf ∷ NativeScript era → Maybe (StrictSeq (NativeScript era))
- mkRequireAnyOf ∷ StrictSeq (NativeScript era) → NativeScript era
- getRequireAnyOf ∷ NativeScript era → Maybe (StrictSeq (NativeScript era))
- mkRequireMOf ∷ Int → StrictSeq (NativeScript era) → NativeScript era
- getRequireMOf ∷ NativeScript era → Maybe (Int, StrictSeq (NativeScript era))
- pattern RequireSignature ∷ ShelleyEraScript era ⇒ KeyHash 'Witness → NativeScript era
- pattern RequireAllOf ∷ ShelleyEraScript era ⇒ StrictSeq (NativeScript era) → NativeScript era
- pattern RequireAnyOf ∷ ShelleyEraScript era ⇒ StrictSeq (NativeScript era) → NativeScript era
- pattern RequireMOf ∷ ShelleyEraScript era ⇒ Int → StrictSeq (NativeScript era) → NativeScript era
- evalMultiSig ∷ (ShelleyEraScript era, NativeScript era ~ MultiSig era) ⇒ Set (KeyHash 'Witness) → NativeScript era → Bool
- validateMultiSig ∷ ∀ era (t ∷ TxLevel). (ShelleyEraScript era, EraTx era, NativeScript era ~ MultiSig era) ⇒ Tx t era → NativeScript era → Bool
- nativeMultiSigTag ∷ ByteString
- eqMultiSigRaw ∷ MultiSig era → MultiSig era → Bool
- data MultiSigRaw era
- = MultiSigSignature !(KeyHash 'Witness)
- | MultiSigAllOf !(StrictSeq (MultiSig era))
- | MultiSigAnyOf !(StrictSeq (MultiSig era))
- | MultiSigMOf !Int !(StrictSeq (MultiSig era))
Documentation
Constructors
| MkMultiSig (MemoBytes (MultiSigRaw era)) |
Instances
class EraScript era ⇒ ShelleyEraScript era where Source #
Methods
mkRequireSignature ∷ KeyHash 'Witness → NativeScript era Source #
getRequireSignature ∷ NativeScript era → Maybe (KeyHash 'Witness) Source #
mkRequireAllOf ∷ StrictSeq (NativeScript era) → NativeScript era Source #
getRequireAllOf ∷ NativeScript era → Maybe (StrictSeq (NativeScript era)) Source #
mkRequireAnyOf ∷ StrictSeq (NativeScript era) → NativeScript era Source #
getRequireAnyOf ∷ NativeScript era → Maybe (StrictSeq (NativeScript era)) Source #
mkRequireMOf ∷ Int → StrictSeq (NativeScript era) → NativeScript era Source #
getRequireMOf ∷ NativeScript era → Maybe (Int, StrictSeq (NativeScript era)) Source #
Instances
| ShelleyEraScript ShelleyEra Source # | |
Defined in Cardano.Ledger.Shelley.Scripts Methods mkRequireSignature ∷ KeyHash 'Witness → NativeScript ShelleyEra Source # getRequireSignature ∷ NativeScript ShelleyEra → Maybe (KeyHash 'Witness) Source # mkRequireAllOf ∷ StrictSeq (NativeScript ShelleyEra) → NativeScript ShelleyEra Source # getRequireAllOf ∷ NativeScript ShelleyEra → Maybe (StrictSeq (NativeScript ShelleyEra)) Source # mkRequireAnyOf ∷ StrictSeq (NativeScript ShelleyEra) → NativeScript ShelleyEra Source # getRequireAnyOf ∷ NativeScript ShelleyEra → Maybe (StrictSeq (NativeScript ShelleyEra)) Source # mkRequireMOf ∷ Int → StrictSeq (NativeScript ShelleyEra) → NativeScript ShelleyEra Source # getRequireMOf ∷ NativeScript ShelleyEra → Maybe (Int, StrictSeq (NativeScript ShelleyEra)) Source # | |
pattern RequireSignature ∷ ShelleyEraScript era ⇒ KeyHash 'Witness → NativeScript era Source #
pattern RequireAllOf ∷ ShelleyEraScript era ⇒ StrictSeq (NativeScript era) → NativeScript era Source #
pattern RequireAnyOf ∷ ShelleyEraScript era ⇒ StrictSeq (NativeScript era) → NativeScript era Source #
pattern RequireMOf ∷ ShelleyEraScript era ⇒ Int → StrictSeq (NativeScript era) → NativeScript era 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
| Era era ⇒ DecCBOR (Annotator (MultiSigRaw era)) Source # | |||||
| NFData (MultiSigRaw era) Source # | |||||
Defined in Cardano.Ledger.Shelley.Scripts Methods rnf ∷ MultiSigRaw era → () # | |||||
| Generic (MultiSigRaw era) Source # | |||||
Defined in Cardano.Ledger.Shelley.Scripts Associated Types
Methods from ∷ MultiSigRaw era → Rep (MultiSigRaw era) x # to ∷ Rep (MultiSigRaw era) x → MultiSigRaw era # | |||||
| Show (MultiSigRaw era) Source # | |||||
Defined in Cardano.Ledger.Shelley.Scripts Methods showsPrec ∷ Int → MultiSigRaw era → ShowS # show ∷ MultiSigRaw era → String # showList ∷ [MultiSigRaw era] → ShowS # | |||||
| Eq (MultiSigRaw era) Source # | |||||
Defined in Cardano.Ledger.Shelley.Scripts Methods (==) ∷ MultiSigRaw era → MultiSigRaw era → Bool # (/=) ∷ MultiSigRaw era → MultiSigRaw era → Bool # | |||||
| Typeable era ⇒ NoThunks (MultiSigRaw era) Source # | |||||
Defined in Cardano.Ledger.Shelley.Scripts | |||||
| type Rep (MultiSigRaw era) Source # | |||||
Defined in Cardano.Ledger.Shelley.Scripts type Rep (MultiSigRaw era) = D1 ('MetaData "MultiSigRaw" "Cardano.Ledger.Shelley.Scripts" "cardano-ledger-shelley-1.18.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)))))) | |||||
Orphan instances
| EraScript ShelleyEra Source # | |||||||||
Associated Types
| |||||||||