module Convex.ThreatModel.All where
import Convex.ThreatModel (ThreatModel, getThreatModelName)
import Convex.ThreatModel.DatumBloat (datumByteBloatAttack, datumListBloatAttack)
import Convex.ThreatModel.DoubleSatisfaction (doubleSatisfaction)
import Convex.ThreatModel.DuplicateListEntry (duplicateListEntryAttack)
import Convex.ThreatModel.InputDuplication (inputDuplication)
import Convex.ThreatModel.InvalidDatumIndex (invalidDatumIndexAttack)
import Convex.ThreatModel.LargeData (largeDataAttack)
import Convex.ThreatModel.LargeValue (largeValueAttack)
import Convex.ThreatModel.MissingOutputDatum (missingOutputDatumAttack)
import Convex.ThreatModel.MutualExclusion (mutualExclusionAttack)
import Convex.ThreatModel.NegativeInteger (negativeIntegerAttack)
import Convex.ThreatModel.OutputDatumHashMissing (outputDatumHashMissingAttack)
import Convex.ThreatModel.RedeemerAssetSubstitution (redeemerAssetSubstitution)
import Convex.ThreatModel.SelfReferenceInjection (selfReferenceInjection)
import Convex.ThreatModel.SignatoryRemoval (signatoryRemoval)
import Convex.ThreatModel.TimeBoundManipulation (timeBoundManipulation)
import Convex.ThreatModel.TokenForgery (simpleAlwaysSucceedsMintingPolicyV2, simpleTestAssetName, tokenForgeryAttack)
import Convex.ThreatModel.UnprotectedScriptOutput (unprotectedScriptOutput)
import Convex.ThreatModel.ValueUnderpayment (valueUnderpaymentAttack)
import Data.Maybe (mapMaybe)
allThreatModels :: [ThreatModel ()]
allThreatModels :: [ThreatModel ()]
allThreatModels =
[ ThreatModel ()
datumListBloatAttack
, ThreatModel ()
datumByteBloatAttack
, ThreatModel ()
doubleSatisfaction
, ThreatModel ()
duplicateListEntryAttack
, ThreatModel ()
inputDuplication
, ThreatModel ()
invalidDatumIndexAttack
, ThreatModel ()
largeDataAttack
, ThreatModel ()
largeValueAttack
, ThreatModel ()
missingOutputDatumAttack
, ThreatModel ()
mutualExclusionAttack
, ThreatModel ()
negativeIntegerAttack
, ThreatModel ()
outputDatumHashMissingAttack
, ThreatModel ()
redeemerAssetSubstitution
, ThreatModel ()
selfReferenceInjection
, ThreatModel ()
signatoryRemoval
, ThreatModel ()
timeBoundManipulation
, PlutusScript PlutusScriptV2 -> AssetName -> ThreatModel ()
forall lang.
IsPlutusScriptInEra lang =>
PlutusScript lang -> AssetName -> ThreatModel ()
tokenForgeryAttack PlutusScript PlutusScriptV2
simpleAlwaysSucceedsMintingPolicyV2 AssetName
simpleTestAssetName
, ThreatModel ()
unprotectedScriptOutput
, ThreatModel ()
valueUnderpaymentAttack
]
allThreatModelsNames :: [String]
allThreatModelsNames :: [String]
allThreatModelsNames = (ThreatModel () -> Maybe String) -> [ThreatModel ()] -> [String]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe ThreatModel () -> Maybe String
forall a. ThreatModel a -> Maybe String
getThreatModelName [ThreatModel ()]
allThreatModels