deploy: ce5f58774f61eb70bc5225db1e5428d2558f5bda
Home /
IntersectMBO /
cardano-cli
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)
May 14, 12-1 AM (0)
May 14, 1-2 AM (0)
May 14, 2-3 AM (0)
May 14, 3-4 AM (0)
May 14, 4-5 AM (0)
May 14, 5-6 AM (0)
May 14, 6-7 AM (0)
May 14, 7-8 AM (0)
May 14, 8-9 AM (0)
May 14, 9-10 AM (0)
May 14, 10-11 AM (0)
May 14, 11-12 PM (0)
May 14, 12-1 PM (0)
May 14, 1-2 PM (0)
May 14, 2-3 PM (0)
May 14, 3-4 PM (0)
May 14, 4-5 PM (0)
May 14, 5-6 PM (0)
May 14, 6-7 PM (1)
May 14, 7-8 PM (0)
May 14, 8-9 PM (2)
May 14, 9-10 PM (0)
May 14, 10-11 PM (1)
May 14, 11-12 AM (0)
May 15, 12-1 AM (0)
May 15, 1-2 AM (0)
May 15, 2-3 AM (0)
May 15, 3-4 AM (0)
May 15, 4-5 AM (0)
May 15, 5-6 AM (0)
May 15, 6-7 AM (0)
May 15, 7-8 AM (0)
May 15, 8-9 AM (0)
May 15, 9-10 AM (0)
May 15, 10-11 AM (0)
May 15, 11-12 PM (1)
May 15, 12-1 PM (1)
May 15, 1-2 PM (0)
May 15, 2-3 PM (1)
May 15, 3-4 PM (0)
May 15, 4-5 PM (0)
May 15, 5-6 PM (1)
May 15, 6-7 PM (1)
May 15, 7-8 PM (0)
May 15, 8-9 PM (0)
May 15, 9-10 PM (0)
May 15, 10-11 PM (0)
May 15, 11-12 AM (0)
May 16, 12-1 AM (0)
May 16, 1-2 AM (0)
May 16, 2-3 AM (0)
May 16, 3-4 AM (0)
May 16, 4-5 AM (0)
May 16, 5-6 AM (0)
May 16, 6-7 AM (0)
May 16, 7-8 AM (0)
May 16, 8-9 AM (0)
May 16, 9-10 AM (0)
May 16, 10-11 AM (0)
May 16, 11-12 PM (0)
May 16, 12-1 PM (0)
May 16, 1-2 PM (0)
May 16, 2-3 PM (0)
May 16, 3-4 PM (0)
20 commits this week
May 09, 2026
-
May 16, 2026
Merge pull request #1378 from IntersectMBO/mgalazyn/key-output-format-governance
Add --key-output-bech32/--key-output-text-envelope to governance key-gen commands
Add --key-output-bech32/--key-output-text-envelope to governance key-gen commands
Adds key output format flags to drep key-gen, committee key-gen-cold, and committee key-gen-hot, matching the existing address key-gen behaviour. Closes #1165
Use Exp.Certificate constructors in cardano-cli
The four call sites that produced an Exp.Certificate via helpers in Cardano.Api.Compatible.Certificate (makeStakePoolRegistrationCertificate, makeStakeAddressRegistrationCertificate, makeMIRCertificate, makeGenesisKeyDelegationCertificate) now build the ledger TxCert directly and wrap it in Exp.Certificate. This severs cardano-cli's dependency on those Compatible helpers and lets cardano-api eventually deprecate them along with the old Certificate type. Era-varying inputs (StakeRegistrationRequirements, Delegatee type families) are inlined at each callsite. MIR and GenesisKeyDelegation certificates remain pinned to BabbageEra since their on-chain serialization is uniform across Shelley->Babbage. For stake address registration the per-era case dispatches between shelleyToBabbageReg (pre-Conway, no deposit, uses ShelleyEraTxCert.mkRegTxCert) and createRegistrationCertificate (Conway+), which validates the deposit is present and delegates to Exp.makeStakeAddressRegistrationCertificate, rendering the era name via prettyShow for the error message. Compatible.Certificate.getTxCertWitness is retained where it extracts the stake-credential witness from a ledger TxCert: it operates on Ledger.TxCert directly and is independent of the old Certificate type. A follow-up cardano-api change can re-export it under the experimental API and that import can then move.
Migrate Compatible.Certificate callers to Exp.Certificate
Replace the remaining five imports of Cardano.Api.Compatible.Certificate with direct ledger-level construction of Exp.Certificate. This removes the indirection through the Compatible API so the old Certificate type in cardano-api can be deprecated. The era-varying helpers (StakeRegistrationRequirements, Delegatee type families) are inlined at each callsite. MIR and GenesisKeyDelegation certificates remain pinned to BabbageEra since their on-chain serialization is uniform across Shelley->Babbage. For stake address registration the per-era case dispatches between two paths: shelleyToBabbageReg (pre-Conway, no deposit, uses ShelleyEraTxCert.mkRegTxCert) and createRegistrationCertificate (Conway+) which validates the deposit is present and delegates to Exp.makeStakeAddressRegistrationCertificate, rendering the era name via prettyShow for the error message.
Factor stake address reg into era-set-indexed helpers
Move the stake address registration cert construction out of the per-era case into two top-level helpers: shelleyToBabbageReg for pre-Conway (uses ShelleyEraTxCert.mkRegTxCert) and expReg for Conway-onwards (indexed by Exp.Era era, uses ConwayEraTxCert .mkRegDepositTxCert via obtainCommonConstraints).
Migrate Compatible.Certificate callers to Exp.Certificate
Replace the remaining five imports of Cardano.Api.Compatible.Certificate with direct ledger-level construction of Exp.Certificate. This removes the indirection through the Compatible API so the old Certificate type in cardano-api can be deprecated. The era-varying helpers (StakeRegistrationRequirements, Delegatee type families) are inlined at each callsite. MIR and GenesisKeyDelegation certificates remain pinned to BabbageEra since their on-chain serialization is uniform across Shelley→Babbage.
Remove TxOut CtxTx/CtxUTxO usage from cardano-cli (non-Byron)
Eliminate the legacy 'TxOut CtxTx era' and 'TxOut CtxUTxO era' type
signatures and pattern matches from cardano-cli's non-Byron code paths.
Byron-era code is left alone — Byron uses a separate pre-Shelley tx
output model and 'Exp.TxOut' is not applicable.
Surfaces migrated:
* 'Cardano.CLI.Compatible.Transaction.TxOut': 'mkTxOut' and
'toTxOutInAnyEra' now return '(Exp.TxOut, Map DataHash (L.Data ...))'
directly. The legacy 'TxOut CtxTx era' is still used internally as a
stepping stone to reuse the api's 'toShelleyTxOutAny' field-level
conversion logic; it does not leak to callers.
* 'Cardano.CLI.Compatible.Transaction.Run': the 'createCompatibleTx'
call site now just splits the tuple returned by 'toTxOutInAnyEra'.
* 'Cardano.CLI.EraBased.Transaction.Run': 'toTxOutInEra' and
'toTxOutInShelleyBasedEra' delegate straight to 'mkTxOut' now that
it produces the tuple itself.
* 'Cardano.CLI.Compatible.Json.Friendly.friendlyTxOut': now takes
'Exp.TxOut (LedgerEra era)' and reads address / value / datum /
reference script directly via the ledger lenses ('addrTxOutL',
'valueTxOutL', 'datumTxOutL', 'referenceScriptTxOutL'). The two
call sites in 'basePairs' and 'friendlyReturnCollateral' wrap the
body's ledger outputs with 'Exp.TxOut' directly instead of going
through 'fromShelleyTxOut → fromCtxUTxOTxOut'. The dead
'friendlyTxOutValue' helper is dropped.
* 'Cardano.CLI.EraBased.Query.Run.filteredUTxOsToText': now takes a
'ShelleyBasedEra era' witness; converts the api 'UTxO era' to the
ledger UTxO once via 'toLedgerUTxO', then renders each entry from
'(api TxIn, Exp.TxOut (ShelleyLedgerEra era))' using ledger lenses.
The pre-Babbage datum slot has no uniform ledger representation,
so the text renderer emits an empty placeholder there and shows
the babbage+ ledger datum elsewhere — debug-style output, no
golden tests.
* 'Cardano.CLI.Type.Error.TxValidationError': removed
'validateTxReturnCollateral', which was exported but never called
anywhere outside its own module (the actual return-collateral
construction in 'EraBased/Transaction/Run' builds
'Exp.TxReturnCollateral' directly).
Remaining uses of legacy ctx-typed tx outputs in cardano-cli are
confined to Byron-only modules and to the internal stepping-stone use
inside 'mkTxOut'.
Migrate to experimental TxOut in createCompatibleTx
Adapt to cardano-api PR #1209, which removes the legacy 'TxOut CtxTx era'
from the Compatible and Experimental APIs:
* createCompatibleTx now takes '[Exp.TxOut (ShelleyLedgerEra era)]' plus
a new 'Map L.DataHash (L.Data ...)' of supplemental datum bodies. The
legacy 'TxOut CtxTx era' bundled supplemental datums inside outputs;
'Exp.TxOut' only carries the datum hash, so callers thread the full
datum bodies in explicitly.
* The bridge helpers in 'Cardano.Api.Experimental.Tx'
(fromLegacyTxOut, legacyDatumToDatum, supplementalDatumFromLegacy,
toLedgerDatum, DatumDecodingError) are deleted.
Changes here:
* Add a 'convertLegacyTxOut' helper in
'Cardano.CLI.Compatible.Transaction.TxOut' that maps each legacy
'TxOut CtxTx era' to '(Exp.TxOut, Map DataHash (L.Data ...))' using
'toShelleyTxOutAny' (which already strips supplemental datums to
their hash in the ledger TxOut) and pulls the supplemental datum
bodies into the map.
* Update the 'createCompatibleTx' call in
'Cardano.CLI.Compatible.Transaction.Run' to convert outs at the
boundary and pass the folded 'extraDatums' map.
* Replace 'Exp.fromLegacyTxOut' in 'toTxOutInEra' and
'toTxOutInShelleyBasedEra' with 'convertLegacyTxOut', using
'obtainCommonConstraints' to bridge 'ShelleyLedgerEra ~ LedgerEra'.
* Drop 'TxCmdDatumDecodingError' from 'TxCmdError' since the
underlying 'Exp.DatumDecodingError' is gone and the new conversion
is total.
Temporary cabal.project additions (to be removed once #1209 is merged
and the next cardano-api is published to CHaP):
* source-repository-package pointing at the PR branch, so CI can
build against the unpublished API.
* Per-package '-Wwarn=deprecations -Wwarn=unused-imports' for
cardano-cli. The PR branch is several commits ahead of
cardano-api-11.1.0.0 and surfaces unrelated TxBody/TxBodyContent
deprecations (cardano-api PR #1200) plus a redundant
'Cardano.Ledger.Core' import in 'Cardano.CLI.Read' that became
visible after upstream re-exports widened. Both are separate
cardano-cli cleanups out of scope for this PR.
deploy: 9ca9c9b2f83b81d673ecdb0a21dde4190ff51134
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.