From e20dc7d2da371f3b57ac72ef4ec603fc21173697 Mon Sep 17 00:00:00 2001 From: Sasha Bogicevic Date: Mon, 8 Apr 2024 15:15:51 +0200 Subject: [PATCH] Re-add commit tx metadata and re-format the code --- hydra-cluster/src/HydraNode.hs | 2 +- hydra-node/src/Hydra/API/Server.hs | 2 +- hydra-node/src/Hydra/Chain/Direct/Tx.hs | 11 +++------ .../Hydra/Chain/Direct/Contract/Commit.hs | 5 ++-- .../test/Hydra/Chain/Direct/HandlersSpec.hs | 2 -- hydra-node/test/Hydra/Chain/Direct/TxSpec.hs | 23 ++++++++++--------- 6 files changed, 20 insertions(+), 25 deletions(-) diff --git a/hydra-cluster/src/HydraNode.hs b/hydra-cluster/src/HydraNode.hs index 1e11de38941..3154a940ff7 100644 --- a/hydra-cluster/src/HydraNode.hs +++ b/hydra-cluster/src/HydraNode.hs @@ -24,7 +24,7 @@ import Hydra.API.HTTPServer (DraftCommitTxRequest (..), DraftCommitTxResponse (. import Hydra.Cluster.Util (readConfigFile) import Hydra.ContestationPeriod (ContestationPeriod) import Hydra.Crypto (HydraKey) -import Hydra.Ledger.Cardano (TxOutWithWitness(..)) +import Hydra.Ledger.Cardano (TxOutWithWitness (..)) import Hydra.Logging (Tracer, Verbosity (..), traceWith) import Hydra.Network (Host (Host), NodeId (NodeId)) import Hydra.Network qualified as Network diff --git a/hydra-node/src/Hydra/API/Server.hs b/hydra-node/src/Hydra/API/Server.hs index 0ac8b310ae2..865b9d79157 100644 --- a/hydra-node/src/Hydra/API/Server.hs +++ b/hydra-node/src/Hydra/API/Server.hs @@ -38,9 +38,9 @@ import Network.Wai.Handler.Warp ( defaultSettings, runSettings, setBeforeMainLoop, - setOnExceptionResponse, setHost, setOnException, + setOnExceptionResponse, setPort, ) import Network.Wai.Handler.WebSockets (websocketsOr) diff --git a/hydra-node/src/Hydra/Chain/Direct/Tx.hs b/hydra-node/src/Hydra/Chain/Direct/Tx.hs index 6ea11f702ec..6cb5355f3a0 100644 --- a/hydra-node/src/Hydra/Chain/Direct/Tx.hs +++ b/hydra-node/src/Hydra/Chain/Direct/Tx.hs @@ -19,19 +19,15 @@ import Cardano.Ledger.Api ( AlonzoPlutusPurpose (..), AsIndex (..), Redeemers (..), - TxDats (..), auxDataHashTxBodyL, + auxDataTxL, bodyTxL, - datsTxWitsL, - hashData, - hashScript, inputsTxBodyL, mkAlonzoTxAuxData, outputsTxBodyL, rdmrsTxWitsL, referenceInputsTxBodyL, reqSignerHashesTxBodyL, - scriptTxWitsL, unRedeemers, witsTxL, ) @@ -41,7 +37,6 @@ import Control.Lens ((%~), (.~), (<>~), (^.)) import Data.Aeson qualified as Aeson import Data.ByteString qualified as BS import Data.ByteString.Base16 qualified as Base16 -import Data.List qualified as List import Data.Map qualified as Map import Data.Sequence.Strict ((<|)) import Data.Set qualified as Set @@ -263,8 +258,8 @@ commitTx networkId scriptRegistry headId party utxoToCommit blueprintTx (initial & bodyTxL . referenceInputsTxBodyL <>~ Set.fromList [toLedgerTxIn initialScriptRef] & bodyTxL . outputsTxBodyL %~ (toLedgerTxOut commitOutput <|) & bodyTxL . reqSignerHashesTxBodyL <>~ Set.singleton (toLedgerKeyHash vkh) - -- TODO: construct metadata properly - -- & bodyTxL . auxDataHashTxBodyL .~ SJust (hashAlonzoTxAuxData txAuxMetadata) + & bodyTxL . auxDataHashTxBodyL .~ (SJust $ hashAlonzoTxAuxData txAuxMetadata) + & auxDataTxL .~ SJust txAuxMetadata existingWits = ledgerBlueprintTx ^. witsTxL currentInputs = ledgerBlueprintTx ^. bodyTxL . inputsTxBodyL commitInputs = UTxO.inputSet utxoToCommit diff --git a/hydra-node/test/Hydra/Chain/Direct/Contract/Commit.hs b/hydra-node/test/Hydra/Chain/Direct/Contract/Commit.hs index cc1d6a10496..00df36c2d4a 100644 --- a/hydra-node/test/Hydra/Chain/Direct/Contract/Commit.hs +++ b/hydra-node/test/Hydra/Chain/Direct/Contract/Commit.hs @@ -29,11 +29,12 @@ import Hydra.Contract.Initial qualified as Initial import Hydra.Contract.InitialError (InitialError (..)) import Hydra.Ledger.Cardano ( genAddressInEra, + genSigningKey, genUTxOAdaOnlyOfSize, genValue, genVerificationKey, mkBlueprintTxFromUTxOAndWitness, - toUTxOWithWitness, genSigningKey, + toUTxOWithWitness, ) import Hydra.Party (Party) import Test.QuickCheck (elements, oneof, scale, suchThat) @@ -75,7 +76,7 @@ healthyCommitTx = commitParty = generateWith arbitrary 42 commitSigningKey :: SigningKey PaymentKey -commitSigningKey = genSigningKey `generateWith ` 42 +commitSigningKey = genSigningKey `generateWith` 42 commitVerificationKey :: VerificationKey PaymentKey commitVerificationKey = getVerificationKey commitSigningKey diff --git a/hydra-node/test/Hydra/Chain/Direct/HandlersSpec.hs b/hydra-node/test/Hydra/Chain/Direct/HandlersSpec.hs index 14979b3ac45..954d682abe4 100644 --- a/hydra-node/test/Hydra/Chain/Direct/HandlersSpec.hs +++ b/hydra-node/test/Hydra/Chain/Direct/HandlersSpec.hs @@ -10,14 +10,12 @@ import Data.Maybe (fromJust) import Hydra.Cardano.Api ( BlockHeader (..), ChainPoint (ChainPointAtGenesis), - KeyWitnessInCtx (..), PaymentKey, SlotNo (..), Tx, VerificationKey, genTxIn, getChainPoint, - pattern KeyWitness, ) import Hydra.Chain (ChainEvent (..), HeadParameters, OnChainTx (..), chainStateSlot, currentState, initHistory, maximumNumberOfParties) diff --git a/hydra-node/test/Hydra/Chain/Direct/TxSpec.hs b/hydra-node/test/Hydra/Chain/Direct/TxSpec.hs index 9181963dfdc..20c345cc335 100644 --- a/hydra-node/test/Hydra/Chain/Direct/TxSpec.hs +++ b/hydra-node/test/Hydra/Chain/Direct/TxSpec.hs @@ -53,6 +53,7 @@ import Test.QuickCheck ( property, vectorOf, withMaxSuccess, + (=/=), (===), ) import Test.QuickCheck.Instances.Semigroup () @@ -187,17 +188,17 @@ spec = <> registryUTxO scriptRegistry checkCoverage $ - conjoin - [ transactionEvaluates (blueprintTx', utxoToCommit) - , transactionEvaluates (signedCommitTx, commitUTxO) - , blueprintTx ^. isValidTxL === tx ^. isValidTxL - , blueprintTx ^. auxDataTxL =/= tx ^. auxDataTxL - , property (length (blueprintBody ^. inputsTxBodyL) <= length (commitTxBody ^. inputsTxBodyL)) - , property (length (blueprintBody ^. outputsTxBodyL) <= length (commitTxBody ^. outputsTxBodyL)) - , property (length (blueprintBody ^. referenceInputsTxBodyL) <= length (commitTxBody ^. referenceInputsTxBodyL)) - , property (length (blueprintBody ^. reqSignerHashesTxBodyL) <= length (commitTxBody ^. reqSignerHashesTxBodyL)) - ] - & cover 50 (containsScript utxoWithWitnesses) "TxOutWithWitness contains script witness" + conjoin + [ transactionEvaluates (blueprintTx', utxoToCommit) + , transactionEvaluates (signedCommitTx, commitUTxO) + , blueprintTx ^. isValidTxL === tx ^. isValidTxL + , blueprintTx ^. auxDataTxL =/= tx ^. auxDataTxL + , property (length (blueprintBody ^. inputsTxBodyL) <= length (commitTxBody ^. inputsTxBodyL)) + , property (length (blueprintBody ^. outputsTxBodyL) <= length (commitTxBody ^. outputsTxBodyL)) + , property (length (blueprintBody ^. referenceInputsTxBodyL) <= length (commitTxBody ^. referenceInputsTxBodyL)) + , property (length (blueprintBody ^. reqSignerHashesTxBodyL) <= length (commitTxBody ^. reqSignerHashesTxBodyL)) + ] + & cover 50 (containsScript utxoWithWitnesses) "TxOutWithWitness contains script witness" withinTxExecutionBudget :: EvaluationReport -> Property withinTxExecutionBudget report =