Skip to content

Commit 72c1908

Browse files
committed
bye Tweak/Labels
1 parent 5a68389 commit 72c1908

6 files changed

Lines changed: 53 additions & 108 deletions

File tree

cooked-validators.cabal

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ library
7979
Cooked.Tweak.Guard
8080
Cooked.Tweak.Inputs
8181
Cooked.Tweak.Insertion
82-
Cooked.Tweak.Labels
8382
Cooked.Tweak.Mint
8483
Cooked.Tweak.Modification
8584
Cooked.Tweak.Outputs

src/Cooked/Tweak.hs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ module Cooked.Tweak (module X) where
66
import Cooked.Tweak.Common as X
77
import Cooked.Tweak.Inputs as X
88
import Cooked.Tweak.Insertion as X
9-
import Cooked.Tweak.Labels as X
109
import Cooked.Tweak.Mint as X
1110
import Cooked.Tweak.Modification as X
1211
import Cooked.Tweak.Outputs as X

src/Cooked/Tweak/Guard.hs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ module Cooked.Tweak.Guard
33
assertPredTweak,
44
guardTweak,
55
guardPredTweak,
6+
labelled,
7+
labelled',
68
)
79
where
810

911
import Control.Monad
1012
import Cooked.Skeleton
1113
import Cooked.Tweak.Common
14+
import Data.Text (Text)
1215
import Optics.Core
1316
import Polysemy
1417
import Polysemy.NonDet
@@ -47,3 +50,48 @@ guardPredTweak ::
4750
(a -> Bool) ->
4851
Sem effs ()
4952
guardPredTweak optic p = assertPredTweak optic p >>= guard
53+
54+
-- | Apply a tweak to a given transaction if it has a specific label. Fails if
55+
-- it does not.
56+
--
57+
-- >
58+
-- > someEndpoint = do
59+
-- > ...
60+
-- > validateTxSkel' txSkelTemplate
61+
-- > { txSkelLabels =
62+
-- > [ TxSkelLabel "InitialMinting"
63+
-- > , TxSkelLabel "AuctionWorkflow"
64+
-- > , TxSkelLabel SomeLabelType]
65+
-- > }
66+
-- >
67+
-- > someTest = someEndpoint & eveywhere (labelled SomeLabelType someTweak)
68+
-- > anotherTest = someEndpoint & somewhere (labelled SomeLabelType someTweak)
69+
labelled ::
70+
( LabelConstrs lbl,
71+
Members '[Tweak, NonDet] effs
72+
) =>
73+
lbl ->
74+
Sem effs a ->
75+
Sem effs a
76+
labelled lbl = (guardTweak (txSkelLabelsL % at (TxSkelLabel lbl) % _Just) >>)
77+
78+
-- | `labelled` specialised to Text labels
79+
--
80+
-- >
81+
-- > someEndpoint = do
82+
-- > ...
83+
-- > validateTxSkel' txSkelTemplate
84+
-- > { txSkelLabels =
85+
-- > [ TxSkelLabel "InitialMinting"
86+
-- > , TxSkelLabel "AuctionWorkflow"
87+
-- > , TxSkelLabel "Spending"
88+
-- > , TxSkelLabel SomeLabelType]
89+
-- > }
90+
-- >
91+
-- > someTest = someEndpoint & somewhere (labelled' "Spending" doubleSatAttack)
92+
labelled' ::
93+
(Members '[Tweak, NonDet] effs) =>
94+
Text ->
95+
Sem effs a ->
96+
Sem effs a
97+
labelled' = labelled

src/Cooked/Tweak/Insertion.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ insertInTweak ::
8383
a ->
8484
Sem effs ()
8585
insertInTweak (castOptic @A_Traversal -> optic) a = do
86-
guardTweak $ optic % contains a % filtered not
86+
guardTweak $ optic % at a % _Nothing
8787
setTweak (optic % contains a) True
8888

8989
-- * Inserting elements in maps

src/Cooked/Tweak/Labels.hs

Lines changed: 0 additions & 102 deletions
This file was deleted.

tests/Spec/Tweak/Labels.hs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module Spec.Tweak.Labels where
22

33
import Control.Monad
44
import Cooked
5+
import Cooked.Tweak.Guard
56
import Data.Set qualified as Set
67
import Data.Text (Text)
78
import Optics.Core
@@ -34,7 +35,7 @@ payments = do
3435
labelAmountTweak :: StagedTweak ()
3536
labelAmountTweak = do
3637
[target] <- viewAllTweak (txSkelOutputsL % _head % txSkelOutValueL % valueLovelaceL)
37-
addLabelTweak $ Api.getLovelace target
38+
insertInTweak txSkelLabelsL $ TxSkelLabel $ Api.getLovelace target
3839

3940
labelNameTweak :: StagedTweak ()
4041
labelNameTweak = do
@@ -47,8 +48,8 @@ labelNameTweak = do
4748
% userTypedPubKeyAT @Wallet
4849
)
4950
case target of
50-
[t] | t == alice -> addLabelTweak @Text "Alice"
51-
[t] | t == bob -> addLabelTweak @Text "Bob"
51+
[t] | t == alice -> insertInTweak txSkelLabelsL $ TxSkelLabel @Text "Alice"
52+
[t] | t == bob -> insertInTweak txSkelLabelsL $ TxSkelLabel @Text "Bob"
5253
_ -> mzero
5354

5455
labelNames :: StagedMockChain ()

0 commit comments

Comments
 (0)