cooked-validators
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cooked.Attack.ValidityTampering

Description

This module defines an attack tampering on the validity interval of transactions.

Synopsis

Validity tampering params

data ValidityTamperingParams b f k is Source #

Parameters of the validity tampering attack.

Constructors

ValidityTamperingParams 

Fields

lowerExtendedValidityTamperingParams :: (Maybe Slot -> f (Maybe Slot)) -> ValidityTamperingParams (Maybe Slot) f A_Lens NoIx Source #

Modifies the extended (possibly infinite) lower bound of the validity interval with a given tampering function.

lowerStrictValidityTamperingParams :: (Slot -> f Slot) -> ValidityTamperingParams Slot f An_AffineTraversal NoIx Source #

Modifies the strict lower bound of the validity interval with a given tampering function, failing if it is infinite.

upperExtendedValidityTamperingParams :: (Maybe Slot -> f (Maybe Slot)) -> ValidityTamperingParams (Maybe Slot) f A_Lens NoIx Source #

Modifies the extended (possibly infinite) upper bound of the validity interval with a given tampering function.

upperStrictValidityTamperingParams :: (Slot -> f Slot) -> ValidityTamperingParams Slot f An_AffineTraversal NoIx Source #

Modifies the strict upper bound of the validity interval with a given tampering function, failing if it is infinite.

bothExtendedValidityTamperingParams :: (Maybe Slot -> f (Maybe Slot)) -> ValidityTamperingParams (Maybe Slot) f A_Traversal NoIx Source #

Modifies both the extended (possibly infinite) lower and upper bounds of the validity interval with a given tampering function.

bothStrictValidityTamperingParams :: (Slot -> f Slot) -> ValidityTamperingParams Slot f A_Traversal NoIx Source #

Modifies both the strict lower and upper bounds of the validity interval with a given tampering function, failing if both are infinite.

intervalValidityTamperingParams :: (SlotRange -> f SlotRange) -> ValidityTamperingParams SlotRange f An_Iso NoIx Source #

Modifies the full validity interval directly

Validity tampering label

newtype ValidityTamperingLabel Source #

A label added to a TxSkel on which a tweak tampering the validity interval has been applied. The label contains the interval as it was before being tampered with.

Validity tampering attack

validityTamperingAttack :: (Members '[Tweak, NonDet] effs, Is k A_Traversal, Foldable f, Alternative f) => ValidityTamperingParams a f k is -> Sem effs SlotRange Source #

The validity tampering attack attempts to tamper with the validity interval of a transaction following a given set of parameters. This returns the validity interval of the transaction before modification.