Safe Haskell | None |
---|---|
Language | Haskell2010 |
Cardano.Ledger.ShelleyMA.Timelocks
Synopsis
- data Timelock crypto where
- pattern RequireSignature :: Crypto crypto => KeyHash 'Witness crypto -> Timelock crypto
- pattern RequireAllOf :: Crypto crypto => StrictSeq (Timelock crypto) -> Timelock crypto
- pattern RequireAnyOf :: Crypto crypto => StrictSeq (Timelock crypto) -> Timelock crypto
- pattern RequireMOf :: Crypto crypto => Int -> StrictSeq (Timelock crypto) -> Timelock crypto
- pattern RequireTimeExpire :: Crypto crypto => SlotNo -> Timelock crypto
- pattern RequireTimeStart :: Crypto crypto => SlotNo -> Timelock crypto
- pattern TimelockConstr :: MemoBytes (TimelockRaw crypto) -> Timelock crypto
- inInterval :: SlotNo -> ValidityInterval -> Bool
- hashTimelockScript :: Crypto crypto => Timelock crypto -> ScriptHash crypto
- showTimelock :: Crypto crypto => Timelock crypto -> String
- validateTimelock :: forall era. (TxBodyConstraints era, HasField "vldt" (TxBody era) ValidityInterval, ToCBOR (AuxiliaryData era)) => Timelock (Crypto era) -> Tx era -> Bool
- data ValidityInterval = ValidityInterval {
- invalidBefore :: !(StrictMaybe SlotNo)
- invalidHereafter :: !(StrictMaybe SlotNo)
- encodeVI :: ValidityInterval -> Encode ('Closed 'Dense) ValidityInterval
- decodeVI :: Decode ('Closed 'Dense) ValidityInterval
- translate :: Crypto crypto => MultiSig crypto -> Timelock crypto
Documentation
data Timelock crypto where Source #
Bundled Patterns
pattern RequireSignature :: Crypto crypto => KeyHash 'Witness crypto -> Timelock crypto | |
pattern RequireAllOf :: Crypto crypto => StrictSeq (Timelock crypto) -> Timelock crypto | |
pattern RequireAnyOf :: Crypto crypto => StrictSeq (Timelock crypto) -> Timelock crypto | |
pattern RequireMOf :: Crypto crypto => Int -> StrictSeq (Timelock crypto) -> Timelock crypto | |
pattern RequireTimeExpire :: Crypto crypto => SlotNo -> Timelock crypto | |
pattern RequireTimeStart :: Crypto crypto => SlotNo -> Timelock crypto |
Instances
Eq (Timelock crypto) Source # | |
Ord (Timelock crypto) Source # | |
Defined in Cardano.Ledger.ShelleyMA.Timelocks Methods compare :: Timelock crypto -> Timelock crypto -> Ordering # (<) :: Timelock crypto -> Timelock crypto -> Bool # (<=) :: Timelock crypto -> Timelock crypto -> Bool # (>) :: Timelock crypto -> Timelock crypto -> Bool # (>=) :: Timelock crypto -> Timelock crypto -> Bool # max :: Timelock crypto -> Timelock crypto -> Timelock crypto # min :: Timelock crypto -> Timelock crypto -> Timelock crypto # | |
Show (Timelock crypto) Source # | |
Generic (Timelock crypto) Source # | |
NFData (Timelock crypto) Source # | |
Defined in Cardano.Ledger.ShelleyMA.Timelocks | |
Typeable crypto => ToCBOR (Timelock crypto) Source # | |
Defined in Cardano.Ledger.ShelleyMA.Timelocks | |
Crypto crypto => FromCBOR (Annotator (Timelock crypto)) Source # | |
Typeable crypto => NoThunks (Timelock crypto) Source # | |
type Rep (Timelock crypto) Source # | |
Defined in Cardano.Ledger.ShelleyMA.Timelocks |
pattern TimelockConstr :: MemoBytes (TimelockRaw crypto) -> Timelock crypto 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)
hashTimelockScript :: Crypto crypto => Timelock crypto -> ScriptHash crypto Source #
Hashes native timelock script.
validateTimelock :: forall era. (TxBodyConstraints era, HasField "vldt" (TxBody era) ValidityInterval, ToCBOR (AuxiliaryData era)) => Timelock (Crypto era) -> Tx era -> Bool Source #
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
Constructors
ValidityInterval | |
Fields
|
Instances
encodeVI :: ValidityInterval -> Encode ('Closed 'Dense) ValidityInterval Source #