Home / Input Output / cardano-api
Feb 19, 9-10 PM (0)
Feb 19, 10-11 PM (0)
Feb 19, 11-12 AM (0)
Feb 20, 12-1 AM (1)
Feb 20, 1-2 AM (0)
Feb 20, 2-3 AM (0)
Feb 20, 3-4 AM (0)
Feb 20, 4-5 AM (0)
Feb 20, 5-6 AM (0)
Feb 20, 6-7 AM (0)
Feb 20, 7-8 AM (0)
Feb 20, 8-9 AM (0)
Feb 20, 9-10 AM (1)
Feb 20, 10-11 AM (0)
Feb 20, 11-12 PM (0)
Feb 20, 12-1 PM (0)
Feb 20, 1-2 PM (0)
Feb 20, 2-3 PM (0)
Feb 20, 3-4 PM (0)
Feb 20, 4-5 PM (0)
Feb 20, 5-6 PM (3)
Feb 20, 6-7 PM (0)
Feb 20, 7-8 PM (0)
Feb 20, 8-9 PM (0)
Feb 20, 9-10 PM (0)
Feb 20, 10-11 PM (0)
Feb 20, 11-12 AM (0)
Feb 21, 12-1 AM (0)
Feb 21, 1-2 AM (0)
Feb 21, 2-3 AM (0)
Feb 21, 3-4 AM (0)
Feb 21, 4-5 AM (0)
Feb 21, 5-6 AM (0)
Feb 21, 6-7 AM (0)
Feb 21, 7-8 AM (0)
Feb 21, 8-9 AM (0)
Feb 21, 9-10 AM (0)
Feb 21, 10-11 AM (0)
Feb 21, 11-12 PM (0)
Feb 21, 12-1 PM (0)
Feb 21, 1-2 PM (0)
Feb 21, 2-3 PM (0)
Feb 21, 3-4 PM (0)
Feb 21, 4-5 PM (0)
Feb 21, 5-6 PM (0)
Feb 21, 6-7 PM (0)
Feb 21, 7-8 PM (0)
Feb 21, 8-9 PM (0)
Feb 21, 9-10 PM (0)
Feb 21, 10-11 PM (0)
Feb 21, 11-12 AM (0)
Feb 22, 12-1 AM (0)
Feb 22, 1-2 AM (0)
Feb 22, 2-3 AM (0)
Feb 22, 3-4 AM (0)
Feb 22, 4-5 AM (0)
Feb 22, 5-6 AM (0)
Feb 22, 6-7 AM (0)
Feb 22, 7-8 AM (0)
Feb 22, 8-9 AM (0)
Feb 22, 9-10 AM (0)
Feb 22, 10-11 AM (0)
Feb 22, 11-12 PM (0)
Feb 22, 12-1 PM (0)
Feb 22, 1-2 PM (0)
Feb 22, 2-3 PM (0)
Feb 22, 3-4 PM (0)
Feb 22, 4-5 PM (0)
Feb 22, 5-6 PM (0)
Feb 22, 6-7 PM (0)
Feb 22, 7-8 PM (0)
Feb 22, 8-9 PM (0)
Feb 22, 9-10 PM (0)
Feb 22, 10-11 PM (0)
Feb 22, 11-12 AM (0)
Feb 23, 12-1 AM (0)
Feb 23, 1-2 AM (0)
Feb 23, 2-3 AM (0)
Feb 23, 3-4 AM (0)
Feb 23, 4-5 AM (0)
Feb 23, 5-6 AM (0)
Feb 23, 6-7 AM (0)
Feb 23, 7-8 AM (0)
Feb 23, 8-9 AM (0)
Feb 23, 9-10 AM (0)
Feb 23, 10-11 AM (0)
Feb 23, 11-12 PM (0)
Feb 23, 12-1 PM (0)
Feb 23, 1-2 PM (1)
Feb 23, 2-3 PM (0)
Feb 23, 3-4 PM (0)
Feb 23, 4-5 PM (2)
Feb 23, 5-6 PM (0)
Feb 23, 6-7 PM (0)
Feb 23, 7-8 PM (0)
Feb 23, 8-9 PM (0)
Feb 23, 9-10 PM (0)
Feb 23, 10-11 PM (0)
Feb 23, 11-12 AM (0)
Feb 24, 12-1 AM (0)
Feb 24, 1-2 AM (0)
Feb 24, 2-3 AM (0)
Feb 24, 3-4 AM (0)
Feb 24, 4-5 AM (0)
Feb 24, 5-6 AM (0)
Feb 24, 6-7 AM (0)
Feb 24, 7-8 AM (0)
Feb 24, 8-9 AM (1)
Feb 24, 9-10 AM (0)
Feb 24, 10-11 AM (1)
Feb 24, 11-12 PM (0)
Feb 24, 12-1 PM (0)
Feb 24, 1-2 PM (0)
Feb 24, 2-3 PM (0)
Feb 24, 3-4 PM (0)
Feb 24, 4-5 PM (0)
Feb 24, 5-6 PM (0)
Feb 24, 6-7 PM (0)
Feb 24, 7-8 PM (0)
Feb 24, 8-9 PM (0)
Feb 24, 9-10 PM (0)
Feb 24, 10-11 PM (0)
Feb 24, 11-12 AM (0)
Feb 25, 12-1 AM (0)
Feb 25, 1-2 AM (0)
Feb 25, 2-3 AM (0)
Feb 25, 3-4 AM (0)
Feb 25, 4-5 AM (0)
Feb 25, 5-6 AM (0)
Feb 25, 6-7 AM (0)
Feb 25, 7-8 AM (0)
Feb 25, 8-9 AM (0)
Feb 25, 9-10 AM (0)
Feb 25, 10-11 AM (0)
Feb 25, 11-12 PM (0)
Feb 25, 12-1 PM (0)
Feb 25, 1-2 PM (0)
Feb 25, 2-3 PM (0)
Feb 25, 3-4 PM (0)
Feb 25, 4-5 PM (0)
Feb 25, 5-6 PM (1)
Feb 25, 6-7 PM (0)
Feb 25, 7-8 PM (0)
Feb 25, 8-9 PM (0)
Feb 25, 9-10 PM (0)
Feb 25, 10-11 PM (0)
Feb 25, 11-12 AM (0)
Feb 26, 12-1 AM (0)
Feb 26, 1-2 AM (0)
Feb 26, 2-3 AM (0)
Feb 26, 3-4 AM (0)
Feb 26, 4-5 AM (0)
Feb 26, 5-6 AM (0)
Feb 26, 6-7 AM (0)
Feb 26, 7-8 AM (1)
Feb 26, 8-9 AM (1)
Feb 26, 9-10 AM (2)
Feb 26, 10-11 AM (0)
Feb 26, 11-12 PM (0)
Feb 26, 12-1 PM (1)
Feb 26, 1-2 PM (0)
Feb 26, 2-3 PM (0)
Feb 26, 3-4 PM (1)
Feb 26, 4-5 PM (1)
Feb 26, 5-6 PM (3)
Feb 26, 6-7 PM (0)
Feb 26, 7-8 PM (0)
Feb 26, 8-9 PM (0)
Feb 26, 9-10 PM (0)
21 commits this week Feb 19, 2026 - Feb 26, 2026
Fix toLedgerDatum for supplemental datums
toLedgerDatum was incorrectly converting TxOutSupplementalDatum to
L.Datum (inline representation). Per the Alonzo ledger spec,
supplemental datums should produce L.DatumHash on the output, with
the full datum data going into TxDats separately.

