Mar 03, 5-6 PM (12)
Mar 03, 6-7 PM (16)
Mar 03, 7-8 PM (20)
Mar 03, 8-9 PM (4)
Mar 03, 9-10 PM (31)
Mar 03, 10-11 PM (44)
Mar 03, 11-12 AM (20)
Mar 04, 12-1 AM (8)
Mar 04, 1-2 AM (19)
Mar 04, 2-3 AM (12)
Mar 04, 3-4 AM (7)
Mar 04, 4-5 AM (7)
Mar 04, 5-6 AM (6)
Mar 04, 6-7 AM (7)
Mar 04, 7-8 AM (48)
Mar 04, 8-9 AM (54)
Mar 04, 9-10 AM (33)
Mar 04, 10-11 AM (97)
Mar 04, 11-12 PM (40)
Mar 04, 12-1 PM (47)
Mar 04, 1-2 PM (66)
Mar 04, 2-3 PM (81)
Mar 04, 3-4 PM (102)
Mar 04, 4-5 PM (18)
Mar 04, 5-6 PM (62)
Mar 04, 6-7 PM (60)
Mar 04, 7-8 PM (39)
Mar 04, 8-9 PM (56)
Mar 04, 9-10 PM (15)
Mar 04, 10-11 PM (26)
Mar 04, 11-12 AM (26)
Mar 05, 12-1 AM (15)
Mar 05, 1-2 AM (18)
Mar 05, 2-3 AM (17)
Mar 05, 3-4 AM (16)
Mar 05, 4-5 AM (3)
Mar 05, 5-6 AM (9)
Mar 05, 6-7 AM (27)
Mar 05, 7-8 AM (20)
Mar 05, 8-9 AM (31)
Mar 05, 9-10 AM (72)
Mar 05, 10-11 AM (43)
Mar 05, 11-12 PM (53)
Mar 05, 12-1 PM (65)
Mar 05, 1-2 PM (51)
Mar 05, 2-3 PM (68)
Mar 05, 3-4 PM (64)
Mar 05, 4-5 PM (55)
Mar 05, 5-6 PM (57)
Mar 05, 6-7 PM (66)
Mar 05, 7-8 PM (20)
Mar 05, 8-9 PM (21)
Mar 05, 9-10 PM (8)
Mar 05, 10-11 PM (22)
Mar 05, 11-12 AM (21)
Mar 06, 12-1 AM (11)
Mar 06, 1-2 AM (18)
Mar 06, 2-3 AM (8)
Mar 06, 3-4 AM (0)
Mar 06, 4-5 AM (11)
Mar 06, 5-6 AM (5)
Mar 06, 6-7 AM (16)
Mar 06, 7-8 AM (65)
Mar 06, 8-9 AM (35)
Mar 06, 9-10 AM (46)
Mar 06, 10-11 AM (48)
Mar 06, 11-12 PM (45)
Mar 06, 12-1 PM (48)
Mar 06, 1-2 PM (89)
Mar 06, 2-3 PM (93)
Mar 06, 3-4 PM (37)
Mar 06, 4-5 PM (40)
Mar 06, 5-6 PM (20)
Mar 06, 6-7 PM (16)
Mar 06, 7-8 PM (22)
Mar 06, 8-9 PM (15)
Mar 06, 9-10 PM (13)
Mar 06, 10-11 PM (28)
Mar 06, 11-12 AM (22)
Mar 07, 12-1 AM (16)
Mar 07, 1-2 AM (1)
Mar 07, 2-3 AM (6)
Mar 07, 3-4 AM (0)
Mar 07, 4-5 AM (1)
Mar 07, 5-6 AM (5)
Mar 07, 6-7 AM (7)
Mar 07, 7-8 AM (7)
Mar 07, 8-9 AM (4)
Mar 07, 9-10 AM (3)
Mar 07, 10-11 AM (0)
Mar 07, 11-12 PM (4)
Mar 07, 12-1 PM (6)
Mar 07, 1-2 PM (2)
Mar 07, 2-3 PM (6)
Mar 07, 3-4 PM (22)
Mar 07, 4-5 PM (21)
Mar 07, 5-6 PM (5)
Mar 07, 6-7 PM (0)
Mar 07, 7-8 PM (7)
Mar 07, 8-9 PM (10)
Mar 07, 9-10 PM (7)
Mar 07, 10-11 PM (37)
Mar 07, 11-12 AM (28)
Mar 08, 12-1 AM (3)
Mar 08, 1-2 AM (5)
Mar 08, 2-3 AM (5)
Mar 08, 3-4 AM (1)
Mar 08, 4-5 AM (1)
Mar 08, 5-6 AM (1)
Mar 08, 6-7 AM (0)
Mar 08, 7-8 AM (3)
Mar 08, 8-9 AM (8)
Mar 08, 9-10 AM (2)
Mar 08, 10-11 AM (0)
Mar 08, 11-12 PM (1)
Mar 08, 12-1 PM (3)
Mar 08, 1-2 PM (6)
Mar 08, 2-3 PM (6)
Mar 08, 3-4 PM (15)
Mar 08, 4-5 PM (0)
Mar 08, 5-6 PM (31)
Mar 08, 6-7 PM (7)
Mar 08, 7-8 PM (8)
Mar 08, 8-9 PM (12)
Mar 08, 9-10 PM (1)
Mar 08, 10-11 PM (25)
Mar 08, 11-12 AM (25)
Mar 09, 12-1 AM (6)
Mar 09, 1-2 AM (5)
Mar 09, 2-3 AM (21)
Mar 09, 3-4 AM (20)
Mar 09, 4-5 AM (2)
Mar 09, 5-6 AM (4)
Mar 09, 6-7 AM (3)
Mar 09, 7-8 AM (21)
Mar 09, 8-9 AM (36)
Mar 09, 9-10 AM (29)
Mar 09, 10-11 AM (44)
Mar 09, 11-12 PM (31)
Mar 09, 12-1 PM (60)
Mar 09, 1-2 PM (24)
Mar 09, 2-3 PM (74)
Mar 09, 3-4 PM (60)
Mar 09, 4-5 PM (127)
Mar 09, 5-6 PM (50)
Mar 09, 6-7 PM (54)
Mar 09, 7-8 PM (23)
Mar 09, 8-9 PM (25)
Mar 09, 9-10 PM (13)
Mar 09, 10-11 PM (60)
Mar 09, 11-12 AM (24)
Mar 10, 12-1 AM (5)
Mar 10, 1-2 AM (35)
Mar 10, 2-3 AM (34)
Mar 10, 3-4 AM (6)
Mar 10, 4-5 AM (3)
Mar 10, 5-6 AM (5)
Mar 10, 6-7 AM (20)
Mar 10, 7-8 AM (69)
Mar 10, 8-9 AM (110)
Mar 10, 9-10 AM (30)
Mar 10, 10-11 AM (27)
Mar 10, 11-12 PM (53)
Mar 10, 12-1 PM (65)
Mar 10, 1-2 PM (51)
Mar 10, 2-3 PM (75)
Mar 10, 3-4 PM (38)
Mar 10, 4-5 PM (42)
Mar 10, 5-6 PM (8)
4,530 commits this week Mar 03, 2026 - Mar 10, 2026
replace 'fetch.mjs' + ogmios with a pure Haskell-based solution.
  This is an attempt at simplifying our snapshot-production process to be leaner and involve less tools. The current solutions requires a running node, Ogmios attached to it, and a script monitoring the whole. Plus, the data must be extracted while the node is syncing, which is not only unpractical to do repeatedly, but also quite brittle as it can sometimes fails due to concurrency issues (especially on mainnet, when building some of that data takes time).

  Plus, adding intermediaries like Ogmios in the loop, even if written in Haskell using the Cardano libraries, adds room for mistakes and discrepancies. There are already various transformations that are required on top of the raw ledger data, so it is better to reduce the surface and operate directly on the base data. Using the ledger state queries over the wire is unnecessary.

  The current commit only replaces the 'fetch.mjs' script, although the end goal is to produce the test vectors we currently produce using the 'generate.mjs' script (which combines data fetched from multiple epochs).

  As for the input snapshots, they can now be obtained from a working database using the db-analyzer (from ouroboros-consensus). Although this can take several hours on mainnet, it is easier to instrument than manually removing blocks from the immutable db and making queries while the node is syncing.

Signed-off-by: KtorZ <[email protected]>
Remove CLI-specific AnyPlutusScript, use Exp.AnyPlutusScript throughout
Replace the hand-rolled AnyPlutusScript GADT in Compatible/Read.hs with
Cardano.Api.Experimental.Plutus.AnyPlutusScript. Update readFilePlutusScript
to accept a ShelleyBasedEra era witness and return the era-parameterised
experimental type directly. Simplify Compatible/Transaction/Run.hs and
rewrite Compatible/Transaction/ScriptWitness.hs to use the experimental
script witness API throughout, eliminating the old CertificateScriptWitness
wrapper and all associated boilerplate.