Skip to content

Commit

Permalink
Add draft test for building drafted commit tx
Browse files Browse the repository at this point in the history
  • Loading branch information
ffakenz committed Jun 1, 2023
1 parent ededfc8 commit 15cc231
Showing 1 changed file with 27 additions and 17 deletions.
44 changes: 27 additions & 17 deletions hydra-node/test/Hydra/Chain/Direct/TxSpec.hs
Expand Up @@ -12,6 +12,7 @@ import Hydra.Chain.Direct.Tx
import Hydra.Prelude hiding (label)
import Test.Hydra.Prelude

import Cardano.Api.UTxO (toMap)
import qualified Cardano.Api.UTxO as UTxO
import Cardano.Ledger.Babbage.PParams (BabbagePParams)
import qualified Data.Map as Map
Expand All @@ -28,32 +29,21 @@ import Hydra.Chain.Direct.Fixture (
testPolicyId,
testSeedInput,
)
import qualified Hydra.Chain.Direct.Fixture as Fixture
import Hydra.Chain.Direct.ScriptRegistry (genScriptRegistry, registryUTxO)
import Hydra.Chain.Direct.State (ChainState)
import Hydra.Chain.Direct.Wallet (ErrCoverFee (..), coverFee_)
import Hydra.Chain.Direct.WalletSpec (isBalanced)
import Hydra.ContestationPeriod (ContestationPeriod (UnsafeContestationPeriod))
import qualified Hydra.Contract.Commit as Commit
import Hydra.Contract.HeadTokens (mkHeadTokenScript)
import qualified Hydra.Contract.Initial as Initial
import Hydra.Ledger.Cardano (
adaOnly,
genOneUTxOFor,
genVerificationKey,
)
import Hydra.Ledger.Cardano (adaOnly, genOneUTxOFor, genTxOut, genVerificationKey)
import Hydra.Ledger.Cardano.Evaluate (EvaluationReport, maxTxExecutionUnits)
import Hydra.Party (Party)
import qualified Hydra.Prelude as Prelude
import Test.Cardano.Ledger.Alonzo.Serialisation.Generators ()
import Test.QuickCheck (
Property,
choose,
counterexample,
elements,
forAll,
getPositive,
label,
property,
vectorOf,
withMaxSuccess,
)
import Test.QuickCheck (Property, choose, counterexample, elements, forAll, getPositive, label, property, vectorOf, withMaxSuccess)
import Test.QuickCheck.Instances.Semigroup ()

spec :: Spec
Expand Down Expand Up @@ -150,6 +140,26 @@ spec =
& counterexample (renderTx tx)
& counterexample (show e)

describe "draftCommitTx" $ do
prop "can build valid draft commit tx" $ \chainState initialPubKeyHash intialTxIn committedUTxO party -> do
let
initialTxOut = genTxOut `generateWith` 45
scriptRegistry = genScriptRegistry `generateWith` 42
tx =
commitTx
Fixture.testNetworkId
scriptRegistry
(mkHeadId Fixture.testPolicyId)
party
(Just committedUTxO)
(intialTxIn, toUTxOContext initialTxOut, initialPubKeyHash)
balancedTx = draftCommitTx chainState tx
(txIn, txOut) = bimap toLedgerTxIn toLedgerTxOut committedUTxO
isBalanced (Map.singleton txIn txOut) (toLedgerTx tx) (toLedgerTx balancedTx)
where
draftCommitTx :: ChainState -> Tx -> Tx
draftCommitTx chainState commitTx = Prelude.error "not implemented yet"

ledgerPParams :: BabbagePParams LedgerEra
ledgerPParams = toLedgerPParams (shelleyBasedEra @Era) pparams

Expand Down

0 comments on commit 15cc231

Please sign in to comment.