From 17264b1d0a90e04d917ccca999e0781f72cb901f Mon Sep 17 00:00:00 2001 From: Jordan Millar Date: Tue, 10 Mar 2026 09:40:14 -0400 Subject: [PATCH 1/2] Export and reuse extractWitnessable* functions in tests Replace six inline list comprehensions in prop_extractAllIndexedPlutusScriptWitnesses with calls to the existing extractWitnessable* production helpers, which are now exported from New.hs and re-exported from Tx.hs. --- .../src/Cardano/Api/Experimental/Tx.hs | 6 ++++ .../Tx/Internal/BodyContent/New.hs | 6 ++++ .../Api/Transaction/Body/Plutus/Scripts.hs | 31 ++++--------------- 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/cardano-api/src/Cardano/Api/Experimental/Tx.hs b/cardano-api/src/Cardano/Api/Experimental/Tx.hs index 1641e86a48..86663d2761 100644 --- a/cardano-api/src/Cardano/Api/Experimental/Tx.hs +++ b/cardano-api/src/Cardano/Api/Experimental/Tx.hs @@ -205,6 +205,12 @@ module Cardano.Api.Experimental.Tx -- ** Internal functions , extractExecutionUnits , getTxScriptWitnessRequirements + , extractWitnessableTxIns + , extractWitnessableMints + , extractWitnessableCertificates + , extractWitnessableWithdrawals + , extractWitnessableVotes + , extractWitnessableProposals ) where diff --git a/cardano-api/src/Cardano/Api/Experimental/Tx/Internal/BodyContent/New.hs b/cardano-api/src/Cardano/Api/Experimental/Tx/Internal/BodyContent/New.hs index 6f3c0072cf..4f3af6a432 100644 --- a/cardano-api/src/Cardano/Api/Experimental/Tx/Internal/BodyContent/New.hs +++ b/cardano-api/src/Cardano/Api/Experimental/Tx/Internal/BodyContent/New.hs @@ -60,6 +60,12 @@ module Cardano.Api.Experimental.Tx.Internal.BodyContent.New -- * Internal conversions , convProposalProcedures + , extractWitnessableTxIns + , extractWitnessableMints + , extractWitnessableCertificates + , extractWitnessableWithdrawals + , extractWitnessableVotes + , extractWitnessableProposals -- * Legacy conversions , DatumDecodingError (..) diff --git a/cardano-api/test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs b/cardano-api/test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs index 8a14fc0ce5..e4ac931c6f 100644 --- a/cardano-api/test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs +++ b/cardano-api/test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs @@ -25,7 +25,6 @@ import Prelude import Data.Function import Data.List qualified as List -import Data.Map.Ordered qualified as OMap import Data.Map.Strict qualified as Map import Test.Gen.Cardano.Api.Experimental qualified as Exp @@ -178,30 +177,12 @@ prop_extractAllIndexedPlutusScriptWitnesses = let allGeneratedPlutusScriptWitnesses = mconcat - [ createIndexedPlutusScriptWitnesses $ [(Exp.WitTxIn tIn, sWit) | (tIn, sWit) <- generatedTxInWits] - , createIndexedPlutusScriptWitnesses $ - [ (Exp.WitMint pid pAssets, anyScriptWitnessToAnyWitness sWit) - | (pid, (pAssets, sWit)) <- Map.toList $ Exp.unTxMintValue generatedTxMintWits - ] - , createIndexedPlutusScriptWitnesses - [ (Exp.WitTxCert c scred, wit) - | (Certificate c, Just (scred, wit)) <- - OMap.toAscList $ Exp.unTxCertificates generatedTxCertWits - ] - , createIndexedPlutusScriptWitnesses - [ (Exp.WitWithdrawal sAddr deposit, wit) - | (sAddr, deposit, wit) <- Exp.unTxWithdrawals generatedTxWithdrawals - ] - , createIndexedPlutusScriptWitnesses - [ (Exp.WitVote v, wit) - | let Exp.TxVotingProcedures _ vMap = generatedTxVotingprocedures - , (v, wit) <- Map.toList vMap - ] - , createIndexedPlutusScriptWitnesses - [ (Exp.WitProposal p, wit) - | let Exp.TxProposalProcedures pMap = generatedTxProposalProcedures - , (p, wit) <- OMap.toAscList pMap - ] + [ createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableTxIns generatedTxInWits + , createIndexedPlutusScriptWitnesses $ map (\(w, sw) -> (w, anyScriptWitnessToAnyWitness sw)) $ Exp.extractWitnessableMints generatedTxMintWits + , createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableCertificates generatedTxCertWits + , createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableWithdrawals generatedTxWithdrawals + , createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableVotes (Just generatedTxVotingprocedures) + , createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableProposals (Just generatedTxProposalProcedures) ] H.note_ "All generated script witnesses" From ee7d59fbe266ff6e74f7df5fabce167bb6fc3689 Mon Sep 17 00:00:00 2001 From: Jordan Millar Date: Tue, 10 Mar 2026 11:24:34 -0400 Subject: [PATCH 2/2] Fix formatting and remove unused ordered-containers dependency - Apply fourmolu formatting to Scripts.hs (break long lines) - Remove ordered-containers from cardano-api-test build-depends (unused after replacing inline list comprehensions with direct calls to the exported extractWitnessable* functions) --- cardano-api/cardano-api.cabal | 1 - .../Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cardano-api/cardano-api.cabal b/cardano-api/cardano-api.cabal index 590fd32796..0853a05f2f 100644 --- a/cardano-api/cardano-api.cabal +++ b/cardano-api/cardano-api.cabal @@ -385,7 +385,6 @@ test-suite cardano-api-test hedgehog-quickcheck, microlens, mtl, - ordered-containers, ouroboros-consensus, ouroboros-consensus-protocol, raw-strings-qq, diff --git a/cardano-api/test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs b/cardano-api/test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs index e4ac931c6f..81e253090d 100644 --- a/cardano-api/test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs +++ b/cardano-api/test/cardano-api-test/Test/Cardano/Api/Transaction/Body/Plutus/Scripts.hs @@ -11,7 +11,6 @@ where import Cardano.Api (AlonzoEraOnwards (..)) import Cardano.Api qualified as Api import Cardano.Api.Experimental -import Cardano.Api.Experimental qualified as Exp import Cardano.Api.Experimental.AnyScript import Cardano.Api.Experimental.AnyScriptWitness import Cardano.Api.Experimental.Plutus hiding (AnyPlutusScript (..)) @@ -178,11 +177,14 @@ prop_extractAllIndexedPlutusScriptWitnesses = let allGeneratedPlutusScriptWitnesses = mconcat [ createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableTxIns generatedTxInWits - , createIndexedPlutusScriptWitnesses $ map (\(w, sw) -> (w, anyScriptWitnessToAnyWitness sw)) $ Exp.extractWitnessableMints generatedTxMintWits + , createIndexedPlutusScriptWitnesses $ + map (\(w, sw) -> (w, anyScriptWitnessToAnyWitness sw)) $ + Exp.extractWitnessableMints generatedTxMintWits , createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableCertificates generatedTxCertWits , createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableWithdrawals generatedTxWithdrawals , createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableVotes (Just generatedTxVotingprocedures) - , createIndexedPlutusScriptWitnesses $ Exp.extractWitnessableProposals (Just generatedTxProposalProcedures) + , createIndexedPlutusScriptWitnesses $ + Exp.extractWitnessableProposals (Just generatedTxProposalProcedures) ] H.note_ "All generated script witnesses"