@@ -136,13 +136,13 @@ instance ToJSON ValidityInterval where
136136-- ==================================================================
137137
138138data TimelockRaw era
139- = Signature ! (KeyHash 'Witness)
140- | AllOf ! (StrictSeq (Timelock era )) -- NOTE that Timelock and
141- | AnyOf ! (StrictSeq (Timelock era )) -- TimelockRaw are mutually recursive.
142- | MOfN ! Int ! (StrictSeq (Timelock era ))
143- | -- Note that the Int may be negative in which case (MOfN (-2) [..]) is always True
144- TimeStart ! SlotNo -- The start time
145- | TimeExpire ! SlotNo -- The time it expires
139+ = TimelockSignature ! (KeyHash 'Witness)
140+ | TimelockAllOf ! (StrictSeq (Timelock era )) -- NOTE that Timelock and
141+ | TimelockAnyOf ! (StrictSeq (Timelock era )) -- TimelockRaw are mutually recursive.
142+ | TimelockMOf ! Int ! (StrictSeq (Timelock era ))
143+ | -- Note that the Int may be negative in which case (TimelockMOf (-2) [..]) is always True
144+ TimelockTimeStart ! SlotNo -- The start time
145+ | TimelockTimeExpire ! SlotNo -- The time it expires
146146 deriving (Eq , Generic , NFData )
147147
148148class ShelleyEraScript era => AllegraEraScript era where
@@ -169,48 +169,48 @@ translateTimelock ::
169169translateTimelock (MkTimelock (Memo tl bs)) =
170170 let rewrap rtl = MkTimelock $ mkMemoBytes rtl (fromStrict $ fromShort bs)
171171 in case tl of
172- Signature s -> rewrap $ Signature s
173- AllOf l -> rewrap . AllOf $ translateTimelock <$> l
174- AnyOf l -> rewrap . AnyOf $ translateTimelock <$> l
175- MOfN n l -> rewrap $ MOfN n (translateTimelock <$> l)
176- TimeStart x -> rewrap $ TimeStart x
177- TimeExpire x -> rewrap $ TimeExpire x
172+ TimelockSignature s -> rewrap $ TimelockSignature s
173+ TimelockAllOf l -> rewrap . TimelockAllOf $ translateTimelock <$> l
174+ TimelockAnyOf l -> rewrap . TimelockAnyOf $ translateTimelock <$> l
175+ TimelockMOf n l -> rewrap $ TimelockMOf n (translateTimelock <$> l)
176+ TimelockTimeStart x -> rewrap $ TimelockTimeStart x
177+ TimelockTimeExpire x -> rewrap $ TimelockTimeExpire x
178178
179179-- These coding choices are chosen so that a MultiSig script
180180-- can be deserialised as a Timelock script
181181
182182instance Era era => EncCBOR (TimelockRaw era ) where
183183 encCBOR =
184184 encode . \ case
185- Signature hash -> Sum Signature 0 !> To hash
186- AllOf xs -> Sum AllOf 1 !> To xs
187- AnyOf xs -> Sum AnyOf 2 !> To xs
188- MOfN m xs -> Sum MOfN 3 !> To m !> To xs
189- TimeStart m -> Sum TimeStart 4 !> To m
190- TimeExpire m -> Sum TimeExpire 5 !> To m
185+ TimelockSignature hash -> Sum TimelockSignature 0 !> To hash
186+ TimelockAllOf xs -> Sum TimelockAllOf 1 !> To xs
187+ TimelockAnyOf xs -> Sum TimelockAnyOf 2 !> To xs
188+ TimelockMOf m xs -> Sum TimelockMOf 3 !> To m !> To xs
189+ TimelockTimeStart m -> Sum TimelockTimeStart 4 !> To m
190+ TimelockTimeExpire m -> Sum TimelockTimeExpire 5 !> To m
191191
192192-- This instance allows us to derive instance DecCBOR (Annotator (Timelock era)).
193193-- Since Timelock is a newtype around (Memo (Timelock era)).
194194instance Era era => DecCBOR (Annotator (TimelockRaw era )) where
195195 decCBOR = decode (Summands " TimelockRaw" decRaw)
196196 where
197197 decRaw :: Word -> Decode 'Open (Annotator (TimelockRaw era ))
198- decRaw 0 = Ann (SumD Signature <! From )
199- decRaw 1 = Ann (SumD AllOf ) <*! D (sequence <$> decCBOR)
200- decRaw 2 = Ann (SumD AnyOf ) <*! D (sequence <$> decCBOR)
201- decRaw 3 = Ann (SumD MOfN ) <*! Ann From <*! D (sequence <$> decCBOR)
202- decRaw 4 = Ann (SumD TimeStart <! From )
203- decRaw 5 = Ann (SumD TimeExpire <! From )
198+ decRaw 0 = Ann (SumD TimelockSignature <! From )
199+ decRaw 1 = Ann (SumD TimelockAllOf ) <*! D (sequence <$> decCBOR)
200+ decRaw 2 = Ann (SumD TimelockAnyOf ) <*! D (sequence <$> decCBOR)
201+ decRaw 3 = Ann (SumD TimelockMOf ) <*! Ann From <*! D (sequence <$> decCBOR)
202+ decRaw 4 = Ann (SumD TimelockTimeStart <! From )
203+ decRaw 5 = Ann (SumD TimelockTimeExpire <! From )
204204 decRaw n = Invalid n
205205
206206instance Era era => DecCBOR (TimelockRaw era ) where
207207 decCBOR = decode $ Summands " TimelockRaw" $ \ case
208- 0 -> SumD Signature <! From
209- 1 -> SumD AllOf <! From
210- 2 -> SumD AnyOf <! From
211- 3 -> SumD MOfN <! From <! From
212- 4 -> SumD TimeStart <! From
213- 5 -> SumD TimeExpire <! From
208+ 0 -> SumD TimelockSignature <! From
209+ 1 -> SumD TimelockAllOf <! From
210+ 2 -> SumD TimelockAnyOf <! From
211+ 3 -> SumD TimelockMOf <! From <! From
212+ 4 -> SumD TimelockTimeStart <! From
213+ 5 -> SumD TimelockTimeExpire <! From
214214 n -> Invalid n
215215
216216-- =================================================================
@@ -310,39 +310,39 @@ pattern RequireTimeStart mslot <- (getTimeStart -> Just mslot)
310310 #-}
311311
312312mkRequireSignatureTimelock :: forall era . Era era => KeyHash 'Witness -> Timelock era
313- mkRequireSignatureTimelock = mkMemoizedEra @ era . Signature
313+ mkRequireSignatureTimelock = mkMemoizedEra @ era . TimelockSignature
314314getRequireSignatureTimelock :: Timelock era -> Maybe (KeyHash 'Witness)
315- getRequireSignatureTimelock (MkTimelock (Memo (Signature kh) _)) = Just kh
315+ getRequireSignatureTimelock (MkTimelock (Memo (TimelockSignature kh) _)) = Just kh
316316getRequireSignatureTimelock _ = Nothing
317317
318318mkRequireAllOfTimelock :: forall era . Era era => StrictSeq (Timelock era ) -> Timelock era
319- mkRequireAllOfTimelock = mkMemoizedEra @ era . AllOf
319+ mkRequireAllOfTimelock = mkMemoizedEra @ era . TimelockAllOf
320320getRequireAllOfTimelock :: Timelock era -> Maybe (StrictSeq (Timelock era ))
321- getRequireAllOfTimelock (MkTimelock (Memo (AllOf ms) _)) = Just ms
321+ getRequireAllOfTimelock (MkTimelock (Memo (TimelockAllOf ms) _)) = Just ms
322322getRequireAllOfTimelock _ = Nothing
323323
324324mkRequireAnyOfTimelock :: forall era . Era era => StrictSeq (Timelock era ) -> Timelock era
325- mkRequireAnyOfTimelock = mkMemoizedEra @ era . AnyOf
325+ mkRequireAnyOfTimelock = mkMemoizedEra @ era . TimelockAnyOf
326326getRequireAnyOfTimelock :: Timelock era -> Maybe (StrictSeq (Timelock era ))
327- getRequireAnyOfTimelock (MkTimelock (Memo (AnyOf ms) _)) = Just ms
327+ getRequireAnyOfTimelock (MkTimelock (Memo (TimelockAnyOf ms) _)) = Just ms
328328getRequireAnyOfTimelock _ = Nothing
329329
330330mkRequireMOfTimelock :: forall era . Era era => Int -> StrictSeq (Timelock era ) -> Timelock era
331- mkRequireMOfTimelock n = mkMemoizedEra @ era . MOfN n
331+ mkRequireMOfTimelock n = mkMemoizedEra @ era . TimelockMOf n
332332getRequireMOfTimelock :: Timelock era -> Maybe (Int , StrictSeq (Timelock era ))
333- getRequireMOfTimelock (MkTimelock (Memo (MOfN n ms) _)) = Just (n, ms)
333+ getRequireMOfTimelock (MkTimelock (Memo (TimelockMOf n ms) _)) = Just (n, ms)
334334getRequireMOfTimelock _ = Nothing
335335
336336mkTimeStartTimelock :: forall era . Era era => SlotNo -> Timelock era
337- mkTimeStartTimelock = mkMemoizedEra @ era . TimeStart
337+ mkTimeStartTimelock = mkMemoizedEra @ era . TimelockTimeStart
338338getTimeStartTimelock :: Timelock era -> Maybe SlotNo
339- getTimeStartTimelock (MkTimelock (Memo (TimeStart mslot) _)) = Just mslot
339+ getTimeStartTimelock (MkTimelock (Memo (TimelockTimeStart mslot) _)) = Just mslot
340340getTimeStartTimelock _ = Nothing
341341
342342mkTimeExpireTimelock :: forall era . Era era => SlotNo -> Timelock era
343- mkTimeExpireTimelock = mkMemoizedEra @ era . TimeExpire
343+ mkTimeExpireTimelock = mkMemoizedEra @ era . TimelockTimeExpire
344344getTimeExpireTimelock :: Timelock era -> Maybe SlotNo
345- getTimeExpireTimelock (MkTimelock (Memo (TimeExpire mslot) _)) = Just mslot
345+ getTimeExpireTimelock (MkTimelock (Memo (TimelockTimeExpire mslot) _)) = Just mslot
346346getTimeExpireTimelock _ = Nothing
347347
348348-- =================================================================
@@ -413,10 +413,10 @@ eqTimelockRaw t1 t2 = go (getMemoRawType t1) (getMemoRawType t2)
413413 seqEq Empty Empty = True
414414 seqEq (x :<| xs) (y :<| ys) = eqTimelockRaw x y && seqEq xs ys
415415 seqEq _ _ = False
416- go (Signature kh1) (Signature kh2) = kh1 == kh2
417- go (AllOf ts1) (AllOf ts2) = seqEq ts1 ts2
418- go (AnyOf ts1) (AnyOf ts2) = seqEq ts1 ts2
419- go (MOfN n1 ts1) (MOfN n2 ts2) = n1 == n2 && seqEq ts1 ts2
420- go (TimeStart sn1) (TimeStart sn2) = sn1 == sn2
421- go (TimeExpire sn1) (TimeExpire sn2) = sn1 == sn2
416+ go (TimelockSignature kh1) (TimelockSignature kh2) = kh1 == kh2
417+ go (TimelockAllOf ts1) (TimelockAllOf ts2) = seqEq ts1 ts2
418+ go (TimelockAnyOf ts1) (TimelockAnyOf ts2) = seqEq ts1 ts2
419+ go (TimelockMOf n1 ts1) (TimelockMOf n2 ts2) = n1 == n2 && seqEq ts1 ts2
420+ go (TimelockTimeStart sn1) (TimelockTimeStart sn2) = sn1 == sn2
421+ go (TimelockTimeExpire sn1) (TimelockTimeExpire sn2) = sn1 == sn2
422422 go _ _ = False
0 commit comments