module Mantra.Script (
mintingScript
) where
import Cardano.Api (Hash, PaymentKey, SimpleScript(..), Script(..), ScriptHash, SimpleScript(..), SimpleScriptV2, SimpleScriptVersion(..), SlotNo, TimeLocksSupported(..), hashScript)
mintingScript :: Hash PaymentKey
-> Maybe SlotNo
-> (SimpleScript SimpleScriptV2, ScriptHash)
mintingScript :: Hash PaymentKey
-> Maybe SlotNo -> (SimpleScript SimpleScriptV2, ScriptHash)
mintingScript Hash PaymentKey
hash Maybe SlotNo
Nothing =
let
script :: SimpleScript lang
script = Hash PaymentKey -> SimpleScript lang
forall lang. Hash PaymentKey -> SimpleScript lang
RequireSignature Hash PaymentKey
hash
in
(
SimpleScript SimpleScriptV2
forall lang. SimpleScript lang
script
, Script SimpleScriptV2 -> ScriptHash
forall lang. Script lang -> ScriptHash
hashScript (Script SimpleScriptV2 -> ScriptHash)
-> Script SimpleScriptV2 -> ScriptHash
forall a b. (a -> b) -> a -> b
$ SimpleScriptVersion SimpleScriptV2
-> SimpleScript SimpleScriptV2 -> Script SimpleScriptV2
forall lang.
SimpleScriptVersion lang -> SimpleScript lang -> Script lang
SimpleScript SimpleScriptVersion SimpleScriptV2
SimpleScriptV2 SimpleScript SimpleScriptV2
forall lang. SimpleScript lang
script
)
mintingScript Hash PaymentKey
hash (Just SlotNo
slot) =
let
script :: SimpleScript SimpleScriptV2
script =
[SimpleScript SimpleScriptV2] -> SimpleScript SimpleScriptV2
forall lang. [SimpleScript lang] -> SimpleScript lang
RequireAllOf
[
Hash PaymentKey -> SimpleScript SimpleScriptV2
forall lang. Hash PaymentKey -> SimpleScript lang
RequireSignature Hash PaymentKey
hash
, TimeLocksSupported SimpleScriptV2
-> SlotNo -> SimpleScript SimpleScriptV2
forall lang. TimeLocksSupported lang -> SlotNo -> SimpleScript lang
RequireTimeBefore TimeLocksSupported SimpleScriptV2
TimeLocksInSimpleScriptV2 SlotNo
slot
]
in
(
SimpleScript SimpleScriptV2
script
, Script SimpleScriptV2 -> ScriptHash
forall lang. Script lang -> ScriptHash
hashScript (Script SimpleScriptV2 -> ScriptHash)
-> Script SimpleScriptV2 -> ScriptHash
forall a b. (a -> b) -> a -> b
$ SimpleScriptVersion SimpleScriptV2
-> SimpleScript SimpleScriptV2 -> Script SimpleScriptV2
forall lang.
SimpleScriptVersion lang -> SimpleScript lang -> Script lang
SimpleScript SimpleScriptVersion SimpleScriptV2
SimpleScriptV2 SimpleScript SimpleScriptV2
script
)