{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Ledger.Mary.Scripts (
module Cardano.Ledger.Allegra.Scripts,
) where
import Cardano.Ledger.Allegra.Scripts
import Cardano.Ledger.Core
import Cardano.Ledger.Mary.Era (MaryEra)
import Cardano.Ledger.Shelley.Scripts (
ShelleyEraScript (..),
nativeMultiSigTag,
)
instance EraScript MaryEra where
type Script MaryEra = Timelock MaryEra
type NativeScript MaryEra = Timelock MaryEra
upgradeScript :: EraScript (PreviousEra MaryEra) =>
Script (PreviousEra MaryEra) -> Script MaryEra
upgradeScript = Timelock AllegraEra -> Timelock MaryEra
Script (PreviousEra MaryEra) -> Script MaryEra
forall era1 era2.
(Era era1, Era era2) =>
Timelock era1 -> Timelock era2
translateTimelock
scriptPrefixTag :: Script MaryEra -> ByteString
scriptPrefixTag Script MaryEra
_script = ByteString
nativeMultiSigTag
getNativeScript :: Script MaryEra -> Maybe (NativeScript MaryEra)
getNativeScript = Timelock MaryEra -> Maybe (Timelock MaryEra)
Script MaryEra -> Maybe (NativeScript MaryEra)
forall a. a -> Maybe a
Just
fromNativeScript :: NativeScript MaryEra -> Script MaryEra
fromNativeScript = Timelock MaryEra -> Timelock MaryEra
NativeScript MaryEra -> Script MaryEra
forall a. a -> a
id
instance ShelleyEraScript MaryEra where
mkRequireSignature :: KeyHash 'Witness -> NativeScript MaryEra
mkRequireSignature = KeyHash 'Witness -> Timelock MaryEra
KeyHash 'Witness -> NativeScript MaryEra
forall era. Era era => KeyHash 'Witness -> Timelock era
mkRequireSignatureTimelock
getRequireSignature :: NativeScript MaryEra -> Maybe (KeyHash 'Witness)
getRequireSignature = Timelock MaryEra -> Maybe (KeyHash 'Witness)
NativeScript MaryEra -> Maybe (KeyHash 'Witness)
forall {k} (era :: k). Timelock era -> Maybe (KeyHash 'Witness)
getRequireSignatureTimelock
mkRequireAllOf :: StrictSeq (NativeScript MaryEra) -> NativeScript MaryEra
mkRequireAllOf = StrictSeq (Timelock MaryEra) -> Timelock MaryEra
StrictSeq (NativeScript MaryEra) -> NativeScript MaryEra
forall era. Era era => StrictSeq (Timelock era) -> Timelock era
mkRequireAllOfTimelock
getRequireAllOf :: NativeScript MaryEra -> Maybe (StrictSeq (NativeScript MaryEra))
getRequireAllOf = Timelock MaryEra -> Maybe (StrictSeq (Timelock MaryEra))
NativeScript MaryEra -> Maybe (StrictSeq (NativeScript MaryEra))
forall {k} (era :: k).
Timelock era -> Maybe (StrictSeq (Timelock era))
getRequireAllOfTimelock
mkRequireAnyOf :: StrictSeq (NativeScript MaryEra) -> NativeScript MaryEra
mkRequireAnyOf = StrictSeq (Timelock MaryEra) -> Timelock MaryEra
StrictSeq (NativeScript MaryEra) -> NativeScript MaryEra
forall era. Era era => StrictSeq (Timelock era) -> Timelock era
mkRequireAnyOfTimelock
getRequireAnyOf :: NativeScript MaryEra -> Maybe (StrictSeq (NativeScript MaryEra))
getRequireAnyOf = Timelock MaryEra -> Maybe (StrictSeq (Timelock MaryEra))
NativeScript MaryEra -> Maybe (StrictSeq (NativeScript MaryEra))
forall {k} (era :: k).
Timelock era -> Maybe (StrictSeq (Timelock era))
getRequireAnyOfTimelock
mkRequireMOf :: Int -> StrictSeq (NativeScript MaryEra) -> NativeScript MaryEra
mkRequireMOf = Int -> StrictSeq (Timelock MaryEra) -> Timelock MaryEra
Int -> StrictSeq (NativeScript MaryEra) -> NativeScript MaryEra
forall era.
Era era =>
Int -> StrictSeq (Timelock era) -> Timelock era
mkRequireMOfTimelock
getRequireMOf :: NativeScript MaryEra
-> Maybe (Int, StrictSeq (NativeScript MaryEra))
getRequireMOf = Timelock MaryEra -> Maybe (Int, StrictSeq (Timelock MaryEra))
NativeScript MaryEra
-> Maybe (Int, StrictSeq (NativeScript MaryEra))
forall {k} (era :: k).
Timelock era -> Maybe (Int, StrictSeq (Timelock era))
getRequireMOfTimelock
instance AllegraEraScript MaryEra where
mkTimeStart :: SlotNo -> NativeScript MaryEra
mkTimeStart = SlotNo -> Timelock MaryEra
SlotNo -> NativeScript MaryEra
forall era. Era era => SlotNo -> Timelock era
mkTimeStartTimelock
getTimeStart :: NativeScript MaryEra -> Maybe SlotNo
getTimeStart = Timelock MaryEra -> Maybe SlotNo
NativeScript MaryEra -> Maybe SlotNo
forall {k} (era :: k). Timelock era -> Maybe SlotNo
getTimeStartTimelock
mkTimeExpire :: SlotNo -> NativeScript MaryEra
mkTimeExpire = SlotNo -> Timelock MaryEra
SlotNo -> NativeScript MaryEra
forall era. Era era => SlotNo -> Timelock era
mkTimeExpireTimelock
getTimeExpire :: NativeScript MaryEra -> Maybe SlotNo
getTimeExpire = Timelock MaryEra -> Maybe SlotNo
NativeScript MaryEra -> Maybe SlotNo
forall {k} (era :: k). Timelock era -> Maybe SlotNo
getTimeExpireTimelock