Home / Input Output / cardano-cli
Mar 16, 4-5 PM (0)
Mar 16, 5-6 PM (0)
Mar 16, 6-7 PM (0)
Mar 16, 7-8 PM (0)
Mar 16, 8-9 PM (0)
Mar 16, 9-10 PM (0)
Mar 16, 10-11 PM (0)
Mar 16, 11-12 AM (0)
Mar 17, 12-1 AM (0)
Mar 17, 1-2 AM (0)
Mar 17, 2-3 AM (0)
Mar 17, 3-4 AM (0)
Mar 17, 4-5 AM (0)
Mar 17, 5-6 AM (0)
Mar 17, 6-7 AM (0)
Mar 17, 7-8 AM (0)
Mar 17, 8-9 AM (31)
Mar 17, 9-10 AM (0)
Mar 17, 10-11 AM (0)
Mar 17, 11-12 PM (0)
Mar 17, 12-1 PM (26)
Mar 17, 1-2 PM (0)
Mar 17, 2-3 PM (19)
Mar 17, 3-4 PM (0)
Mar 17, 4-5 PM (0)
Mar 17, 5-6 PM (0)
Mar 17, 6-7 PM (0)
Mar 17, 7-8 PM (0)
Mar 17, 8-9 PM (0)
Mar 17, 9-10 PM (0)
Mar 17, 10-11 PM (0)
Mar 17, 11-12 AM (0)
Mar 18, 12-1 AM (0)
Mar 18, 1-2 AM (0)
Mar 18, 2-3 AM (0)
Mar 18, 3-4 AM (0)
Mar 18, 4-5 AM (0)
Mar 18, 5-6 AM (0)
Mar 18, 6-7 AM (0)
Mar 18, 7-8 AM (0)
Mar 18, 8-9 AM (0)
Mar 18, 9-10 AM (0)
Mar 18, 10-11 AM (9)
Mar 18, 11-12 PM (0)
Mar 18, 12-1 PM (0)
Mar 18, 1-2 PM (0)
Mar 18, 2-3 PM (0)
Mar 18, 3-4 PM (0)
Mar 18, 4-5 PM (0)
Mar 18, 5-6 PM (0)
Mar 18, 6-7 PM (0)
Mar 18, 7-8 PM (0)
Mar 18, 8-9 PM (0)
Mar 18, 9-10 PM (0)
Mar 18, 10-11 PM (2)
Mar 18, 11-12 AM (3)
Mar 19, 12-1 AM (2)
Mar 19, 1-2 AM (0)
Mar 19, 2-3 AM (0)
Mar 19, 3-4 AM (0)
Mar 19, 4-5 AM (0)
Mar 19, 5-6 AM (0)
Mar 19, 6-7 AM (1)
Mar 19, 7-8 AM (3)
Mar 19, 8-9 AM (0)
Mar 19, 9-10 AM (1)
Mar 19, 10-11 AM (4)
Mar 19, 11-12 PM (0)
Mar 19, 12-1 PM (0)
Mar 19, 1-2 PM (1)
Mar 19, 2-3 PM (1)
Mar 19, 3-4 PM (0)
Mar 19, 4-5 PM (1)
Mar 19, 5-6 PM (1)
Mar 19, 6-7 PM (1)
Mar 19, 7-8 PM (1)
Mar 19, 8-9 PM (0)
Mar 19, 9-10 PM (0)
Mar 19, 10-11 PM (0)
Mar 19, 11-12 AM (0)
Mar 20, 12-1 AM (0)
Mar 20, 1-2 AM (1)
Mar 20, 2-3 AM (0)
Mar 20, 3-4 AM (0)
Mar 20, 4-5 AM (0)
Mar 20, 5-6 AM (0)
Mar 20, 6-7 AM (0)
Mar 20, 7-8 AM (0)
Mar 20, 8-9 AM (0)
Mar 20, 9-10 AM (0)
Mar 20, 10-11 AM (0)
Mar 20, 11-12 PM (0)
Mar 20, 12-1 PM (0)
Mar 20, 1-2 PM (0)
Mar 20, 2-3 PM (0)
Mar 20, 3-4 PM (0)
Mar 20, 4-5 PM (0)
Mar 20, 5-6 PM (0)
Mar 20, 6-7 PM (0)
Mar 20, 7-8 PM (0)
Mar 20, 8-9 PM (1)
Mar 20, 9-10 PM (1)
Mar 20, 10-11 PM (0)
Mar 20, 11-12 AM (0)
Mar 21, 12-1 AM (0)
Mar 21, 1-2 AM (0)
Mar 21, 2-3 AM (0)
Mar 21, 3-4 AM (0)
Mar 21, 4-5 AM (0)
Mar 21, 5-6 AM (0)
Mar 21, 6-7 AM (0)
Mar 21, 7-8 AM (0)
Mar 21, 8-9 AM (0)
Mar 21, 9-10 AM (0)
Mar 21, 10-11 AM (0)
Mar 21, 11-12 PM (0)
Mar 21, 12-1 PM (0)
Mar 21, 1-2 PM (0)
Mar 21, 2-3 PM (0)
Mar 21, 3-4 PM (0)
Mar 21, 4-5 PM (0)
Mar 21, 5-6 PM (0)
Mar 21, 6-7 PM (0)
Mar 21, 7-8 PM (0)
Mar 21, 8-9 PM (0)
Mar 21, 9-10 PM (0)
Mar 21, 10-11 PM (0)
Mar 21, 11-12 AM (0)
Mar 22, 12-1 AM (0)
Mar 22, 1-2 AM (0)
Mar 22, 2-3 AM (0)
Mar 22, 3-4 AM (0)
Mar 22, 4-5 AM (0)
Mar 22, 5-6 AM (0)
Mar 22, 6-7 AM (0)
Mar 22, 7-8 AM (0)
Mar 22, 8-9 AM (0)
Mar 22, 9-10 AM (0)
Mar 22, 10-11 AM (0)
Mar 22, 11-12 PM (0)
Mar 22, 12-1 PM (0)
Mar 22, 1-2 PM (0)
Mar 22, 2-3 PM (0)
Mar 22, 3-4 PM (0)
Mar 22, 4-5 PM (0)
Mar 22, 5-6 PM (0)
Mar 22, 6-7 PM (0)
Mar 22, 7-8 PM (0)
Mar 22, 8-9 PM (0)
Mar 22, 9-10 PM (0)
Mar 22, 10-11 PM (0)
Mar 22, 11-12 AM (0)
Mar 23, 12-1 AM (0)
Mar 23, 1-2 AM (0)
Mar 23, 2-3 AM (0)
Mar 23, 3-4 AM (0)
Mar 23, 4-5 AM (0)
Mar 23, 5-6 AM (0)
Mar 23, 6-7 AM (0)
Mar 23, 7-8 AM (0)
Mar 23, 8-9 AM (0)
Mar 23, 9-10 AM (0)
Mar 23, 10-11 AM (0)
Mar 23, 11-12 PM (0)
Mar 23, 12-1 PM (8)
Mar 23, 1-2 PM (2)
Mar 23, 2-3 PM (0)
Mar 23, 3-4 PM (9)
Mar 23, 4-5 PM (0)
129 commits this week Mar 16, 2026 - Mar 23, 2026
Introduce flat unparameterized ADTs for script requirements
The previous ScriptRequirements GADT and associated type families
(OptionalDatum, MintPolicyId) forced callers to pattern match on
nullary constructors like NoPolicyId and NoScriptDatumAllowed that
carry no information. For example, in the old Certificate/Read.hs:

    PlutusRefScriptCliArgs
        refInput
        (AnySLanguage lang)
        Exp.NoScriptDatumAllowed  -- meaningless
        NoPolicyId                -- meaningless
        redeemerFile
        execUnits

These constructors exist only to fill slots demanded by the type
families in contexts where those fields don't apply. This is an
inherent cost of a single GADT polymorphic over all script contexts.

Replace with flat, context-specific ADTs that simply omit fields
irrelevant to their context:
- PlutusSpendingScriptRequirements: carries an optional datum
- PlutusMintingScriptRequirements: carries a PolicyId
- PlutusNonAssetScriptRequirements: needs neither (certificates,
  voting, withdrawals, proposals)
Introduce flat unparameterized ADTs for script requirements
Replace the parameterized ScriptRequirements GADT and its associated type
families (OptionalDatum, MintPolicyId) with flat, context-specific ADTs:
SimpleScriptRequirements, PlutusSpendingScriptRequirements,
PlutusMintingScriptRequirements, PlutusNonAssetScriptRequirements,
AnySpendScript, AnyMintScript, and AnyNonAssetScript.