Repository navigation
Add --tx-in-collateral and derive the era in compatible commands - #1408
Merged
Merged
Conversation
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
from
August 13, 2026 15:18
bcacc88 to
4a530f9
Compare
carbolymer
marked this pull request as ready for review
August 13, 2026 15:31
carbolymer
requested review from
disassembler,
kevinhammond,
newhoggy and
palas
as code owners
August 13, 2026 15:31
Contributor
There was a problem hiding this comment.
Pull request overview
Updates cardano-cli to align with upstream cardano-api changes, primarily around compatible transaction construction and a few related cleanups in CLI parsing and JSON output.
Changes:
- Refactors compatible transaction creation to build from
defaultCompatibleTxBodyContentand set fields explicitly. - Extends Bech32 KES key parsing to handle
Bech32InvalidUtf8. - Minor naming/import adjustments in JSON output and genesis testnet data code.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| cardano-cli/src/Cardano/CLI/Type/Output.hs | Renames the ChainTip block number binder for clearer JSON encoding code. |
| cardano-cli/src/Cardano/CLI/EraBased/Genesis/CreateTestnetData/Run.hs | Adjusts ledger import list (currently breaks StandardCrypto usage later in the file). |
| cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs | Adds handling for Bech32InvalidUtf8 in KES key parsing; exposes an error-message mismatch in the hex fallback. |
| cardano-cli/src/Cardano/CLI/Compatible/Transaction/Run.hs | Updates compatible tx building to the newer defaultCompatibleTxBodyContent-based API shape. |
Suppressed comments (1)
cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs:1962
- The hex fallback error message says "Invalid stake pool verification key" but this parser is for a KES verification key, so the message is misleading for users.
Left err@(Bech32InvalidUtf8 _) -> Left $ displayError err
-- The input was not valid Bech32. Attempt to deserialise it as hex.
Left (Bech32DecodingError _) ->
first
(\e -> docToString $ "Invalid stake pool verification key: " <> prettyError e)
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
2 times, most recently
from
August 13, 2026 15:45
de6d781 to
4721ced
Compare
9 tasks
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
2 times, most recently
from
August 13, 2026 17:47
c8cb8d4 to
92790ca
Compare
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
from
August 24, 2026 15:24
92790ca to
2203d8b
Compare
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
2 times, most recently
from
September 2, 2026 12:54
779ecbe to
569b2bb
Compare
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
2 times, most recently
from
October 9, 2026 10:47
b2a5459 to
0b0ffdb
Compare
carbolymer
added this pull request to stack #1458
October 9, 2026 10:48
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
from
October 14, 2026 16:54
0b0ffdb to
9eeb7a3
Compare
carbolymer
removed this pull request from stack #1458
October 14, 2026 16:55
| & Exp.setTxMintValue validatedMintValue | ||
| & Exp.setTxVotingProcedures validatedVotingProcedures | ||
| & Exp.setTxProposalProcedures (Exp.mkTxProposalProcedures txProposals) | ||
| & maybe id Exp.setTxCurrentTreasuryValue (unTxCurrentTreasuryValue <$> mCurrentTreasury) |
carbolymer
changed the base branch from
master
to
jordan/basic-sub-tx-integration
October 14, 2026 16:55
carbolymer
added this pull request to stack #1466
October 14, 2026 16:56
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
from
October 15, 2026 06:31
9eeb7a3 to
5d15b49
Compare
3 of 4 tasks
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
2 times, most recently
from
October 15, 2026 07:54
89b98a6 to
dea2f66
Compare
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
4 times, most recently
from
October 15, 2026 08:33
32c0962 to
4c1e657
Compare
Jimbo4350
requested changes
Oct 15, 2026
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
from
October 16, 2026 10:30
4c1e657 to
05dee42
Compare
Jimbo4350
approved these changes
Oct 16, 2026
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
from
October 16, 2026 12:13
05dee42 to
f7083c6
Compare
Add a repeatable `--tx-in-collateral` option to `compatible <era> transaction signed-transaction` and pass the inputs to cardano-api's `compatibleTxInsCollateral`, so transactions with Plutus witnesses can include collateral inputs. The option is available from the Alonzo era onwards; Shelley, Allegra and Mary do not offer it. Compatible commands no longer pin Conway for vote, proposal and certificate reference-script options or for protocol-parameter update proposals, so a Dijkstra compatible group needs no further changes there. Existing eras behave as before. The parser and runner match on `ShelleyBasedEra` instead of using `*Onwards` eons and `Featured`. Raise the Windows test watchdog to 90 seconds, because the Wine-emulated cross-compiled test runs exceed 35 seconds per test case.
carbolymer
force-pushed
the
mgalazyn/feature/update-compatible-tx
branch
from
October 16, 2026 12:30
f7083c6 to
f17a245
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a repeatable
--tx-in-collateraloption tocompatible <era> transaction signed-transactionin the Alonzo era and later.A transaction that runs Plutus scripts needs collateral inputs, and without them the ledger rejects it with
NoCollateralInputs.Motivated by the tx-generator migration in:
It also stops the compatible commands from hardcoding Conway, so adding a Dijkstra compatible group needs no further changes there.
Changes:
CreateCompatibleSignedTransactiontakes a list of collateral inputs and passes it tocreateCompatibleTxascompatibleTxInsCollateral.--tx-in-collateral, and the help goldens are regenerated.errorstub in the Dijkstra branch.pVoteFile,pProposalFileandpCertificateFilehelpers are removed fromCardano.CLI.EraBased.Common.Option, because nothing uses them any more.There is no
compatible dijkstragroup yet, so the Dijkstra paths are only type-checked.Help output for the existing compatible eras is unchanged.
Note
The cardano-api 11.9.0.0 bump, the move to
CompatibleTxBodyContentand--protocol-params-file, which this PR used to carry, were merged with #1453.Checklist
.changes/