@@ -16,13 +16,16 @@ import Hydra.Contract.Error (toErrorCode)
16
16
import Hydra.Contract.HeadTokens (headPolicyId )
17
17
import Hydra.Contract.Initial qualified as Initial
18
18
import Hydra.Contract.InitialError (InitialError (.. ))
19
+ import Hydra.Contract.Util (hydraHeadV1 )
19
20
import Hydra.Tx (CommitBlueprintTx (.. ), Party , mkHeadId )
20
21
import Hydra.Tx.Commit (commitTx )
21
22
import Hydra.Tx.Init (mkInitialOutput )
22
23
import Hydra.Tx.ScriptRegistry (registryUTxO )
23
24
import Hydra.Tx.Utils (verificationKeyToOnChainId )
25
+ import PlutusLedgerApi.Common (fromBuiltin )
24
26
import Test.Hydra.Tx.Fixture qualified as Fixture
25
- import Test.Hydra.Tx.Gen (genAddressInEra , genMintedOrBurnedValue , genScriptRegistry , genSigningKey , genUTxOAdaOnlyOfSize , genValue , genVerificationKey )
27
+ import Test.Hydra.Tx.Fixture qualified as Fixtures
28
+ import Test.Hydra.Tx.Gen (genAddressInEra , genScriptRegistry , genSigningKey , genUTxOAdaOnlyOfSize , genValue , genVerificationKey )
26
29
import Test.Hydra.Tx.Mutation (
27
30
Mutation (.. ),
28
31
SomeMutation (.. ),
@@ -178,3 +181,18 @@ genCommitMutation (tx, _utxo) =
178
181
aCommittedAddress = txOutAddress aCommittedTxOut
179
182
180
183
aCommittedOutputValue = txOutValue aCommittedTxOut
184
+
185
+ -- | Generates value such that:
186
+ -- - alters between policy id we use in test fixtures with a random one.
187
+ -- - mixing arbitrary token names with 'hydraHeadV1'
188
+ -- - excluding 0 for quantity to mimic minting/burning
189
+ genMintedOrBurnedValue :: Gen Value
190
+ genMintedOrBurnedValue = do
191
+ policyId <-
192
+ oneof
193
+ [ headPolicyId <$> arbitrary
194
+ , pure Fixtures. testPolicyId
195
+ ]
196
+ tokenName <- oneof [arbitrary, pure (AssetName $ fromBuiltin hydraHeadV1)]
197
+ quantity <- arbitrary `suchThat` (/= 0 )
198
+ pure $ fromList [(AssetId policyId tokenName, Quantity quantity)]
0 commit comments