May 05, 6-7 PM (28)
May 05, 7-8 PM (73)
May 05, 8-9 PM (31)
May 05, 9-10 PM (18)
May 05, 10-11 PM (25)
May 05, 11-12 AM (17)
May 06, 12-1 AM (10)
May 06, 1-2 AM (5)
May 06, 2-3 AM (9)
May 06, 3-4 AM (23)
May 06, 4-5 AM (7)
May 06, 5-6 AM (13)
May 06, 6-7 AM (30)
May 06, 7-8 AM (11)
May 06, 8-9 AM (106)
May 06, 9-10 AM (27)
May 06, 10-11 AM (41)
May 06, 11-12 PM (46)
May 06, 12-1 PM (86)
May 06, 1-2 PM (53)
May 06, 2-3 PM (44)
May 06, 3-4 PM (33)
May 06, 4-5 PM (18)
May 06, 5-6 PM (8)
May 06, 6-7 PM (12)
May 06, 7-8 PM (26)
May 06, 8-9 PM (13)
May 06, 9-10 PM (9)
May 06, 10-11 PM (30)
May 06, 11-12 AM (23)
May 07, 12-1 AM (7)
May 07, 1-2 AM (2)
May 07, 2-3 AM (1)
May 07, 3-4 AM (10)
May 07, 4-5 AM (4)
May 07, 5-6 AM (33)
May 07, 6-7 AM (97)
May 07, 7-8 AM (235)
May 07, 8-9 AM (42)
May 07, 9-10 AM (29)
May 07, 10-11 AM (55)
May 07, 11-12 PM (40)
May 07, 12-1 PM (59)
May 07, 1-2 PM (48)
May 07, 2-3 PM (47)
May 07, 3-4 PM (44)
May 07, 4-5 PM (58)
May 07, 5-6 PM (10)
May 07, 6-7 PM (24)
May 07, 7-8 PM (30)
May 07, 8-9 PM (12)
May 07, 9-10 PM (18)
May 07, 10-11 PM (65)
May 07, 11-12 AM (20)
May 08, 12-1 AM (6)
May 08, 1-2 AM (19)
May 08, 2-3 AM (19)
May 08, 3-4 AM (8)
May 08, 4-5 AM (3)
May 08, 5-6 AM (20)
May 08, 6-7 AM (19)
May 08, 7-8 AM (53)
May 08, 8-9 AM (34)
May 08, 9-10 AM (12)
May 08, 10-11 AM (32)
May 08, 11-12 PM (40)
May 08, 12-1 PM (30)
May 08, 1-2 PM (46)
May 08, 2-3 PM (46)
May 08, 3-4 PM (26)
May 08, 4-5 PM (23)
May 08, 5-6 PM (29)
May 08, 6-7 PM (15)
May 08, 7-8 PM (10)
May 08, 8-9 PM (15)
May 08, 9-10 PM (16)
May 08, 10-11 PM (23)
May 08, 11-12 AM (12)
May 09, 12-1 AM (4)
May 09, 1-2 AM (1)
May 09, 2-3 AM (0)
May 09, 3-4 AM (6)
May 09, 4-5 AM (6)
May 09, 5-6 AM (2)
May 09, 6-7 AM (6)
May 09, 7-8 AM (4)
May 09, 8-9 AM (4)
May 09, 9-10 AM (3)
May 09, 10-11 AM (9)
May 09, 11-12 PM (6)
May 09, 12-1 PM (21)
May 09, 1-2 PM (24)
May 09, 2-3 PM (12)
May 09, 3-4 PM (14)
May 09, 4-5 PM (7)
May 09, 5-6 PM (0)
May 09, 6-7 PM (2)
May 09, 7-8 PM (3)
May 09, 8-9 PM (1)
May 09, 9-10 PM (8)
May 09, 10-11 PM (33)
May 09, 11-12 AM (16)
May 10, 12-1 AM (15)
May 10, 1-2 AM (0)
May 10, 2-3 AM (0)
May 10, 3-4 AM (5)
May 10, 4-5 AM (0)
May 10, 5-6 AM (4)
May 10, 6-7 AM (0)
May 10, 7-8 AM (17)
May 10, 8-9 AM (8)
May 10, 9-10 AM (1)
May 10, 10-11 AM (26)
May 10, 11-12 PM (4)
May 10, 12-1 PM (49)
May 10, 1-2 PM (18)
May 10, 2-3 PM (8)
May 10, 3-4 PM (13)
May 10, 4-5 PM (26)
May 10, 5-6 PM (10)
May 10, 6-7 PM (7)
May 10, 7-8 PM (23)
May 10, 8-9 PM (12)
May 10, 9-10 PM (10)
May 10, 10-11 PM (29)
May 10, 11-12 AM (19)
May 11, 12-1 AM (12)
May 11, 1-2 AM (5)
May 11, 2-3 AM (5)
May 11, 3-4 AM (7)
May 11, 4-5 AM (3)
May 11, 5-6 AM (12)
May 11, 6-7 AM (28)
May 11, 7-8 AM (60)
May 11, 8-9 AM (34)
May 11, 9-10 AM (77)
May 11, 10-11 AM (55)
May 11, 11-12 PM (78)
May 11, 12-1 PM (84)
May 11, 1-2 PM (102)
May 11, 2-3 PM (41)
May 11, 3-4 PM (27)
May 11, 4-5 PM (24)
May 11, 5-6 PM (26)
May 11, 6-7 PM (42)
May 11, 7-8 PM (53)
May 11, 8-9 PM (57)
May 11, 9-10 PM (22)
May 11, 10-11 PM (49)
May 11, 11-12 AM (19)
May 12, 12-1 AM (2)
May 12, 1-2 AM (2)
May 12, 2-3 AM (3)
May 12, 3-4 AM (4)
May 12, 4-5 AM (8)
May 12, 5-6 AM (11)
May 12, 6-7 AM (17)
May 12, 7-8 AM (25)
May 12, 8-9 AM (25)
May 12, 9-10 AM (35)
May 12, 10-11 AM (82)
May 12, 11-12 PM (98)
May 12, 12-1 PM (38)
May 12, 1-2 PM (69)
May 12, 2-3 PM (54)
May 12, 3-4 PM (40)
May 12, 4-5 PM (49)
May 12, 5-6 PM (22)
May 12, 6-7 PM (3)
4,405 commits this week May 05, 2026 - May 12, 2026
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.
fix: restore SD+JWT credentials from backup (issue #458)
When backing up SD+JWT credentials, only the JWT ID field was being
stored instead of the full SDJWT JWS. This caused restore to fail
because SDJWTCredential.fromJWS() expects the complete JWS including
disclosures.

Changes:
- Modified Backup.ts to reconstruct full SDJWT JWS from JWT + disclosures
- Updated tests to use correct data format for SDJWT restore
- Added SDJWT to round-trip backup/restore test
- Exported credential JWS strings from fixtures for test use

Fixes #458

Signed-off-by: A-Chronicle <[email protected]>