| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Cardano.Address.Script
Synopsis
- data Script (elem :: Type)
- = RequireSignatureOf !elem
- | RequireAllOf ![Script elem]
- | RequireAnyOf ![Script elem]
- | RequireSomeOf Word8 ![Script elem]
- | ActiveFromSlot Natural
- | ActiveUntilSlot Natural
- serializeScript :: Script KeyHash -> ByteString
- foldScript :: (a -> b -> b) -> b -> Script a -> b
- data ScriptTemplate = ScriptTemplate {}
- newtype Cosigner = Cosigner Word8
- data ErrValidateScript
- data ErrRecommendedValidateScript
- data ErrValidateScriptTemplate
- validateScript :: ValidationLevel -> Script KeyHash -> Either ErrValidateScript ()
- validateScriptTemplate :: ValidationLevel -> ScriptTemplate -> Either ErrValidateScriptTemplate ()
- validateScriptOfTemplate :: ValidationLevel -> Script Cosigner -> Either ErrValidateScript ()
- prettyErrValidateScript :: ErrValidateScript -> String
- prettyErrValidateScriptTemplate :: ErrValidateScriptTemplate -> String
- newtype ScriptHash = ScriptHash {}
- toScriptHash :: Script KeyHash -> ScriptHash
- scriptHashFromBytes :: ByteString -> Maybe ScriptHash
- data KeyHash = KeyHash {
- role :: KeyRole
- digest :: ByteString
- keyHashFromBytes :: (KeyRole, ByteString) -> Maybe KeyHash
- keyHashFromText :: Text -> Either ErrKeyHashFromText KeyHash
- keyHashToText :: KeyHash -> Text
Script
data Script (elem :: Type) Source #
A Script type represents multi signature script. The script embodies conditions
that need to be satisfied to make it valid.
Since: 3.0.0
Constructors
| RequireSignatureOf !elem | |
| RequireAllOf ![Script elem] | |
| RequireAnyOf ![Script elem] | |
| RequireSomeOf Word8 ![Script elem] | |
| ActiveFromSlot Natural | |
| ActiveUntilSlot Natural |
Instances
serializeScript :: Script KeyHash -> ByteString Source #
This function realizes what cardano-node's `Api.serialiseToCBOR script` realizes This is basically doing the symbolically following: toCBOR [0,multisigScript]
Since: 3.0.0
foldScript :: (a -> b -> b) -> b -> Script a -> b Source #
Script folding
Since: 3.2.0
Script template
data ScriptTemplate Source #
Represents the script template that show the structure of the script and determines the expected place of verification keys corresponding to given cosigners.
Since: 3.2.0
Instances
Represents the cosigner of the script, ie., party that co-shares the script.
Since: 3.2.0
Instances
| Eq Cosigner Source # | |
| Ord Cosigner Source # | |
Defined in Cardano.Address.Script | |
| Show Cosigner Source # | |
| Generic Cosigner Source # | |
| NFData Cosigner Source # | |
Defined in Cardano.Address.Script | |
| FromJSON Cosigner Source # | |
Defined in Cardano.Address.Script | |
| ToJSON Cosigner Source # | |
Defined in Cardano.Address.Script Methods toEncoding :: Cosigner -> Encoding toJSONList :: [Cosigner] -> Value toEncodingList :: [Cosigner] -> Encoding | |
| Hashable Cosigner Source # | |
Defined in Cardano.Address.Script | |
| FromJSON (Script Cosigner) Source # | |
Defined in Cardano.Address.Script | |
| type Rep Cosigner Source # | |
Defined in Cardano.Address.Script | |
Validation
data ErrValidateScript Source #
Possible validation errors when validating a script
Since: 3.0.0
Constructors
| LedgerIncompatible | |
| WrongKeyHash | |
| NotUniformKeyType | |
| Malformed | |
| NotRecommended ErrRecommendedValidateScript |
Instances
| Eq ErrValidateScript Source # | |
Defined in Cardano.Address.Script Methods (==) :: ErrValidateScript -> ErrValidateScript -> Bool # (/=) :: ErrValidateScript -> ErrValidateScript -> Bool # | |
| Show ErrValidateScript Source # | |
Defined in Cardano.Address.Script Methods showsPrec :: Int -> ErrValidateScript -> ShowS # show :: ErrValidateScript -> String # showList :: [ErrValidateScript] -> ShowS # | |
data ErrRecommendedValidateScript Source #
Possible recommended validation errors when validating a script
Since: 3.2.0
Instances
| Eq ErrRecommendedValidateScript Source # | |
Defined in Cardano.Address.Script Methods (==) :: ErrRecommendedValidateScript -> ErrRecommendedValidateScript -> Bool # (/=) :: ErrRecommendedValidateScript -> ErrRecommendedValidateScript -> Bool # | |
| Show ErrRecommendedValidateScript Source # | |
Defined in Cardano.Address.Script Methods showsPrec :: Int -> ErrRecommendedValidateScript -> ShowS # show :: ErrRecommendedValidateScript -> String # showList :: [ErrRecommendedValidateScript] -> ShowS # | |
data ErrValidateScriptTemplate Source #
Possible validation errors when validating a script template
Since: 3.2.0
Constructors
| WrongScript ErrValidateScript | |
| DuplicateXPubs | |
| UnknownCosigner | |
| MissingCosignerXPub | |
| NoCosignerInScript | |
| NoCosignerXPub |
Instances
| Eq ErrValidateScriptTemplate Source # | |
Defined in Cardano.Address.Script Methods (==) :: ErrValidateScriptTemplate -> ErrValidateScriptTemplate -> Bool # (/=) :: ErrValidateScriptTemplate -> ErrValidateScriptTemplate -> Bool # | |
| Show ErrValidateScriptTemplate Source # | |
Defined in Cardano.Address.Script Methods showsPrec :: Int -> ErrValidateScriptTemplate -> ShowS # show :: ErrValidateScriptTemplate -> String # showList :: [ErrValidateScriptTemplate] -> ShowS # | |
validateScript :: ValidationLevel -> Script KeyHash -> Either ErrValidateScript () Source #
Validate a Script, semantically
Since: 3.0.0
validateScriptTemplate :: ValidationLevel -> ScriptTemplate -> Either ErrValidateScriptTemplate () Source #
Validate a ScriptTemplate, semantically
Since: 3.2.0
validateScriptOfTemplate :: ValidationLevel -> Script Cosigner -> Either ErrValidateScript () Source #
Validate a script in ScriptTemplate
Since: 3.5.0
prettyErrValidateScript :: ErrValidateScript -> String Source #
Pretty-print a script validation error.
Since: 3.0.0
prettyErrValidateScriptTemplate :: ErrValidateScriptTemplate -> String Source #
Pretty-print a script template validation error.
Since: 3.2.0
Hashing
newtype ScriptHash Source #
A ScriptHash type represents script hash. The hash is expected to have size of
28-byte.
Since: 3.0.0
Constructors
| ScriptHash | |
Fields | |
Instances
toScriptHash :: Script KeyHash -> ScriptHash Source #
Computes the hash of a given script, by first serializing it to CBOR.
Since: 3.0.0
scriptHashFromBytes :: ByteString -> Maybe ScriptHash Source #
Construct an ScriptHash from raw ByteString (28 bytes).
Since: 3.0.0
A KeyHash type represents verification key hash that participate in building
multi-signature script. The hash is expected to have size of 28-byte.
Since: 3.0.0
Constructors
| KeyHash | |
Fields
| |
Instances
| Eq KeyHash Source # | |
| Ord KeyHash Source # | |
Defined in Cardano.Address.Script | |
| Show KeyHash Source # | |
| Generic KeyHash Source # | |
| NFData KeyHash Source # | |
Defined in Cardano.Address.Script | |
| ToJSON KeyHash Source # | |
Defined in Cardano.Address.Script Methods toEncoding :: KeyHash -> Encoding toJSONList :: [KeyHash] -> Value toEncodingList :: [KeyHash] -> Encoding | |
| FromJSON (Script KeyHash) Source # | |
Defined in Cardano.Address.Script | |
| type Rep KeyHash Source # | |
Defined in Cardano.Address.Script type Rep KeyHash = D1 ('MetaData "KeyHash" "Cardano.Address.Script" "cardano-addresses-3.12.0-CXdZXYlvM2IBJZenPvTIY5" 'False) (C1 ('MetaCons "KeyHash" 'PrefixI 'True) (S1 ('MetaSel ('Just "role") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 KeyRole) :*: S1 ('MetaSel ('Just "digest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString))) | |
keyHashFromBytes :: (KeyRole, ByteString) -> Maybe KeyHash Source #
Construct an KeyHash from raw ByteString (28 bytes).
Since: 3.0.0
keyHashFromText :: Text -> Either ErrKeyHashFromText KeyHash Source #
Construct a KeyHash from Text. It should be
Bech32 encoded text with one of following hrp:
- addr_shared_vkh
- stake_shared_vkh
- addr_vkh
- stake_vkh
- policy_vkh
- addr_shared_vk
- stake_shared_vk
- addr_vk
- stake_vk
- addr_shared_xvk
- stake_shared_xvk
- addr_xvk
- stake_xvk
- policy_vk
- policy_xvk
Raw keys will be hashed on the fly, whereas hash that are directly
provided will remain as such.
If if hex is encountered Unknown policy key is assumed
Since: 3.1.0