Also updates fromLegacyTxOut to return supplemental datum data
alongside the TxOut, so callers can populate txSupplementalDatums.
Adds supplementalDatumFromLegacy helper for this purpose.
Add txSupplementalDatums field and refactor getDatums
getDatums previously extracted datums from transaction outputs using
L.dataTxOutL, which could not distinguish between inline datums and
supplemental datums, causing both to be added to TxDats.

Per the Alonzo ledger spec, supplemental datums are only those whose
hashes correspond to output DatumHash fields. Inline datums should
never appear in TxDats.

This commit introduces a txSupplementalDatums field on TxBodyContent
so supplemental datums can be provided explicitly, and refactors
getDatums to use this field instead of extracting from outputs.
Add property tests for calcMinFeeRecursive
Three Hedgehog properties in Test.Cardano.Api.Experimental verify the
key invariants of the recursive fee calculator:

- well-funded transaction always succeeds and produces a positive fee
- fee calculation is idempotent (result is a fixed point)
- underfunded transaction (outputs exceed inputs) always returns
  NotEnoughAda with a negative deficit coin

Two lovelace-only generators drive the tests: one with
generous UTxO funding (5–20 ADA input, 1–3 ADA output) and one where
the output deliberately exceeds the input (0.5–2 ADA vs 5–10 ADA).