Skip to content

Add Dijkstra sub-transaction witness and assemble commands - #1485

Draft
Jimbo4350 wants to merge 2 commits into
masterfrom
feature/dijkstra-sub-transaction-witness-assemble
Draft

Jimbo4350 wants to merge 2 commits into
masterfrom
feature/dijkstra-sub-transaction-witness-assemble

Conversation

@Jimbo4350

Copy link
Copy Markdown
Contributor

Context

Sub-transactions currently require all signing keys to be supplied to sign together. Add Dijkstra sub-transaction witness to create an individual key witness and sub-transaction assemble to combine an unsigned sub-transaction with separately collected witness files.

Both commands reuse the existing Dijkstra witness format and preserve the body bytes and script payloads. They reject Byron keys/bootstrap witnesses, and assembly rejects witnesses from other eras.

How to trust this PR

cardano-cli dijkstra sub-transaction witness --sub-tx-file sub.unsigned --signing-key-file payment.skey --out-file payment.witness
cardano-cli dijkstra sub-transaction assemble --sub-tx-file sub.unsigned --witness-file payment.witness --out-file sub.signed

Validation completed:

  • Built the CLI and both test executables.
  • All 41 selected sub-transaction tests passed, including equivalence with direct signing, empty/multiple/duplicate witnesses, preservation of canonical and noncanonical body bytes and script payloads, and invalid-input rejection.
  • All 628 selected golden/help tests passed, including the witness/assemble/embed pipeline and existing transaction witnessing/assembly coverage.
  • Fourmolu and HLint passed. The repository's style-check script also passed; the installed commit-hook launcher references an unavailable Nix executable.

Changelog

- description: Add Dijkstra sub-transaction witness and assemble commands for separate key witnessing and assembly.
  type:
    - feature

Checklist

  • Commit sequence broadly makes sense and commits have useful messages
  • New tests are added if needed and existing tests are updated
  • Self-reviewed the diff
  • Changelog fragment added in .changes/

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant