cardano-ledger-allegra-1.9.0.0: Allegra ledger era that introduces time lock support.
Safe HaskellNone
LanguageHaskell2010

Cardano.Ledger.Allegra.Scripts

Synopsis

Documentation

getRequireSignatureTimelock ∷ ∀ {k} (era ∷ k). Timelock era → Maybe (KeyHash 'Witness) Source #

getRequireAllOfTimelock ∷ ∀ {k} (era ∷ k). Timelock era → Maybe (StrictSeq (Timelock era)) Source #

getRequireAnyOfTimelock ∷ ∀ {k} (era ∷ k). Timelock era → Maybe (StrictSeq (Timelock era)) Source #

getRequireMOfTimelock ∷ ∀ {k} (era ∷ k). Timelock era → Maybe (Int, StrictSeq (Timelock era)) Source #

getTimeStartTimelock ∷ ∀ {k} (era ∷ k). Timelock era → Maybe SlotNo Source #

getTimeExpireTimelock ∷ ∀ {k} (era ∷ k). Timelock era → Maybe SlotNo Source #

newtype Timelock (era ∷ k) Source #

Constructors

MkTimelock (MemoBytes (TimelockRaw era)) 

Instances

Instances details
Era era ⇒ DecCBOR (Annotator (Timelock era)) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

(Typeable era, Typeable k) ⇒ ToCBOR (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

toCBORTimelock era → Encoding Source #

encodedSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy (Timelock era) → Size Source #

encodedListSizeExpr ∷ (∀ t. ToCBOR t ⇒ Proxy t → Size) → Proxy [Timelock era] → Size Source #

Era era ⇒ EncCBOR (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

encCBORTimelock era → Encoding Source #

SafeToHash (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

EqRaw (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

eqRawTimelock era → Timelock era → Bool Source #

Memoized (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Associated Types

type RawType (Timelock era) 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type RawType (Timelock era) = TimelockRaw era
NFData (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

rnfTimelock era → () #

Generic (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Associated Types

type Rep (Timelock era) 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type Rep (Timelock era) = D1 ('MetaData "Timelock" "Cardano.Ledger.Allegra.Scripts" "cardano-ledger-allegra-1.9.0.0-inplace" 'True) (C1 ('MetaCons "MkTimelock" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MemoBytes (TimelockRaw era)))))

Methods

fromTimelock era → Rep (Timelock era) x #

toRep (Timelock era) x → Timelock era #

Show (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

showsPrecIntTimelock era → ShowS #

showTimelock era → String #

showList ∷ [Timelock era] → ShowS #

Eq (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

(==)Timelock era → Timelock era → Bool #

(/=)Timelock era → Timelock era → Bool #

Era era ⇒ MemPack (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

typeNameString Source #

packedByteCountTimelock era → Int Source #

packMTimelock era → Pack s () Source #

unpackMBuffer b ⇒ Unpack s b (Timelock era) Source #

Era era ⇒ NoThunks (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type RawType (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type RawType (Timelock era) = TimelockRaw era
type Rep (Timelock era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type Rep (Timelock era) = D1 ('MetaData "Timelock" "Cardano.Ledger.Allegra.Scripts" "cardano-ledger-allegra-1.9.0.0-inplace" 'True) (C1 ('MetaCons "MkTimelock" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MemoBytes (TimelockRaw era)))))

data TimelockRaw (era ∷ k) Source #

Instances

Instances details
Era era ⇒ DecCBOR (Annotator (TimelockRaw era)) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Era era ⇒ EncCBOR (TimelockRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

encCBORTimelockRaw era → Encoding Source #

NFData (TimelockRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

rnfTimelockRaw era → () #

Generic (TimelockRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Associated Types

type Rep (TimelockRaw era) 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

fromTimelockRaw era → Rep (TimelockRaw era) x #

toRep (TimelockRaw era) x → TimelockRaw era #

Show (TimelockRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

showsPrecIntTimelockRaw era → ShowS #

showTimelockRaw era → String #

showList ∷ [TimelockRaw era] → ShowS #

Eq (TimelockRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

(==)TimelockRaw era → TimelockRaw era → Bool #

(/=)TimelockRaw era → TimelockRaw era → Bool #

Era era ⇒ NoThunks (TimelockRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type Rep (TimelockRaw era) Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

inIntervalSlotNoValidityIntervalBool 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)

eqTimelockRaw ∷ ∀ {k} (era ∷ k). 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

Instances details
ToJSON ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

DecCBOR ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

EncCBOR ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

NFData ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Methods

rnfValidityInterval → () #

Generic ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Associated Types

type Rep ValidityInterval 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type Rep ValidityInterval = D1 ('MetaData "ValidityInterval" "Cardano.Ledger.Allegra.Scripts" "cardano-ledger-allegra-1.9.0.0-inplace" 'False) (C1 ('MetaCons "ValidityInterval" 'PrefixI 'True) (S1 ('MetaSel ('Just "invalidBefore") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictMaybe SlotNo)) :*: S1 ('MetaSel ('Just "invalidHereafter") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictMaybe SlotNo))))
Show ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Eq ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

Ord ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

NoThunks ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type Rep ValidityInterval Source # 
Instance details

Defined in Cardano.Ledger.Allegra.Scripts

type Rep ValidityInterval = D1 ('MetaData "ValidityInterval" "Cardano.Ledger.Allegra.Scripts" "cardano-ledger-allegra-1.9.0.0-inplace" 'False) (C1 ('MetaCons "ValidityInterval" 'PrefixI 'True) (S1 ('MetaSel ('Just "invalidBefore") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictMaybe SlotNo)) :*: S1 ('MetaSel ('Just "invalidHereafter") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StrictMaybe SlotNo))))

translateTimelock ∷ (Era era1, Era 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.

lteNegInftySlotNoStrictMaybe SlotNoBool Source #

less-than-equal comparison, where Nothing is negative infinity

ltePosInftyStrictMaybe SlotNoSlotNoBool Source #

less-than-equal comparison, where Nothing is positive infinity

invalidBeforeLLens' ValidityInterval (StrictMaybe SlotNo) Source #

Lens to access the invalidBefore field of a ValidityInterval as a 'StrictMaybe SlotNo'.

invalidHereAfterLLens' ValidityInterval (StrictMaybe SlotNo) Source #

Lens to access the invalidHereAfter field of a ValidityInterval as a 'StrictMaybe SlotNo'.

Orphan instances

EraScript AllegraEra Source #

Since Timelock scripts are a strictly backwards compatible extension of MultiSig scripts, we can use the same scriptPrefixTag tag here as we did for the ValidateScript instance in MultiSig

Instance details

ShelleyEraScript AllegraEra Source # 
Instance details