deploy: 9ca9c9b2f83b81d673ecdb0a21dde4190ff51134
Home /
IntersectMBO /
cardano-cli
May 06, 11-12 AM (0)
May 07, 12-1 AM (0)
May 07, 1-2 AM (0)
May 07, 2-3 AM (0)
May 07, 3-4 AM (0)
May 07, 4-5 AM (0)
May 07, 5-6 AM (0)
May 07, 6-7 AM (0)
May 07, 7-8 AM (0)
May 07, 8-9 AM (0)
May 07, 9-10 AM (0)
May 07, 10-11 AM (0)
May 07, 11-12 PM (0)
May 07, 12-1 PM (0)
May 07, 1-2 PM (0)
May 07, 2-3 PM (0)
May 07, 3-4 PM (0)
May 07, 4-5 PM (5)
May 07, 5-6 PM (0)
May 07, 6-7 PM (0)
May 07, 7-8 PM (0)
May 07, 8-9 PM (0)
May 07, 9-10 PM (0)
May 07, 10-11 PM (0)
May 07, 11-12 AM (0)
May 08, 12-1 AM (0)
May 08, 1-2 AM (0)
May 08, 2-3 AM (0)
May 08, 3-4 AM (0)
May 08, 4-5 AM (0)
May 08, 5-6 AM (0)
May 08, 6-7 AM (0)
May 08, 7-8 AM (0)
May 08, 8-9 AM (0)
May 08, 9-10 AM (0)
May 08, 10-11 AM (0)
May 08, 11-12 PM (0)
May 08, 12-1 PM (1)
May 08, 1-2 PM (7)
May 08, 2-3 PM (6)
May 08, 3-4 PM (2)
May 08, 4-5 PM (2)
May 08, 5-6 PM (0)
May 08, 6-7 PM (3)
May 08, 7-8 PM (0)
May 08, 8-9 PM (0)
May 08, 9-10 PM (0)
May 08, 10-11 PM (0)
May 08, 11-12 AM (0)
May 09, 12-1 AM (0)
May 09, 1-2 AM (0)
May 09, 2-3 AM (0)
May 09, 3-4 AM (0)
May 09, 4-5 AM (0)
May 09, 5-6 AM (0)
May 09, 6-7 AM (0)
May 09, 7-8 AM (0)
May 09, 8-9 AM (0)
May 09, 9-10 AM (0)
May 09, 10-11 AM (0)
May 09, 11-12 PM (0)
May 09, 12-1 PM (0)
May 09, 1-2 PM (0)
May 09, 2-3 PM (0)
May 09, 3-4 PM (0)
May 09, 4-5 PM (0)
May 09, 5-6 PM (0)
May 09, 6-7 PM (0)
May 09, 7-8 PM (0)
May 09, 8-9 PM (0)
May 09, 9-10 PM (0)
May 09, 10-11 PM (0)
May 09, 11-12 AM (0)
May 10, 12-1 AM (0)
May 10, 1-2 AM (0)
May 10, 2-3 AM (0)
May 10, 3-4 AM (0)
May 10, 4-5 AM (0)
May 10, 5-6 AM (0)
May 10, 6-7 AM (0)
May 10, 7-8 AM (0)
May 10, 8-9 AM (0)
May 10, 9-10 AM (0)
May 10, 10-11 AM (0)
May 10, 11-12 PM (0)
May 10, 12-1 PM (0)
May 10, 1-2 PM (0)
May 10, 2-3 PM (0)
May 10, 3-4 PM (0)
May 10, 4-5 PM (0)
May 10, 5-6 PM (0)
May 10, 6-7 PM (0)
May 10, 7-8 PM (0)
May 10, 8-9 PM (0)
May 10, 9-10 PM (0)
May 10, 10-11 PM (0)
May 10, 11-12 AM (0)
May 11, 12-1 AM (0)
May 11, 1-2 AM (0)
May 11, 2-3 AM (0)
May 11, 3-4 AM (0)
May 11, 4-5 AM (0)
May 11, 5-6 AM (0)
May 11, 6-7 AM (0)
May 11, 7-8 AM (0)
May 11, 8-9 AM (0)
May 11, 9-10 AM (0)
May 11, 10-11 AM (0)
May 11, 11-12 PM (0)
May 11, 12-1 PM (0)
May 11, 1-2 PM (0)
May 11, 2-3 PM (0)
May 11, 3-4 PM (0)
May 11, 4-5 PM (0)
May 11, 5-6 PM (0)
May 11, 6-7 PM (0)
May 11, 7-8 PM (3)
May 11, 8-9 PM (0)
May 11, 9-10 PM (0)
May 11, 10-11 PM (0)
May 11, 11-12 AM (0)
May 12, 12-1 AM (0)
May 12, 1-2 AM (0)
May 12, 2-3 AM (0)
May 12, 3-4 AM (0)
May 12, 4-5 AM (0)
May 12, 5-6 AM (0)
May 12, 6-7 AM (0)
May 12, 7-8 AM (0)
May 12, 8-9 AM (0)
May 12, 9-10 AM (0)
May 12, 10-11 AM (0)
May 12, 11-12 PM (0)
May 12, 12-1 PM (0)
May 12, 1-2 PM (1)
May 12, 2-3 PM (0)
May 12, 3-4 PM (0)
May 12, 4-5 PM (1)
May 12, 5-6 PM (3)
May 12, 6-7 PM (0)
May 12, 7-8 PM (0)
May 12, 8-9 PM (1)
May 12, 9-10 PM (0)
May 12, 10-11 PM (0)
May 12, 11-12 AM (0)
May 13, 12-1 AM (0)
May 13, 1-2 AM (0)
May 13, 2-3 AM (0)
May 13, 3-4 AM (0)
May 13, 4-5 AM (0)
May 13, 5-6 AM (0)
May 13, 6-7 AM (0)
May 13, 7-8 AM (0)
May 13, 8-9 AM (0)
May 13, 9-10 AM (0)
May 13, 10-11 AM (0)
May 13, 11-12 PM (0)
May 13, 12-1 PM (0)
May 13, 1-2 PM (0)
May 13, 2-3 PM (0)
May 13, 3-4 PM (1)
May 13, 4-5 PM (1)
May 13, 5-6 PM (0)
May 13, 6-7 PM (0)
May 13, 7-8 PM (0)
May 13, 8-9 PM (0)
May 13, 9-10 PM (0)
May 13, 10-11 PM (0)
May 13, 11-12 AM (0)
37 commits this week
May 07, 2026
-
May 14, 2026
Merge pull request #1373 from IntersectMBO/jordan/migrate-EraBasedProtocolParametersUpdate
Drop redundant ProtocolParametersUpdate conversion in shelleyToBabbage update
Drop redundant PParamsUpdate round-trip in update proposal flow
`makeShelleyUpdateProposal` (cardano-api ^>=11.1) accepts `EraBasedProtocolParametersUpdate era` directly. The existing code in `shelleyToBabbageProtocolParametersUpdate` constructed that value, converted it to the deprecated `ProtocolParametersUpdate` via `createEraBasedProtocolParamUpdate` / `fromLedgerPParamsUpdate`, and passed the result to `makeShelleyUpdateProposal` — an unnecessary round-trip through the old API. Drop the conversion; pass `eraBasedPParams` directly. No behaviour change.
Migrate IncompleteTxBody and transaction commands to Exp.UnsignedTx
Drops the last remaining uses of the deprecated old-API transaction body surface (`TxBody`, `getTxBody`, `getTxBodyAndWitnesses`, `makeShelleyKeyWitness`, `makeSignedTransaction`, `evaluateTransactionExecutionUnits` on a deprecated `TxBody`, `getTxId . getTxBody`) from cardano-cli's source tree. `IncompleteTxBody` is reworked from a `newtype` wrapping `InAnyShelleyBasedEra TxBody` into a GADT existential carrying `Exp.UnsignedTx (ShelleyLedgerEra era)` plus `IsShelleyBasedEra` evidence. `readFileTxBody` pattern-matches `ShelleyTx _ ledgerTx` directly and wraps as `Exp.UnsignedTx ledgerTx` — no `getTxBody`. Consumers in `Transaction.Run` are migrated to: - `makeShelleyKeyWitness'` (ledger-level body) and `addWitnesses` for signing — both non-deprecated and work for all Shelley-based eras, preserving pre-Conway support. - `getTxIdShelley` for transaction IDs. - `evaluateTransactionExecutionUnitsShelley` (operates on the ledger `Tx` directly) for `transaction calculate-plutus-script-cost`, preserving Alonzo+ era support. - `Exp.evaluateTransactionFee` on `Exp.UnsignedTx` for `transaction calculate-min-fee` (already Conway+ via `sbeToEra`). `TransactionView.Run` no longer needs the `makeSignedTransaction []`-then-extract-ledger boundary that PR #1374 added — the new `readFileTxBody` returns `Exp.UnsignedTx` directly. The TextEnvelope I/O boundary still uses `Tx era` and `ShelleyTx _` (both non-deprecated), since `Exp.UnsignedTx`/`Exp.SignedTx` have no `HasTextEnvelope` instance. The on-disk `.tx`/`.txbody` formats are unchanged. The compatible command path (`Cardano.CLI.Compatible.Transaction.Run`) was already using non-deprecated symbols (`makeShelleyKeyWitness'`, `addWitnesses`) and is unchanged by this commit.
Drop deprecated TxBody from TxBodyFile phantom
`TxBodyFile` was a `File (TxBody ())` whose phantom payload was only ever used as a file-tag for option/parser plumbing; the bytes on disk do not depend on it. Replace `TxBody ()` with a fresh empty `TxBodyTag` data type so the alias no longer references the deprecated `TxBody` from cardano-api PR #1200. No on-disk format change. No call-site change beyond the alias itself.
cabal.project: temporarily pin cardano-api to PR #1200
Pins cardano-api to the master commit containing PR #1200, which deprecates `TxBody`, `TxBodyContent`, `getTxBody`, `getTxBodyContent`, `createTransactionBody`, `defaultTxBodyContent`, and `BalancedTxBody`. Lets this PR verify -Wdeprecations is clean against the deprecated surface. Remove this stanza once cardano-api releases a version containing #1200.
Merge pull request #1374 from IntersectMBO/jordan/friendly-tx-experimental-api
Migrate friendly transaction renderer to experimental API (Exp.Era era)
Migrate friendly transaction renderer to experimental API (Exp.Era era)
Migrates Cardano.CLI.Compatible.Json.Friendly off the old-API Tx / TxBody / TxBodyContent onto Exp.SignedTx / Exp.UnsignedTx, with the public renderer functions (friendlyTx, friendlyTxBody, friendlyTxImpl, friendlyTxBodyImpl) now taking Exp.Era era instead of ShelleyBasedEra era. This is the last consumer of old-API TxBodyContent in cardano-cli. Behaviour change: 'cardano-cli debug transaction view' and 'cardano-cli transaction view' now only accept Conway and Dijkstra tx / tx-body files. Pre-Conway files (Shelley, Allegra, Mary, Alonzo, Babbage) fail with a DeprecatedEra error. The corresponding pre-Conway golden tests have been removed.
Drop unused RecordWildCards pragma from Friendly.hs
Added in the migration commit but no {..} patterns use it.
Bump nix CHaP flake input to match cabal index-state
The previous commit bumped cabal.project's cardano-haskell-packages index-state to 2026-05-08T13:26:45Z, but the nix-side CHaP pin in flake.lock was still at 2026-04-30. haskell.nix-driven CI checks (actionlint, check-formatting, check-cabal-files, check-cabal-gild, test-hls-works, shellcheck) all failed with Cabal-7159 "Latest known index-state for 'cardano-haskell-packages' (2026-04-30T13:08:25Z) is older than the requested index-state (2026-05-08T13:26:45Z)". Updated via `nix flake lock --update-input CHaP` per CONTRIBUTING.md.
Bump cardano-api to ^>=11.1
cardano-api 11.1.0.0 is the first published release containing the EraBasedProtocolParametersUpdate migration this branch depends on (cardano-api PR #1103). Bump the CHaP index-state past its publication and widen the cardano-cli library constraint from ^>=11.0 (which means >=11.0 && <11.1 under PVP caret-equality) to ^>=11.1 so the solver picks the new release.
Render update proposal field for Shelley-Babbage eras
Now that the friendly renderer covers Shelley through Babbage, those tx bodies' update field is no longer just noise — it carries real governance state (a ProposedPPUpdates map keyed by genesis-key hash and an EpochNo). Render it directly from the ledger TxBody via `updateTxBodyL`. Conway replaced update proposals with the new governance system, so the field is absent (not null) in Conway+. Adds `updateProposalPairFor` and `renderUpdate` helpers; the per-era PParamsUpdate is rendered via its ledger ToJSON instance.
Add Alonzo YAML golden test for debug transaction view
Migrate friendly rendering to experimental API types, widen to all Shelley-based eras, and refactor with per-feature helpers
friendlyTx and friendlyTxBody now take ShelleyBasedEra era and accept Exp.SignedTx era / Exp.UnsignedTx (ShelleyLedgerEra era). They are no longer parameterised by Exp.Era era (which is Conway-only) — the renderer works for Shelley through Conway tx and tx-body files, unblocking transaction view for pre-Conway tx files. friendlyTxBodyImpl reads every field directly from the ledger TxBody via lenses, so the old API's TxBodyContent constructor and getTxBodyContent are no longer used in this module. The body composes a list of pairs from per-feature helpers (validityRangePair, mintPairFor, collateralInputsPairFor, requiredSignersPairFor, referenceInputsPairFor, totalCollateralPairFor, returnCollateralPairFor, alonzoScriptWitnessPairsFor, conwayBodyPairsFor). Era-gated helpers return [Aeson.Pair] and emit [] in eras that don't have the field, so JSON keys for absent-in-this-era fields (e.g. "mint" in Shelley, "collateral inputs" in Mary) are omitted from the output rather than rendered as null. The eon-based dispatchers (forShelleyBasedEraInEon, AlonzoEraOnwards, ConwayEraOnwards, ...) are no longer used in this module. Also adds an Alonzo YAML golden test alongside the existing JSON golden to cover the YAML output path for that era. Relies on cardano-api 11.1.0.0 (PR IntersectMBO/cardano-api#1199), which widened Exp.SignedTx / Exp.UnsignedTx to all Shelley-based eras.
Render update proposal field for Shelley-Babbage eras
Now that the friendly renderer covers Shelley through Babbage, those tx bodies' update field is no longer just noise — it carries real governance state (a ProposedPPUpdates map keyed by genesis-key hash and an EpochNo). Render it directly from the ledger TxBody via `updateTxBodyL`. Conway replaced update proposals with the new governance system, so the field is absent (not null) in Conway+. Adds `updateProposalPairFor` and `renderUpdate` helpers; the per-era PParamsUpdate is rendered via its ledger ToJSON instance.
Migrate friendly rendering to experimental API types, widen to all Shelley-based eras, and refactor with per-feature helpers
friendlyTx and friendlyTxBody now take ShelleyBasedEra era and accept Exp.SignedTx era / Exp.UnsignedTx (ShelleyLedgerEra era). They are no longer parameterised by Exp.Era era (which is Conway-only) — the renderer works for Shelley through Conway tx and tx-body files, unblocking transaction view for pre-Conway tx files. friendlyTxBodyImpl reads every field directly from the ledger TxBody via lenses, so the old API's TxBodyContent constructor and getTxBodyContent are no longer used in this module. The body composes a list of pairs from per-feature helpers (validityRangePair, mintPairFor, collateralInputsPairFor, requiredSignersPairFor, referenceInputsPairFor, totalCollateralPairFor, returnCollateralPairFor, alonzoScriptWitnessPairsFor, conwayBodyPairsFor). Era-gated helpers return [Aeson.Pair] and emit [] in eras that don't have the field, so JSON keys for absent-in-this-era fields (e.g. "mint" in Shelley, "collateral inputs" in Mary) are omitted from the output rather than rendered as null. The eon-based dispatchers (forShelleyBasedEraInEon, AlonzoEraOnwards, ConwayEraOnwards, ...) are no longer used in this module. Also adds an Alonzo YAML golden test alongside the existing JSON golden to cover the YAML output path for that era. Relies on cardano-api 11.1.0.0 (PR IntersectMBO/cardano-api#1199), which widened Exp.SignedTx / Exp.UnsignedTx to all Shelley-based eras.
Render update proposal field for Shelley-Babbage eras
Now that the friendly renderer covers Shelley through Babbage, those tx bodies' update field is no longer just noise — it carries real governance state (a ProposedPPUpdates map keyed by genesis-key hash and an EpochNo). Render it directly from the ledger TxBody via `updateTxBodyL`. Conway replaced update proposals with the new governance system, so the field is absent (not null) in Conway+. Adds `updateProposalPairFor` and `renderUpdate` helpers; the per-era PParamsUpdate is rendered via its ledger ToJSON instance.
Migrate friendly rendering to experimental API types, widen to all Shelley-based eras, and refactor with per-feature helpers
friendlyTx and friendlyTxBody now take ShelleyBasedEra era and accept Exp.SignedTx era / Exp.UnsignedTx (ShelleyLedgerEra era). They are no longer parameterised by Exp.Era era (which is Conway-only) — the renderer works for Shelley through Conway tx and tx-body files, unblocking transaction view for pre-Conway tx files. friendlyTxBodyImpl reads every field directly from the ledger TxBody via lenses, so the old API's TxBodyContent constructor and getTxBodyContent are no longer used in this module. The body composes a list of pairs from per-feature helpers (validityRangePair, mintPairFor, collateralInputsPairFor, requiredSignersPairFor, referenceInputsPairFor, totalCollateralPairFor, returnCollateralPairFor, alonzoScriptWitnessPairsFor, conwayBodyPairsFor). Era-gated helpers return [Aeson.Pair] and emit [] in eras that don't have the field, so JSON keys for absent-in-this-era fields (e.g. "mint" in Shelley, "collateral inputs" in Mary) are omitted from the output rather than rendered as null. The eon-based dispatchers (forShelleyBasedEraInEon, AlonzoEraOnwards, ConwayEraOnwards, ...) are no longer used in this module. Also adds an Alonzo YAML golden test alongside the existing JSON golden to cover the YAML output path for that era. Relies on cardano-api 11.1.0.0 (PR IntersectMBO/cardano-api#1199), which widened Exp.SignedTx / Exp.UnsignedTx to all Shelley-based eras.
Refactor friendlyTxBodyImpl with per-feature pair helpers
The 7-way ShelleyBasedEra case duplicated body/mAuxData extraction and a near-identical field list (with Null placeholders) in every branch. Extract one helper per feature (validityRangePair, mintPair, collateralInputsPair, requiredSignersPair, referenceInputsPair, totalCollateralPair, returnCollateralPair) plus alonzoScriptWitnessPairsFor / conwayBodyPairsFor. The top-level body now extracts body/mAuxData once and composes a flat list of pairs. No behaviour change: all golden outputs are unchanged.
Render update proposal field for Shelley-Babbage eras
Now that the friendly renderer covers Shelley through Babbage, those tx bodies' update field is no longer just noise — it carries real governance state (a ProposedPPUpdates map keyed by genesis-key hash and an EpochNo). Render it directly from the ledger TxBody via `updateTxBodyL`. Conway replaced update proposals with the new governance system, so the field is absent (not null) in Conway+. Adds `updateProposalPairFor` and `renderUpdate` helpers; the per-era PParamsUpdate is rendered via its ledger ToJSON instance.
Add Alonzo YAML golden test for debug transaction view
Migrate friendly rendering to experimental API types and widen to all Shelley-based eras
friendlyTx and friendlyTxBody now take ShelleyBasedEra era and accept Exp.SignedTx era / Exp.UnsignedTx (ShelleyLedgerEra era). They are no longer parameterised by Exp.Era era (which is Conway-only) — the renderer works for Shelley through Conway tx and tx-body files, unblocking transaction view for pre-Conway tx files. friendlyTxBodyImpl reads every field directly from the ledger TxBody via lenses, so the old API's TxBodyContent constructor and getTxBodyContent are no longer used in this module. The body dispatches on ShelleyBasedEra at the top level and each branch renders its full body inline. Era-gated fields (mint, collateral, reference inputs, governance actions, etc.) are present only in branches whose era supports them. The eon-based dispatchers (forShelleyBasedEraInEon, AlonzoEraOnwards, ConwayEraOnwards, ...) are no longer used in this module. Relies on cardano-api 11.1.0.0 (PR IntersectMBO/cardano-api#1199), which widened Exp.SignedTx / Exp.UnsignedTx to all Shelley-based eras.
Fix missing constraint
Bump cardano-api to 11.1.0.0
Bump CHaP index-state to pick up cardano-api 11.1.0.0, which contains the widening of Exp.SignedTx to all Shelley-based eras (PR #1199) used by the friendly rendering work in this branch.
Drop "update proposal" key from friendly tx output
The field was hardcoded to null across all eras since the update-proposal handling was removed in #1372. Always-null fields are noise; drop the key entirely and regenerate the goldens.