Copyright | (c) 2024 GYELD GMBH |
---|---|
License | Apache 2.0 |
Maintainer | [email protected] |
Stability | develop |
Safe Haskell | None |
Language | GHC2021 |
GeniusYield.Types.Script.SimpleScript
Contents
Description
Synopsis
- data GYSimpleScript
- simpleScriptToApi :: GYSimpleScript -> SimpleScript
- simpleScriptFromApi :: SimpleScript -> GYSimpleScript
- readSimpleScript :: FilePath -> IO GYSimpleScript
- getTotalKeysInSimpleScript :: GYSimpleScript -> Set GYPaymentKeyHash
- hashSimpleScript :: GYSimpleScript -> GYScriptHash
- hashSimpleScript' :: GYSimpleScript -> ScriptHash
- simpleScriptFromCBOR :: Text -> Maybe GYSimpleScript
- simpleScriptFromCBOR' :: ByteString -> Maybe GYSimpleScript
- simpleScriptFromJSON :: Value -> Maybe GYSimpleScript
Docspec setup
>>>
:set -XOverloadedStrings -XTypeApplications
>>>
>>>
import GeniusYield.Types
>>>
import Data.Set qualified as Set
Simple script
data GYSimpleScript #
A simple (aka native / timelock) script that can be used in a transaction.
Constructors
RequireSignature !GYPaymentKeyHash | |
RequireTimeBefore !GYSlot | |
RequireTimeAfter !GYSlot | |
RequireAllOf ![GYSimpleScript] | |
RequireAnyOf ![GYSimpleScript] | |
RequireMOf !Int ![GYSimpleScript] |
Instances
readSimpleScript :: FilePath -> IO GYSimpleScript #
Read a GYSimpleScript
represented as JSON from a file.
getTotalKeysInSimpleScript :: GYSimpleScript -> Set GYPaymentKeyHash #
Get the total number of unique GYPaymentKeyHash
mentioned in a GYSimpleScript
.
This is useful for estimating the number of signatures required for a transaction.
>>>
reqSigA = RequireSignature "e1cbb80db89e292269aeb93ec15eb963dda5176b66949fe1c2a6a38a"
>>>
reqSigB = RequireSignature "e1cbb80db89e292269aeb93ec15eb963dda5176b66949fe1c2a6a38b"
>>>
reqSigC = RequireSignature "e1cbb80db89e292269aeb93ec15eb963dda5176b66949fe1c2a6a38c"
>>>
reqSigD = RequireSignature "e1cbb80db89e292269aeb93ec15eb963dda5176b66949fe1c2a6a38d"
>>>
reqSigE = RequireSignature "e1cbb80db89e292269aeb93ec15eb963dda5176b66949fe1c2a6a38e"
>>>
Set.size $ getTotalKeysInSimpleScript $ RequireMOf 2 [RequireAllOf [reqSigA, reqSigB, reqSigC], RequireAnyOf [reqSigA, reqSigD], reqSigE]
5