From 8d26c3de455b52a6410333f58df7651795cf2d02 Mon Sep 17 00:00:00 2001 From: Jordan Millar Date: Mon, 26 Oct 2026 10:39:14 -0400 Subject: [PATCH 1/3] Update cardano-cli to published cardano-api 11.11 --- .changes/20261026_cardano_api_11_11.yml | 5 +++++ cabal.project | 4 ++-- cardano-cli/cardano-cli.cabal | 2 +- .../CLI/EraBased/Transaction/SubTransaction/Run.hs | 10 +++++++--- cardano-cli/src/Cardano/CLI/Type/Error/TxCmdError.hs | 2 ++ flake.lock | 12 ++++++------ 6 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 .changes/20261026_cardano_api_11_11.yml diff --git a/.changes/20261026_cardano_api_11_11.yml b/.changes/20261026_cardano_api_11_11.yml new file mode 100644 index 0000000000..24602fd668 --- /dev/null +++ b/.changes/20261026_cardano_api_11_11.yml @@ -0,0 +1,5 @@ +project: cardano-cli +pr: 1486 +kind: + - compatible +description: Update to cardano-api 11.11 and adapt Dijkstra sub-transaction construction to validated, insertion-ordered TxGuards while preserving existing guard witness handling. Add TxCmdGuardsError to the exposed TxCmdError type to report API guard-validation failures. diff --git a/cabal.project b/cabal.project index 66320a8a59..81835411ba 100644 --- a/cabal.project +++ b/cabal.project @@ -13,8 +13,8 @@ repository cardano-haskell-packages -- See CONTRIBUTING for information about these, including some Nix commands -- you need to run if you change them index-state: - , hackage.haskell.org 2026-09-02T14:05:07Z - , cardano-haskell-packages 2026-10-21T13:12:35Z + , hackage.haskell.org 2026-09-29T11:48:37Z + , cardano-haskell-packages 2026-10-26T14:00:38Z packages: cardano-cli diff --git a/cardano-cli/cardano-cli.cabal b/cardano-cli/cardano-cli.cabal index 3346021d4a..e70e9731d6 100644 --- a/cardano-cli/cardano-cli.cabal +++ b/cardano-cli/cardano-cli.cabal @@ -250,7 +250,7 @@ library binary, bytestring, canonical-json, - cardano-api ^>=11.10, + cardano-api ^>=11.11, cardano-binary, cardano-config ^>=2.2.2, cardano-crypto, diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/SubTransaction/Run.hs b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/SubTransaction/Run.hs index b28af3cf30..9a64e22ab1 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/SubTransaction/Run.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/SubTransaction/Run.hs @@ -260,8 +260,8 @@ validateGuardRedeemer credential script hasRedeemer | otherwise = unless hasRedeemer $ Left $ TxCmdPlutusGuardMissingRedeemer credential --- | The API currently collects witnesses for the six pre-Dijkstra purposes. --- Add guarding witnesses before canonicalisation/signing and update the script +-- | Guard credentials are passed to the API without witnesses below. +-- Add their witnesses before canonicalisation/signing and update the script -- integrity hash to cover the complete redeemer set. Guard indices include key -- and native-script guards, and preserve the body's OSet order. addGuardWitnesses @@ -423,6 +423,10 @@ constructSubTx TxMetadataInEra _ mDat -> mDat validatedDirectDeposits <- convertDirectDeposits directDeposits + validatedGuards <- + first TxCmdGuardsError $ + obtainCommonConstraints (Exp.useEra @era) $ + Exp.mkTxGuards [(credential, Nothing) | credential <- Foldable.toList guards] validatedMintValue <- createTxMintValue valuesWithScriptWits validatedVotingProcedures <- first (TxCmdVotingError . TxVotingError) $ @@ -448,7 +452,7 @@ constructSubTx & maybe id (Exp.setTxCurrentTreasuryValue . unTxCurrentTreasuryValue) mCurrentTreasury & maybe id (Exp.setTxTreasuryDonation . unTxTreasuryDonation) mTreasuryDonation & Exp.setTxSupplementalDatums suppDatums - & Exp.setTxGuards guards + & Exp.setTxGuards validatedGuards & Exp.setTxRequiredTopLevelGuards requiredTopLevelGuards ) diff --git a/cardano-cli/src/Cardano/CLI/Type/Error/TxCmdError.hs b/cardano-cli/src/Cardano/CLI/Type/Error/TxCmdError.hs index cf1a4b195e..e808e5efb6 100644 --- a/cardano-cli/src/Cardano/CLI/Type/Error/TxCmdError.hs +++ b/cardano-cli/src/Cardano/CLI/Type/Error/TxCmdError.hs @@ -88,6 +88,7 @@ data TxCmdError | TxCmdSubTxByronWitnessUnsupported | TxCmdDuplicateDirectDeposits ![StakeAddress] | TxCmdDuplicateGuards ![L.Credential L.Guard] + | TxCmdGuardsError !Exp.TxGuardsError | TxCmdPlutusGuardMissingRedeemer !(L.Credential L.Guard) | TxCmdNativeGuardWithRedeemer !(L.Credential L.Guard) | TxCmdTopLevelGuardMissingDatum !FilePath @@ -225,6 +226,7 @@ renderTxCmdError = \case <> hsep (map (pretty . serialiseAddress) addresses) TxCmdDuplicateGuards credentials -> "Duplicate guards: " <> hsep (map (pretty . L.credToText) credentials) + TxCmdGuardsError err -> prettyError err TxCmdPlutusGuardMissingRedeemer credential -> "Plutus guard " <> pretty (L.credToText credential) diff --git a/flake.lock b/flake.lock index ae02678df1..3df8a13dd7 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1792605117, - "narHash": "sha256-GykQ/H7LgwcByC+ge8KJ8kExfYcWJeUjQQAHk4DEMYQ=", + "lastModified": 1793025567, + "narHash": "sha256-PG3fjcppcU+rHeaG0MRv2m1QE7VxlCXWHEOSW3A5Z0s=", "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "cca1f601a21713d52c5e48aeefe3a69606ba076c", + "rev": "f1810d7e168f1163749490c9e093b8cd3c6d2008", "type": "github" }, "original": { @@ -384,11 +384,11 @@ "hackageNix": { "flake": false, "locked": { - "lastModified": 1788358854, - "narHash": "sha256-NIF+y/9ctwQILbHsCZCOFN7dxuwWXKnFn5T0+ya49+Y=", + "lastModified": 1792758051, + "narHash": "sha256-Zxy4LGsuwrTuWV2tcV7f9H2ENJ82DC0X1EVQAcSLpok=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "04149d44d879f7115282c442f8904b5eb5a78c4e", + "rev": "91eb7d4ed21b445cf828111f731637a7b34735a0", "type": "github" }, "original": { From 90cc2b9ae147abacf8169c848ec10dc4296796f6 Mon Sep 17 00:00:00 2001 From: Jordan Millar Date: Mon, 26 Oct 2026 11:34:00 -0400 Subject: [PATCH 2/3] Release cardano-cli-11.6.0.0 --- ...cardano-cli_github-actions[bot]_cardano_cli_11_5_0_0.yml | 5 ----- .changes/20261026_cardano_api_11_11.yml | 5 ----- cardano-cli/CHANGELOG.md | 6 ++++++ cardano-cli/cardano-cli.cabal | 2 +- 4 files changed, 7 insertions(+), 11 deletions(-) delete mode 100644 .changes/20261023_183827_cardano-cli_github-actions[bot]_cardano_cli_11_5_0_0.yml delete mode 100644 .changes/20261026_cardano_api_11_11.yml diff --git a/.changes/20261023_183827_cardano-cli_github-actions[bot]_cardano_cli_11_5_0_0.yml b/.changes/20261023_183827_cardano-cli_github-actions[bot]_cardano_cli_11_5_0_0.yml deleted file mode 100644 index 54b01b5df5..0000000000 --- a/.changes/20261023_183827_cardano-cli_github-actions[bot]_cardano_cli_11_5_0_0.yml +++ /dev/null @@ -1,5 +0,0 @@ -description: Release cardano-cli 11.5.0.0 -kind: -- release -pr: 1484 -project: cardano-cli diff --git a/.changes/20261026_cardano_api_11_11.yml b/.changes/20261026_cardano_api_11_11.yml deleted file mode 100644 index 24602fd668..0000000000 --- a/.changes/20261026_cardano_api_11_11.yml +++ /dev/null @@ -1,5 +0,0 @@ -project: cardano-cli -pr: 1486 -kind: - - compatible -description: Update to cardano-api 11.11 and adapt Dijkstra sub-transaction construction to validated, insertion-ordered TxGuards while preserving existing guard witness handling. Add TxCmdGuardsError to the exposed TxCmdError type to report API guard-validation failures. diff --git a/cardano-cli/CHANGELOG.md b/cardano-cli/CHANGELOG.md index b6c4be6f13..72ce2ae074 100644 --- a/cardano-cli/CHANGELOG.md +++ b/cardano-cli/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog for cardano-cli +## 11.6.0.0 -- 2026-10-26 + +- Update to cardano-api 11.11 and adapt Dijkstra sub-transaction construction to validated, insertion-ordered TxGuards while preserving existing guard witness handling. Add TxCmdGuardsError to the exposed TxCmdError type to report API guard-validation failures. + (compatible) + [PR 1486](https://github.com/intersectmbo/cardano-cli/pull/1486) + ## 11.5.0.0 -- 2026-10-23 - `debug check-node-configuration` now reads the configuration with cardano-config. It accepts both the old flat format and the new cardano-config format. diff --git a/cardano-cli/cardano-cli.cabal b/cardano-cli/cardano-cli.cabal index e70e9731d6..b69ea8e444 100644 --- a/cardano-cli/cardano-cli.cabal +++ b/cardano-cli/cardano-cli.cabal @@ -1,6 +1,6 @@ cabal-version: 3.8 name: cardano-cli -version: 11.5.0.0 +version: 11.6.0.0 synopsis: The Cardano command-line interface description: The Cardano command-line interface. copyright: 2020-2023 Input Output Global Inc (IOG). From 398e273d2c629f15de67a104758fd2b7d69bf98d Mon Sep 17 00:00:00 2001 From: Jordan Millar Date: Mon, 26 Oct 2026 10:40:22 -0400 Subject: [PATCH 3/3] Link release notes and add release changelog fragment --- .changes/20261026_cardano_cli_11_6_0_0.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changes/20261026_cardano_cli_11_6_0_0.yml diff --git a/.changes/20261026_cardano_cli_11_6_0_0.yml b/.changes/20261026_cardano_cli_11_6_0_0.yml new file mode 100644 index 0000000000..7c4bf6c2ce --- /dev/null +++ b/.changes/20261026_cardano_cli_11_6_0_0.yml @@ -0,0 +1,5 @@ +description: Release cardano-cli 11.6.0.0 +kind: +- release +pr: 1486 +project: cardano-cli