cardano-api removal: migrate unsigned Shelley tx builder (#5292)
## Scope PR for #5285 under parent #5237 / tracker #5243. This PR migrates `mkUnsignedTransaction` / `mkUnsignedTx` to ledger-native unsigned body construction, switches the remaining certificate call sites to ledger-native certificates, and deletes the obsolete `Cardano.Wallet.Transaction.Delegation` and `Cardano.Wallet.Transaction.Voting` helper modules after the migrated path is proved. The PR was reopened after Copilot review feedback to remove builder duplication, clean up the coin conversion alias, and add burn-direction parity coverage. Those follow-up tasks are tracked as T014-T016 in `tasks.md` and implemented in `2826a82dab62abe2c515b4d8179e93b3aecdbae5`. ## Artifacts - Spec: https://github.com/cardano-foundation/cardano-wallet/blob/5285-unsigned-ledger/specs/009-unsigned-ledger-builder/spec.md - Plan: https://github.com/cardano-foundation/cardano-wallet/blob/5285-unsigned-ledger/specs/009-unsigned-ledger-builder/plan.md - Tasks: https://github.com/cardano-foundation/cardano-wallet/blob/5285-unsigned-ledger/specs/009-unsigned-ledger-builder/tasks.md - Worker brief: https://github.com/cardano-foundation/cardano-wallet/blob/5285-unsigned-ledger/specs/009-unsigned-ledger-builder/briefs/T010-T013.md ## Integration-test policy No files under `lib/integration/**` may be modified in this PR. Existing integration tests may run unchanged only as verification signal. ## Verification - Baseline: `./gate.sh` passed on branch bootstrap at `59b3bcd110`: format check, fast-dev cabal build for `cardano-wallet:lib:cardano-wallet` + `cardano-wallet-unit:unit`, focused Shelley transaction specs (`44 examples, 0 failures`), and `hlint` (`No hints`). - Implementation: `./gate.sh` passed at `16e308998640e780aae209e2f55c4e88072bc9df`: fourmolu, cabal-fmt, nixfmt, library + unit build, focused Shelley transaction specs (`44 examples, 0 failures`), and `hlint` (`No hints`). - CI warning repair: `nix build --quiet .#unit-cardano-wallet-unit` passed at `3eacd6b5c4deaa874d12a6758bfab7a3f7b929ff` after removing redundant test imports that failed full-unit CI with `-Werror=unused-imports`. - Pre-review finalization: final-head CI was green at `82ab728b9617ee1d961505cacc2d8a768794a57a` before the PR was reopened for Copilot review refinements. - Copilot review response: focused `ledger script-witness parity` passed at `2826a82dab62abe2c515b4d8179e93b3aecdbae5` with `8 examples, 0 failures`; `./gate.sh` passed with `45 examples, 0 failures`; HLint reported `No hints`. - Finalization: `./gate.sh` passed again before the final drop-gate commit, with Shelley transaction specs `45 examples, 0 failures` and HLint `No hints`. - Removal guard: `rg -n "Cardano.Wallet.Transaction.(Delegation|Voting)" lib/wallet lib/unit` prints nothing. - Integration guard: `git diff --name-only origin/master...HEAD | rg '^lib/integration/'` prints nothing. - Unsigned-builder guard: `rg -n "createTransactionBody|TxBodyContent" lib/wallet/src/Cardano/Wallet/Shelley/Transaction.hs` prints one remaining `Cardano.getTxBodyContent` reference in `signTransaction` (`Transaction.hs:375`), which is outside the migrated unsigned builder path and remains scoped to #5289. - Final branch audit at `2d33771ca258b9945902fcb7a776a522b4f038ba`: every branch commit passes the message gate; `specs/009-unsigned-ledger-builder/tasks.md` has no open tasks; `gate.sh` is absent at final HEAD. ## Current phase Ready for review at `2d33771ca258b9945902fcb7a776a522b4f038ba`. Final-head CI was triggered by the push and is pending. Closes #5285.