Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Timelock era where
- pattern RequireSignature ∷ Era era ⇒ KeyHash 'Witness (EraCrypto era) → Timelock era
- pattern RequireAllOf ∷ Era era ⇒ StrictSeq (Timelock era) → Timelock era
- pattern RequireAnyOf ∷ Era era ⇒ StrictSeq (Timelock era) → Timelock era
- pattern RequireMOf ∷ Era era ⇒ Int → StrictSeq (Timelock era) → Timelock era
- pattern RequireTimeExpire ∷ Era era ⇒ SlotNo → Timelock era
- pattern RequireTimeStart ∷ Era era ⇒ SlotNo → Timelock era
- data TimelockRaw era
- pattern TimelockConstr ∷ MemoBytes TimelockRaw era → Timelock era
- inInterval ∷ SlotNo → ValidityInterval → Bool
- showTimelock ∷ Era era ⇒ Timelock era → String
- evalTimelock ∷ Era era ⇒ Set (KeyHash 'Witness (EraCrypto era)) → ValidityInterval → Timelock era → Bool
- eqTimelockRaw ∷ Timelock era → Timelock era → Bool
- data ValidityInterval = ValidityInterval {}
- encodeVI ∷ ValidityInterval → Encode ('Closed 'Dense) ValidityInterval
- decodeVI ∷ Decode ('Closed 'Dense) ValidityInterval
- translateTimelock ∷ ∀ era1 era2. (Era era1, Era era2, EraCrypto era1 ~ EraCrypto era2) ⇒ Timelock era1 → Timelock era2
Documentation
data Timelock era where Source #
pattern RequireSignature ∷ Era era ⇒ KeyHash 'Witness (EraCrypto era) → Timelock era | |
pattern RequireAllOf ∷ Era era ⇒ StrictSeq (Timelock era) → Timelock era | |
pattern RequireAnyOf ∷ Era era ⇒ StrictSeq (Timelock era) → Timelock era | |
pattern RequireMOf ∷ Era era ⇒ Int → StrictSeq (Timelock era) → Timelock era | |
pattern RequireTimeExpire ∷ Era era ⇒ SlotNo → Timelock era | |
pattern RequireTimeStart ∷ Era era ⇒ SlotNo → Timelock era |
Instances
data TimelockRaw era Source #
Instances
pattern TimelockConstr ∷ MemoBytes TimelockRaw era → Timelock era Source #
inInterval ∷ SlotNo → ValidityInterval → Bool Source #
Test if a slot is in the Validity interval. Recall that a ValidityInterval is a half Open interval, that is why we use (slot < top)
evalTimelock ∷ Era era ⇒ Set (KeyHash 'Witness (EraCrypto era)) → ValidityInterval → Timelock era → Bool Source #
eqTimelockRaw ∷ Timelock era → Timelock era → Bool Source #
Check the equality of two underlying types, while ignoring their binary
representation, which Eq
instance normally does. This is used for testing.
data ValidityInterval Source #
ValidityInterval is a half open interval. Closed on the bottom, open on the top. A SNothing on the bottom is negative infinity, and a SNothing on the top is positive infinity
Instances
translateTimelock ∷ ∀ era1 era2. (Era era1, Era era2, EraCrypto era1 ~ EraCrypto era2) ⇒ Timelock era1 → Timelock era2 Source #
This function deconstructs and then reconstructs the timelock script to prove the compiler that we can arbirarily switch out the eras as long as the cryptos for both eras are the same.
Orphan instances
Crypto c ⇒ EraScript (AllegraEra c) Source # | Since Timelock scripts are a strictly backwards compatible extension of
MultiSig scripts, we can use the same |
type Script (AllegraEra c) = (r ∷ Type) Source # type NativeScript (AllegraEra c) = (r ∷ Type) Source # upgradeScript ∷ Script (PreviousEra (AllegraEra c)) → Script (AllegraEra c) Source # scriptPrefixTag ∷ Script (AllegraEra c) → ByteString Source # getNativeScript ∷ Script (AllegraEra c) → Maybe (NativeScript (AllegraEra c)) Source # fromNativeScript ∷ NativeScript (AllegraEra c) → Script (AllegraEra c) Source # |