Skip to content

Commit eca6268

Browse files
committed
Fix generators of deposit/increment/recover txs
1 parent 8319f03 commit eca6268

File tree

1 file changed

+15
-13
lines changed
  • hydra-node/src/Hydra/Chain/Direct

1 file changed

+15
-13
lines changed

hydra-node/src/Hydra/Chain/Direct/State.hs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ import Hydra.Data.ContestationPeriod qualified as OnChain
7272
import Hydra.Data.Party qualified as OnChain
7373
import Hydra.Ledger.Cardano (adjustUTxO)
7474
import Hydra.Ledger.Cardano.Evaluate (genPointInTimeBefore, genValidityBoundsFromContestationPeriod, slotLength, systemStart)
75-
import Hydra.Ledger.Cardano.Time (slotNoFromUTCTime)
75+
import Hydra.Ledger.Cardano.Time (slotNoFromUTCTime, slotNoToUTCTime)
7676
import Hydra.Plutus (commitValidatorScript, depositValidatorScript, initialValidatorScript)
7777
import Hydra.Tx (
7878
CommitBlueprintTx (..),
@@ -130,8 +130,7 @@ import Test.Hydra.Tx.Gen (
130130
genUTxOAdaOnlyOfSize,
131131
genVerificationKey,
132132
)
133-
import Test.QuickCheck (choose, frequency, oneof, suchThat, vector)
134-
import Test.QuickCheck.Gen (elements)
133+
import Test.QuickCheck (choose, chooseEnum, elements, frequency, oneof, suchThat, vector)
135134

136135
-- | A class for accessing the known 'UTxO' set in a type. This is useful to get
137136
-- all the relevant UTxO for resolving transaction inputs.
@@ -463,6 +462,7 @@ increment ::
463462
ConfirmedSnapshot Tx ->
464463
-- | Deposited TxId
465464
TxId ->
465+
-- | Valid until, must be before deadline.
466466
SlotNo ->
467467
Either IncrementTxError Tx
468468
increment ctx spendableUTxO headId headParameters incrementingSnapshot depositTxId upperValiditySlot = do
@@ -1138,20 +1138,21 @@ genDepositTx numParties = do
11381138
ctx <- genHydraContextFor numParties
11391139
utxo <- genUTxOAdaOnlyOfSize 1 `suchThat` (not . null)
11401140
(_, st@OpenState{headId}) <- genStOpen ctx
1141-
deadline <- arbitrary
1142-
validBefore <- arbitrary
1143-
let tx = depositTx (ctxNetworkId ctx) headId (mkSimpleBlueprintTx utxo) validBefore deadline
1141+
-- NOTE: Not too high so we can use chooseEnum (which goes through Int) here and in other generators
1142+
slot <- chooseEnum (0, 1_000_000)
1143+
slotsUntilDeadline <- chooseEnum (0, 86400)
1144+
let deadline = slotNoToUTCTime systemStart slotLength (slot + slotsUntilDeadline)
1145+
let tx = depositTx (ctxNetworkId ctx) headId (mkSimpleBlueprintTx utxo) slot deadline
11441146
pure (ctx, st, utxo <> utxoFromTx tx, tx)
11451147

11461148
genRecoverTx ::
11471149
Gen (UTxO, Tx)
11481150
genRecoverTx = do
11491151
(_, _, depositedUTxO, txDeposit) <- genDepositTx maximumNumberOfParties
1150-
let DepositObservation{deposited, deadline} =
1151-
fromJust $ observeDepositTx testNetworkId txDeposit
1152-
let slotNo = slotNoFromUTCTime systemStart slotLength deadline
1153-
slotNo' <- arbitrary
1154-
let tx = recoverTx (getTxId $ getTxBody txDeposit) deposited (slotNo + slotNo')
1152+
let DepositObservation{deposited, deadline} = fromJust $ observeDepositTx testNetworkId txDeposit
1153+
let deadlineSlot = slotNoFromUTCTime systemStart slotLength deadline
1154+
slotAfterDeadline <- chooseEnum (deadlineSlot, deadlineSlot + 86400)
1155+
let tx = recoverTx (getTxId $ getTxBody txDeposit) deposited slotAfterDeadline
11551156
pure (depositedUTxO, tx)
11561157

11571158
genIncrementTx :: Int -> Gen (ChainContext, OpenState, UTxO, Tx)
@@ -1162,12 +1163,13 @@ genIncrementTx numParties = do
11621163
let openUTxO = getKnownUTxO st
11631164
let version = 0
11641165
snapshot <- genConfirmedSnapshot headId version 1 openUTxO (Just deposited) Nothing (ctxHydraSigningKeys ctx)
1165-
let slotNo = slotNoFromUTCTime systemStart slotLength deadline
1166+
let deadlineSlot = slotNoFromUTCTime systemStart slotLength deadline
1167+
slotBeforeDeadline <- chooseEnum (0, deadlineSlot)
11661168
pure
11671169
( cctx
11681170
, st
11691171
, utxo
1170-
, unsafeIncrement cctx (openUTxO <> utxo) headId (ctxHeadParameters ctx) snapshot depositTxId slotNo
1172+
, unsafeIncrement cctx (openUTxO <> utxo) headId (ctxHeadParameters ctx) snapshot depositTxId slotBeforeDeadline
11711173
)
11721174

11731175
genDecrementTx :: Int -> Gen (ChainContext, UTxO, OpenState, UTxO, Tx)

0 commit comments

Comments
 (0)