Jan 17, 9-10 PM (6)
Jan 17, 10-11 PM (21)
Jan 17, 11-12 AM (36)
Jan 18, 12-1 AM (5)
Jan 18, 1-2 AM (2)
Jan 18, 2-3 AM (2)
Jan 18, 3-4 AM (8)
Jan 18, 4-5 AM (0)
Jan 18, 5-6 AM (1)
Jan 18, 6-7 AM (1)
Jan 18, 7-8 AM (2)
Jan 18, 8-9 AM (3)
Jan 18, 9-10 AM (1)
Jan 18, 10-11 AM (1)
Jan 18, 11-12 PM (3)
Jan 18, 12-1 PM (3)
Jan 18, 1-2 PM (3)
Jan 18, 2-3 PM (1)
Jan 18, 3-4 PM (5)
Jan 18, 4-5 PM (9)
Jan 18, 5-6 PM (4)
Jan 18, 6-7 PM (5)
Jan 18, 7-8 PM (13)
Jan 18, 8-9 PM (16)
Jan 18, 9-10 PM (12)
Jan 18, 10-11 PM (22)
Jan 18, 11-12 AM (27)
Jan 19, 12-1 AM (2)
Jan 19, 1-2 AM (10)
Jan 19, 2-3 AM (17)
Jan 19, 3-4 AM (16)
Jan 19, 4-5 AM (1)
Jan 19, 5-6 AM (4)
Jan 19, 6-7 AM (1)
Jan 19, 7-8 AM (44)
Jan 19, 8-9 AM (48)
Jan 19, 9-10 AM (27)
Jan 19, 10-11 AM (14)
Jan 19, 11-12 PM (28)
Jan 19, 12-1 PM (43)
Jan 19, 1-2 PM (38)
Jan 19, 2-3 PM (22)
Jan 19, 3-4 PM (28)
Jan 19, 4-5 PM (26)
Jan 19, 5-6 PM (13)
Jan 19, 6-7 PM (29)
Jan 19, 7-8 PM (10)
Jan 19, 8-9 PM (12)
Jan 19, 9-10 PM (10)
Jan 19, 10-11 PM (28)
Jan 19, 11-12 AM (32)
Jan 20, 12-1 AM (8)
Jan 20, 1-2 AM (11)
Jan 20, 2-3 AM (27)
Jan 20, 3-4 AM (5)
Jan 20, 4-5 AM (5)
Jan 20, 5-6 AM (0)
Jan 20, 6-7 AM (6)
Jan 20, 7-8 AM (22)
Jan 20, 8-9 AM (44)
Jan 20, 9-10 AM (37)
Jan 20, 10-11 AM (76)
Jan 20, 11-12 PM (34)
Jan 20, 12-1 PM (82)
Jan 20, 1-2 PM (73)
Jan 20, 2-3 PM (31)
Jan 20, 3-4 PM (32)
Jan 20, 4-5 PM (40)
Jan 20, 5-6 PM (36)
Jan 20, 6-7 PM (11)
Jan 20, 7-8 PM (20)
Jan 20, 8-9 PM (17)
Jan 20, 9-10 PM (16)
Jan 20, 10-11 PM (31)
Jan 20, 11-12 AM (22)
Jan 21, 12-1 AM (4)
Jan 21, 1-2 AM (5)
Jan 21, 2-3 AM (2)
Jan 21, 3-4 AM (4)
Jan 21, 4-5 AM (8)
Jan 21, 5-6 AM (3)
Jan 21, 6-7 AM (6)
Jan 21, 7-8 AM (16)
Jan 21, 8-9 AM (36)
Jan 21, 9-10 AM (58)
Jan 21, 10-11 AM (54)
Jan 21, 11-12 PM (52)
Jan 21, 12-1 PM (42)
Jan 21, 1-2 PM (32)
Jan 21, 2-3 PM (36)
Jan 21, 3-4 PM (26)
Jan 21, 4-5 PM (18)
Jan 21, 5-6 PM (11)
Jan 21, 6-7 PM (14)
Jan 21, 7-8 PM (27)
Jan 21, 8-9 PM (27)
Jan 21, 9-10 PM (6)
Jan 21, 10-11 PM (28)
Jan 21, 11-12 AM (25)
Jan 22, 12-1 AM (9)
Jan 22, 1-2 AM (12)
Jan 22, 2-3 AM (10)
Jan 22, 3-4 AM (6)
Jan 22, 4-5 AM (4)
Jan 22, 5-6 AM (2)
Jan 22, 6-7 AM (11)
Jan 22, 7-8 AM (17)
Jan 22, 8-9 AM (12)
Jan 22, 9-10 AM (19)
Jan 22, 10-11 AM (38)
Jan 22, 11-12 PM (27)
Jan 22, 12-1 PM (23)
Jan 22, 1-2 PM (39)
Jan 22, 2-3 PM (14)
Jan 22, 3-4 PM (43)
Jan 22, 4-5 PM (40)
Jan 22, 5-6 PM (22)
Jan 22, 6-7 PM (6)
Jan 22, 7-8 PM (16)
Jan 22, 8-9 PM (17)
Jan 22, 9-10 PM (14)
Jan 22, 10-11 PM (37)
Jan 22, 11-12 AM (32)
Jan 23, 12-1 AM (8)
Jan 23, 1-2 AM (16)
Jan 23, 2-3 AM (6)
Jan 23, 3-4 AM (6)
Jan 23, 4-5 AM (4)
Jan 23, 5-6 AM (5)
Jan 23, 6-7 AM (6)
Jan 23, 7-8 AM (16)
Jan 23, 8-9 AM (35)
Jan 23, 9-10 AM (50)
Jan 23, 10-11 AM (54)
Jan 23, 11-12 PM (129)
Jan 23, 12-1 PM (30)
Jan 23, 1-2 PM (30)
Jan 23, 2-3 PM (35)
Jan 23, 3-4 PM (55)
Jan 23, 4-5 PM (14)
Jan 23, 5-6 PM (37)
Jan 23, 6-7 PM (45)
Jan 23, 7-8 PM (32)
Jan 23, 8-9 PM (13)
Jan 23, 9-10 PM (8)
Jan 23, 10-11 PM (26)
Jan 23, 11-12 AM (24)
Jan 24, 12-1 AM (28)
Jan 24, 1-2 AM (4)
Jan 24, 2-3 AM (11)
Jan 24, 3-4 AM (4)
Jan 24, 4-5 AM (3)
Jan 24, 5-6 AM (0)
Jan 24, 6-7 AM (4)
Jan 24, 7-8 AM (2)
Jan 24, 8-9 AM (1)
Jan 24, 9-10 AM (2)
Jan 24, 10-11 AM (7)
Jan 24, 11-12 PM (4)
Jan 24, 12-1 PM (2)
Jan 24, 1-2 PM (1)
Jan 24, 2-3 PM (10)
Jan 24, 3-4 PM (11)
Jan 24, 4-5 PM (5)
Jan 24, 5-6 PM (13)
Jan 24, 6-7 PM (3)
Jan 24, 7-8 PM (2)
Jan 24, 8-9 PM (6)
Jan 24, 9-10 PM (1)
3,213 commits this week Jan 17, 2026 - Jan 24, 2026
Fix utxo (snapshot vs batch) view semantics
Previously allScripts` and `allData` could not "see" scripts/datums that
are only available via reference inputs that point into batch outputs,
because referenceOut utxoâ‚€ tx would miss those outputs. At the same
time, we don't want to accidentally make spend-side lookups consult a
larger view than utxoâ‚€.

To fix this, we now split the UTxO used for spend-side vs reference-side
extraction, and compute globalScripts/globalData using:

+  spend-side view = utxoâ‚€ (mempool-safety)

+  reference-side view = utxoView = utxo₀ ∪ˡ batchOuts txTop to
   resolve reference inputs to batch outputs (and to get order-agnostic
   script sharing if we want it)

+  spendOut and thus spendScripts/spendData are forced to consult utxoâ‚€.
   So even if utxoâ‚™ contains batch outputs, spend-side extraction doesn't
   silently "prefer" batch outputs.

+  Reference scripts/datums that are only available on batch outputs can
   now be resolved when reference inputs point to them because referenceOut sees utxoRefView.
revise Transactions/Utxo docs and rebase on master
+  changed globalScripts type; fixed Transaction docs
+  revise doc prose in Utxo module
+  rebase fixes
+  rewrite premises of UTXO rule

   +  **No overlapping spends across subtransactions and top-level tx**: add explicit pairwise-disjointness premise for batch spending inputs.

   +  **Reference-script/self-usable-output concern**: move reference-input validation to batch output view so reference inputs may point to outputs from full batch (including its own outputs), while keeping spending inputs mempool-safe against utxoâ‚€.
major revisions plus cleanup before doc revisions
+  fix collectP2ScriptsWithContext
+  Fix some bugs in Dijkstra Transaction module.

   +  `TxOut` is 4-tuple: `(Addr × Value × Maybe (Datum ⊎ DataHash) × Maybe Script)`
   +  `UTxO.balance` uses `txOutHash`, so if that's malformed, `balance` and minfee-related code will silently go wrong or fail to typecheck.
   +  The doc note "reference inputs may come from earlier outputs (prefix-applied)" is outdated; ∵ Carlos' CIP, we want an order-independent `utxoView`.
+  Fix bugs in Utxo module

   +  `collectP2ScriptsWithContext` now sees batch-shared scripts (witness
      inputs + ref inputs + outputs across all transactions in the batch).
   +  datum-by-hash lookup (`getDatum ... (injâ‚‚ h)`) now has an `extraData`
      pool containing everything in the batch view, hashed  into a map,
      plus `Γ.globalData`.
   +  no cyclic dependency: `Utxo` computes the batch wiring; `Script.Validation` remains generic.

+  Clean up Utxo module, removing redundancies

   +  `Γ.globalScripts` is already batch-scoped via `getAllScripts tx utxo₀` (top + subs).
   +  `Γ.globalData` is already batch-scoped via `getAllData tx utxo₀` (top + subs) and then hashed into a map.
   +  `collectP2ScriptsWithContext` (still) unions `txDataMap tx` with `extraData` (so tx-local witness data take precedence).
Add batch-level coin mint constraint to prevent Ada forgery (#1023)
+ Initial plan and improvements
+ Add batchMintedCoin constraint to prevent Ada forgery
+ Add documentation for batchMintedCoin security constraint
+ Use consistent aggregation syntax for batchMintedCoin

Co-authored-by: williamdemeo <[email protected]>

---------

Co-authored-by: William DeMeo <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: williamdemeo <[email protected]>

remove duplicate typeclass instance

address PR change requests

fix UTXOS and UTXO rules