2424
2525module Cardano.Ledger.Alonzo.Scripts (
2626 PlutusBinary (.. ),
27- AlonzoScript (TimelockScript , PlutusScript ),
27+ AlonzoScript (NativeScript , PlutusScript ),
2828 Script ,
2929 isPlutusScript ,
3030 validScript ,
@@ -426,44 +426,52 @@ pattern RewardingPurpose c <- (toRewardingPurpose -> Just c)
426426
427427-- Alonzo Script ===============================================================
428428
429- -- | Scripts in the Alonzo Era, Either a Timelock script or a Plutus script.
429+ -- | Scripts in the Alonzo Era, Either a nativve script or a Plutus script.
430430data AlonzoScript era
431- = TimelockScript ! (Timelock era )
431+ = NativeScript ! (NativeScript era )
432432 | PlutusScript ! (PlutusScript era )
433433 deriving (Generic )
434434
435- instance (Era era , MemPack (PlutusScript era )) => MemPack (AlonzoScript era ) where
435+ instance
436+ ( Era era
437+ , MemPack (PlutusScript era )
438+ , MemPack (NativeScript era )
439+ ) =>
440+ MemPack (AlonzoScript era )
441+ where
436442 packedByteCount = \ case
437- TimelockScript script -> packedTagByteCount + packedByteCount script
443+ NativeScript script -> packedTagByteCount + packedByteCount script
438444 PlutusScript script -> packedTagByteCount + packedByteCount script
439445 packM = \ case
440- TimelockScript script -> packTagM 0 >> packM script
446+ NativeScript script -> packTagM 0 >> packM script
441447 PlutusScript script -> packTagM 1 >> packM script
442448 {-# INLINE packM #-}
443449 unpackM =
444450 unpackTagM >>= \ case
445- 0 -> TimelockScript <$> unpackM
451+ 0 -> NativeScript <$> unpackM
446452 1 -> PlutusScript <$> unpackM
447453 n -> unknownTagM @ (AlonzoScript era ) n
448454 {-# INLINE unpackM #-}
449455
450- deriving instance Eq (PlutusScript era ) => Eq (AlonzoScript era )
456+ deriving instance ( Eq (PlutusScript era ), Eq ( NativeScript era ) ) => Eq (AlonzoScript era )
451457
452- instance (Era era , NoThunks (PlutusScript era )) => NoThunks (AlonzoScript era )
458+ instance
459+ (Era era , NoThunks (PlutusScript era ), NoThunks (NativeScript era )) =>
460+ NoThunks (AlonzoScript era )
453461
454- instance NFData (PlutusScript era ) => NFData (AlonzoScript era ) where
462+ instance ( NFData (PlutusScript era ), NFData ( NativeScript era ) ) => NFData (AlonzoScript era ) where
455463 rnf = \ case
456- TimelockScript ts -> rnf ts
464+ NativeScript ts -> rnf ts
457465 PlutusScript ps -> rnf ps
458466
459467instance (AlonzoEraScript era , Script era ~ AlonzoScript era ) => Show (AlonzoScript era ) where
460- show (TimelockScript x) = " TimelockScript " ++ show x
468+ show (NativeScript x) = " NativeScript " ++ show x
461469 show s@ (PlutusScript plutus) =
462470 " PlutusScript " ++ show (plutusScriptLanguage plutus) ++ " " ++ show (hashScript @ era s)
463471
464472-- | Both constructors know their original bytes
465- instance SafeToHash (PlutusScript era ) => SafeToHash (AlonzoScript era ) where
466- originalBytes (TimelockScript t) = originalBytes t
473+ instance ( SafeToHash (PlutusScript era ), SafeToHash ( NativeScript era ) ) => SafeToHash (AlonzoScript era ) where
474+ originalBytes (NativeScript t) = originalBytes t
467475 originalBytes (PlutusScript plutus) = originalBytes plutus
468476
469477isPlutusScript :: AlonzoEraScript era => Script era -> Bool
@@ -473,22 +481,22 @@ instance EraScript AlonzoEra where
473481 type Script AlonzoEra = AlonzoScript AlonzoEra
474482 type NativeScript AlonzoEra = Timelock AlonzoEra
475483
476- upgradeScript = TimelockScript . translateTimelock
484+ upgradeScript = NativeScript . translateTimelock
477485
478486 scriptPrefixTag = alonzoScriptPrefixTag
479487
480488 getNativeScript = \ case
481- TimelockScript ts -> Just ts
489+ NativeScript ts -> Just ts
482490 _ -> Nothing
483491
484- fromNativeScript = TimelockScript
492+ fromNativeScript = NativeScript
485493
486494alonzoScriptPrefixTag ::
487495 (AlonzoEraScript era , AlonzoScript era ~ Script era ) =>
488496 Script era ->
489497 BS. ByteString
490498alonzoScriptPrefixTag = \ case
491- TimelockScript _ -> nativeMultiSigTag -- "\x00"
499+ NativeScript _ -> nativeMultiSigTag -- "\x00"
492500 PlutusScript plutusScript -> BS. singleton (withPlutusScript plutusScript plutusLanguageTag)
493501
494502instance ShelleyEraScript AlonzoEra where
@@ -555,7 +563,12 @@ instance AlonzoEraScript AlonzoEra where
555563 upgradePlutusPurposeAsIx =
556564 error " Impossible: No `PlutusScript` and `AlonzoEraScript` instances in the previous era"
557565
558- instance Eq (PlutusScript era ) => EqRaw (AlonzoScript era ) where
566+ instance
567+ ( Eq (PlutusScript era )
568+ , EqRaw (NativeScript era )
569+ ) =>
570+ EqRaw (AlonzoScript era )
571+ where
559572 eqRaw = eqAlonzoScriptRaw
560573
561574instance AlonzoEraScript era => ToJSON (AlonzoScript era ) where
@@ -598,7 +611,7 @@ instance AlonzoEraScript era => ToCBOR (AlonzoScript era) where
598611
599612encodeScript :: AlonzoEraScript era => AlonzoScript era -> Encode 'Open (AlonzoScript era )
600613encodeScript = \ case
601- TimelockScript i -> Sum TimelockScript 0 !> To i
614+ NativeScript i -> Sum NativeScript 0 !> To i
602615 PlutusScript plutusScript -> withPlutusScript plutusScript $ \ plutus@ (Plutus pb) ->
603616 case plutusSLanguage plutus of
604617 SPlutusV1 -> Sum (PlutusScript . fromJust . mkPlutusScript . Plutus @ 'PlutusV1) 1 !> To pb
@@ -614,7 +627,7 @@ instance AlonzoEraScript era => DecCBOR (Annotator (AlonzoScript era)) where
614627 {-# INLINE decodeAnnPlutus #-}
615628 decodeScript :: Word -> Decode 'Open (Annotator (AlonzoScript era ))
616629 decodeScript = \ case
617- 0 -> Ann (SumD TimelockScript ) <*! From
630+ 0 -> Ann (SumD NativeScript ) <*! From
618631 1 -> decodeAnnPlutus SPlutusV1
619632 2 -> decodeAnnPlutus SPlutusV2
620633 3 -> decodeAnnPlutus SPlutusV3
@@ -636,8 +649,12 @@ validScript pv script =
636649
637650-- | Check the equality of two underlying types, while ignoring their binary
638651-- representation, which `Eq` instance normally does. This is used for testing.
639- eqAlonzoScriptRaw :: Eq (PlutusScript era ) => AlonzoScript era -> AlonzoScript era -> Bool
640- eqAlonzoScriptRaw (TimelockScript t1) (TimelockScript t2) = eqTimelockRaw t1 t2
652+ eqAlonzoScriptRaw ::
653+ ( Eq (PlutusScript era )
654+ , EqRaw (NativeScript era )
655+ ) =>
656+ AlonzoScript era -> AlonzoScript era -> Bool
657+ eqAlonzoScriptRaw (NativeScript t1) (NativeScript t2) = eqRaw t1 t2
641658eqAlonzoScriptRaw (PlutusScript ps1) (PlutusScript ps2) = ps1 == ps2
642659eqAlonzoScriptRaw _ _ = False
643660
0 commit comments