cooked-validators
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cooked.Tweak.Labels

Description

This module provides tweaks operating on transaction labels

Synopsis

Documentation

labelled :: (LabelConstrs lbl, MonadTweak m) => lbl -> m a -> m a Source #

Apply a tweak to a given transaction if it has a specific label. Fails if it does not.

someEndpoint = do
  ...
  validateTxSkel' txSkelTemplate
     { txSkelLabels =
        [ "InitialMinting"
        , "AuctionWorkflow"
        , label SomeLabelType]
     }

someTest = someEndpoint & eveywhere (labelled SomeLabelType someTweak)
anotherTest = someEndpoint & somewhere (labelled SomeLabelType someTweak)

addLabelTweak :: (LabelConstrs lbl, MonadTweak m) => lbl -> m () Source #

Adds a label to a TxSkel.

removeLabelTweak :: (LabelConstrs lbl, MonadTweak m) => lbl -> m () Source #

Removes a label from a TxSkel when possible, fails otherwise

hasLabelTweak :: (LabelConstrs lbl, MonadTweak m) => lbl -> m Bool Source #

Checks if a given label is present in the TxSkel

ensureLabelTweak :: (LabelConstrs lbl, MonadTweak m) => lbl -> m () Source #

Ensures a given label is present in the TxSkel

labelled' :: MonadTweak m => Text -> m a -> m a Source #

labelled specialised to Text labels

someEndpoint = do
  ...
  validateTxSkel' txSkelTemplate
     { txSkelLabels =
        [ "InitialMinting"
        , "AuctionWorkflow"
        , "Spending"
        , label SomeLabelType]
     }

someTest = someEndpoint & somewhere (labelled' "Spending" doubleSatAttack)