Support Plutus V4 CBOR tag in AlonzoScript decoder #5567
+1
−0
IOG Hydra / ci/hydra-build:x86_64-linux.checks.cardano-ledger-dijkstra:test:tests
failed
Feb 9, 2026 in 33m 54s
Build failed
1 failed steps
Details
Failed Steps
Step 1
Derivation
/nix/store/pwdibify0qwhh8265n34b1b62600k700-cardano-ledger-dijkstra-test-tests-0.2.0.0-check.drv
Log
Running phase: unpackPhase
unpacking source archive /nix/store/phzl6hqdnwdm6fw01ij9qvz5glxd9c9v-source-eras-dijkstra-impl-test-tests-root
source root is source-eras-dijkstra-impl-test-tests-root
Running phase: patchPhase
Running phase: buildPhase
/nix/store/4hfl4hb3hr5s29nd83nfirrlr05ck86v-cardano-ledger-dijkstra-test-tests-0.2.0.0/bin:
patching script interpreter paths in /build/tmp.tGwlfd4P3W/bin
Dijkstra
RoundTrip
Dijkstra Transaction Types
GovAction DijkstraEra [✔] (2645ms)
+++ OK, passed 100 tests.
VotingProcedure DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
VotingProcedures DijkstraEra [✔] (1021ms)
+++ OK, passed 100 tests.
ProposalProcedure DijkstraEra [✔] (1914ms)
+++ OK, passed 100 tests.
Constitution DijkstraEra [✔] (2ms)
+++ OK, passed 100 tests.
CostModels [✔] (20599ms)
+++ OK, passed 100 tests.
Dijkstra State Types
EnactState DijkstraEra [✔] (38893ms)
+++ OK, passed 100 tests.
GovActionState DijkstraEra [✔] (1911ms)
+++ OK, passed 100 tests.
Proposals DijkstraEra [✔] (35261ms)
+++ OK, passed 100 tests.
DRepPulsingState DijkstraEra [✔] (152813ms)
+++ OK, passed 100 tests.
PulsingSnapshot DijkstraEra [✔] (65895ms)
+++ OK, passed 100 tests.
RatifyState DijkstraEra [✔] (95879ms)
+++ OK, passed 100 tests.
VState DijkstraEra [✔] (470ms)
+++ OK, passed 100 tests.
Alonzo era types
Data DijkstraEra [✔] (5ms)
+++ OK, passed 100 tests.
Data DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
BinaryData DijkstraEra [✔] (3ms)
+++ OK, passed 100 tests.
CostModels [✔] (24933ms)
+++ OK, passed 100 tests.
Datum doesn't roundtrip
Datum DijkstraEra [‐] (1ms)
# PENDING: No reason given
TxDats [✔] (37ms)
+++ OK, passed 100 tests.
Redeemers [✔] (35ms)
+++ OK, passed 100 tests.
Core Type Families
MaryValue [✔] (84ms)
+++ OK, passed 100 tests.
CompactForm MaryValue [✔] (333ms)
+++ OK, passed 100 tests.
BabbageTxOut DijkstraEra [✔] (32ms)
+++ OK, passed 100 tests.
DijkstraTxCert DijkstraEra [✔] (14ms)
+++ OK, passed 100 tests.
PParams DijkstraEra [✔] (19708ms)
+++ OK, passed 100 tests.
PParamsUpdate DijkstraEra [✔] (14569ms)
+++ OK, passed 100 tests.
AlonzoScript DijkstraEra [✔] (3ms)
+++ OK, passed 100 tests.
AlonzoScript DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
AlonzoTxAuxData DijkstraEra [✔] (103ms)
+++ OK, passed 100 tests.
AlonzoTxAuxData DijkstraEra [✔] (67ms)
+++ OK, passed 100 tests.
AlonzoTxWits DijkstraEra [✔] (574ms)
+++ OK, passed 100 tests.
AlonzoTxWits DijkstraEra [✔] (589ms)
+++ OK, passed 100 tests.
TxBody TopTx DijkstraEra [✔] (83526ms)
+++ OK, passed 100 tests.
TxBody TopTx DijkstraEra [✔] (119804ms)
+++ OK, passed 100 tests.
Tx TopTx DijkstraEra [✔] (82420ms)
+++ OK, passed 100 tests.
Tx TopTx DijkstraEra [✔] (124536ms)
+++ OK, passed 100 tests.
MemPack/CBOR Roundtrip BabbageTxOut DijkstraEra [✔] (18ms)
+++ OK, passed 100 tests.
ConwayCertState DijkstraEra [✔] (4196ms)
+++ OK, passed 100 tests.
Core State Types
SnapShots [✔] (4682ms)
+++ OK, passed 100 tests.
DState DijkstraEra [✔] (88ms)
+++ OK, passed 100 tests.
PState DijkstraEra [✔] (3142ms)
+++ OK, passed 100 tests.
CommitteeState DijkstraEra [✔] (30ms)
+++ OK, passed 100 tests.
UTxO DijkstraEra [✔] (411ms)
+++ OK, passed 100 tests.
State Types Families
ConwayGovState DijkstraEra [✔] (261757ms)
+++ OK, passed 100 tests.
State Types
UTxOState DijkstraEra [✔] (225363ms)
+++ OK, passed 100 tests.
EpochState DijkstraEra [✔] (258247ms)
+++ OK, passed 100 tests.
NewEpochState DijkstraEra [✔] (263651ms)
+++ OK, passed 100 tests.
Predicate Failures
DijkstraBbodyPredFailure DijkstraEra [✔] (17ms)
+++ OK, passed 100 tests.
ConwayCertPredFailure DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
ConwayCertsPredFailure DijkstraEra [✔] (11ms)
+++ OK, passed 100 tests.
ConwayDelegPredFailure DijkstraEra [✔]
+++ OK, passed 100 tests.
DijkstraGovCertPredFailure DijkstraEra [✔] (2ms)
+++ OK, passed 100 tests.
DijkstraGovPredFailure DijkstraEra [✔] (490ms)
+++ OK, passed 100 tests.
DijkstraLedgerPredFailure DijkstraEra [✔] (39ms)
+++ OK, passed 100 tests.
ShelleyLedgersPredFailure DijkstraEra [✔] (29ms)
+++ OK, passed 100 tests.
ShelleyPoolPredFailure DijkstraEra [✔]
+++ OK, passed 100 tests.
DijkstraUtxoPredFailure DijkstraEra [✔] (185ms)
+++ OK, passed 100 tests.
ConwayUtxosPredFailure DijkstraEra [✔] (14830ms)
+++ OK, passed 100 tests.
DijkstraUtxowPredFailure DijkstraEra [✔] (655ms)
+++ OK, passed 100 tests.
CDDL
Generate bytestring from CDDL and decode/encode
account_balance_interval: AccountBalanceInterval DijkstraEra [✔] (11ms)
Generate bytestring from CDDL and decode/encode
account_balance_intervals: Map AccountId (AccountBalanceInterval DijkstraEra) [✔] (7ms)
Encode an arbitrary value and check against CDDL
account_balance_interval: AccountBalanceInterval DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
Generate bytestring from CDDL and decode/encode
positive_coin: MaryValue [✔]
Encode an arbitrary value and check against CDDL
value: MaryValue [✔] (51ms)
+++ OK, passed 100 tests.
MultiAsset
Generate bytestring from CDDL and decode/encode
value: MaryValue [✔] (6ms)
fix TxBody
transaction_body: Annotator (MemoBytes (DijkstraTxBodyRaw TopTx DijkstraEra)) [✔] (40ms)
Generate bytestring from CDDL and decode/encode
transaction_body: MemoBytes (DijkstraTxBodyRaw TopTx DijkstraEra) [✔] (29ms)
sub_transaction_body: Annotator (MemoBytes (DijkstraTxBodyRaw SubTx DijkstraEra)) [✔] (31ms)
Generate bytestring from CDDL and decode/encode
sub_transaction_body: MemoBytes (DijkstraTxBodyRaw SubTx DijkstraEra) [✔] (35ms)
hangs
Encode an arbitrary value and check against CDDL
transaction_body: MemoBytes (DijkstraTxBodyRaw TopTx DijkstraEra) [‐]?7h
# PENDING: No reason given
Encode an arbitrary value and check against CDDL
sub_transaction_body: MemoBytes (DijkstraTxBodyRaw SubTx DijkstraEra) [‐]
# PENDING: No reason given
auxiliary_data: Annotator (MemoBytes (AlonzoTxAuxDataRaw DijkstraEra)) [✔] (8ms)
fix plutus scripts
Encode an arbitrary value and check against CDDL
auxiliary_data: MemoBytes (AlonzoTxAuxDataRaw DijkstraEra) [‐]
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
auxiliary_data: MemoBytes (AlonzoTxAuxDataRaw DijkstraEra) [‐]
# PENDING: No reason given
native_script: Annotator (DijkstraNativeScript DijkstraEra) [✔] (3ms)
Encode an arbitrary value and check against CDDL
native_script: DijkstraNativeScript DijkstraEra [✔] (2ms)
+++ OK, passed 100 tests.
Generate bytestring from CDDL and decode/encode
native_script: DijkstraNativeScript DijkstraEra [✔] (6ms)
plutus_data: Annotator (MemoBytes (PlutusData DijkstraEra)) [✔] (12ms)
Encode an arbitrary value and check against CDDL
plutus_data: MemoBytes (PlutusData DijkstraEra) [✔] (4ms)
+++ OK, passed 100 tests.
Generate bytestring from CDDL and decode/encode
plutus_data: MemoBytes (PlutusData DijkstraEra) [✔] (7ms)
fix TxOut
Generate bytestring from CDDL and decode/encode
transaction_output: BabbageTxOut DijkstraEra [‐]
# PENDING: No reason given
fix address
Encode an arbitrary value and check against CDDL
transaction_output: BabbageTxOut DijkstraEra [‐]?7h
# PENDING: No reason given
fix Script
script: Annotator (AlonzoScript DijkstraEra) [‐]
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
script: AlonzoScript DijkstraEra [‐]
# PENDING: No reason given
fix plutus_v1_script
Encode an arbitrary value and check against CDDL
script: AlonzoScript DijkstraEra [‐]
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
datum_option: Datum DijkstraEra [✔] (3ms)
fix NoDatum
Encode an arbitrary value and check against CDDL
datum_option: Datum DijkstraEra [‐]
# PENDING: No reason given
fix duplicates in maps
transaction_witness_set: Annotator (MemoBytes (AlonzoTxWitsRaw DijkstraEra)) [‐]
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
transaction_witness_set: MemoBytes (AlonzoTxWitsRaw DijkstraEra) [‐]
# PENDING: No reason given
fix plutus_v1_script
Encode an arbitrary value and check against CDDL
transaction_witness_set: MemoBytes (AlonzoTxWitsRaw DijkstraEra) [‐]
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
protocol_param_update: PParamsUpdate DijkstraEra [✔] (421ms)
hangs
Encode an arbitrary value and check against CDDL
protocol_param_update: PParamsUpdate DijkstraEra [‐]?7h
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
cost_models: CostModels [✔] (10818ms)
Encode an arbitrary value and check against CDDL
cost_models: CostModels [✔] (4862ms)
+++ OK, passed 100 tests.
redeemers: Annotator (MemoBytes (RedeemersRaw DijkstraEra)) [✔] (18ms)
fix redeemers
Encode an arbitrary value and check against CDDL
redeemers: MemoBytes (RedeemersRaw DijkstraEra) [‐]
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
redeemers: MemoBytes (RedeemersRaw DijkstraEra) [✔] (43ms)
fix Transaction
transaction: Annotator (Tx TopTx DijkstraEra) [‐]
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
transaction: DijkstraTx TopTx DijkstraEra [‐]
# PENDING: No reason given
hangs
Encode an arbitrary value and check against CDDL
transaction: DijkstraTx TopTx DijkstraEra [‐]?7h
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
voting_procedure: VotingProcedure DijkstraEra [✔]
Encode an arbitrary value and check against CDDL
voting_procedure: VotingProcedure DijkstraEra [✔]
+++ OK, passed 100 tests.
Generate bytestring from CDDL and decode/encode
proposal_procedure: ProposalProcedure DijkstraEra [✔] (5ms)
fix reward_account
Encode an arbitrary value and check against CDDL
proposal_procedure: ProposalProcedure DijkstraEra [‐]
# PENDING: No reason given
Generate bytestring from CDDL and decode/encode
gov_action: GovAction DijkstraEra [✔] (12ms)
hangs
Encode an arbitrary value and check against CDDL
gov_action: GovAction DijkstraEra [‐]
# PENDING: No reason given
TxCert
Generate bytestring from CDDL and decode/encode
certificate: DijkstraTxCert DijkstraEra [✔] (2ms)
fix unit_interval
Encode an arbitrary value and check against CDDL
certificate: DijkstraTxCert DijkstraEra [‐]?7h
# PENDING: No reason given
DecCBOR instances equivalence via CDDL
transaction_body: MemoBytes (DijkstraTxBodyRaw TopTx DijkstraEra) [✔] (25ms)
sub_transaction_body: MemoBytes (DijkstraTxBodyRaw SubTx DijkstraEra) [✔] (28ms)
Fix decoder equivalence of TxAuxData
auxiliary_data: MemoBytes (AlonzoTxAuxDataRaw DijkstraEra) [‐]
# PENDING: No reason given
native_script: DijkstraNativeScript DijkstraEra [✔] (2ms)
plutus_data: MemoBytes (PlutusData DijkstraEra) [✔] (9ms)
script: AlonzoScript DijkstraEra [✘] (15ms)
transaction_witness_set: MemoBytes (AlonzoTxWitsRaw DijkstraEra) [✔] (17ms)
redeemers: MemoBytes (RedeemersRaw DijkstraEra) [✔] (24ms)
Fix decoder equivalence of Tx
transaction: DijkstraTx TopTx DijkstraEra [‐]
# PENDING: No reason given
Golden
Golden JSON specs for PParams [✔] (3ms)
Golden JSON specs for PParamsUpdate [✔] (66ms)
Shelley era JSON Roundtrip: Dijkstra
TransitionConfig DijkstraEra [✔] (17557ms)
+++ OK, passed 100 tests.
Imp
ShelleyImpSpec
Protocol Version 12
DELEG
Register stake credential
With correct deposit or without any deposit [✔] (124ms)
When already already registered [✔] (2ms)
Unregister stake credentials
When registered [✔]?7h
When not registered [✔]
With non-zero reward balance [✔] (279ms)
Register and unregister in the same transaction [✔]
Delegate stake
Delegate registered stake credentials to registered pool [✔] (2ms)
Register and delegate in the same transaction [✔] (1ms)
Delegate unregistered stake credentials [✔] (2ms)
Delegate already delegated credentials [✔] (5ms)
Delegate and unregister [✔] (1ms)
EPOCH
Runs basic transaction [✔] (83ms)
Crosses epoch boundaries [✔] (79ms)
LEDGER
Transactions update UTxO [✔] (1ms)
POOL
Register and re-register pools
register a pool with too low cost [✔] (1ms)
register a pool with a staking address having the wrong network id [✔]
register a pool with too big metadata [✔] (1ms)
register a new pool with an already registered VRF [✔] (2ms)
re-register a pool and change its delegations in the same epoch [✔] (201ms)
re-register a pool with an already registered VRF [✔] (4ms)
re-register a pool with its own VRF [✔] (82ms)
re-register a pool with a fresh VRF [✔] (86ms)
register a new pool with the VRF of a re-registered pool [✔] (83ms)
after the epoch changes, reuse VRFs that get overwritten [✔] (282ms)
before the epoch changes, try to reuse VRFs that get overwritten [✔] (3ms)
Retiring pools
retire an unregistered pool [✔]
retire a pool with too high a retirement epoch [✔] (1ms)
retire a pool with too low a retirement epoch [✔] (1ms)
re-register a retiring pool with an already registered vrf [✔] (3ms)
re-register retiring pool with its own VRF [✔] (2ms)
re-register a retiring pool with a fresh VRF [✔] (90ms)
register a pool with the VRF of a retiring pool [✔] (89ms)
retiring a pool clears its delegations [✔] (82ms)
Retired pools
re-register a pool with the same keyhash and VRF [✔] (85ms)
register a pool with the VRF of a retired pool [✔] (91ms)
UTXOW
Bootstrap Witness
Valid Witnesses [✔] (1ms)
InvalidWitnessesUTXOW [✔] (2ms)
MissingVKeyWitnessesUTXOW [✔]
MissingScriptWitnessesUTXOW [✔] (1ms)
MissingTxBodyMetadataHash [✔]
MissingTxMetadata [✔]
ConflictingMetadataHash [✔]
ExtraneousScriptWitnessesUTXOW [✔]
UTXO
ShelleyUtxoPredFailure
ValueNotConservedUTxO [✔] (1ms)
ShelleyPureTests
InstantStakeIncludesRewards [✔] (794ms)
+++ OK, passed 100 tests.
AllegraImpSpec
Protocol Version 12
UTXOW
InvalidMetadata [✔]
MaryImpSpec
Protocol Version 12
UTXO
Mint a Token [✔]
ShelleyUtxoPredFailure
ValueNotConservedUTxO [✔] (1ms)
AlonzoImpSpec
Protocol Version 12
BBODY
PlutusV1
succeeds with eight Plutus scripts [✔] (34ms)
enforces ppMaxBlockExUnits [✔] (43ms)
PlutusV2
succeeds with eight Plutus scripts [✔] (22ms)
enforces ppMaxBlockExUnits [✔] (43ms)
PlutusV3
succeeds with eight Plutus scripts [✔] (23ms)
enforces ppMaxBlockExUnits [✔] (43ms)
UTXO
Wrong network ID [✔]
PlutusV1
Too many execution units for tx [✔] (3ms)
Insufficient collateral [✔] (1ms)
PlutusV2
Too many execution units for tx [✔] (1ms)
Insufficient collateral [✔] (1ms)
PlutusV3
Too many execution units for tx [✔] (2ms)
Insufficient collateral [✔] (2ms)
UTXOS
transaction validity interval has closed upper bound when protocol version < 9 and open otherwise [✔]
PlutusV1
ExUnits
Calculate ExUnits [✔] (2ms)
Attempt to calculate ExUnits with an invalid tx [✔] (1ms)
Spending scripts with a Datum
redeemerSameAsDatum [✔] (81ms)
purposeIsWellformedWithDatum [✔] (81ms)
datumIsWellformed [✔] (90ms)
inputsOutputsAreNotEmptyWithDatum [✔] (89ms)
Valid transaction marked as invalid [✔]
Invalid transaction marked as valid [✔] (2ms)
Invalid plutus script fails in phase 2 [✔] (2ms)
Scripts pass in phase 2
purposeIsWellformedWithDatum [✔] (1ms)
datumIsWellformed [✔] (1ms)
inputsOutputsAreNotEmptyWithDatum [✔] (1ms)
No cost model [✔] (1ms)
PlutusV2
ExUnits
Calculate ExUnits [✔] (1ms)
Attempt to calculate ExUnits with an invalid tx [✔] (1ms)
Spending scripts with a Datum
redeemerSameAsDatum [✔] (81ms)
purposeIsWellformedWithDatum [✔] (91ms)
datumIsWellformed [✔] (81ms)
inputsOutputsAreNotEmptyWithDatum [✔] (87ms)
Valid transaction marked as invalid [✔]
Invalid transaction marked as valid [✔] (2ms)
Invalid plutus script fails in phase 2 [✔] (1ms)
Scripts pass in phase 2
purposeIsWellformedWithDatum [✔] (1ms)
datumIsWellformed [✔] (1ms)
inputsOutputsAreNotEmptyWithDatum [✔] (1ms)
No cost model [✔] (1ms)
PlutusV3
ExUnits
Calculate ExUnits [✔] (1ms)
Attempt to calculate ExUnits with an invalid tx [✔] (1ms)
Spending scripts with a Datum
redeemerSameAsDatum [✔] (82ms)
purposeIsWellformedWithDatum [✔] (80ms)
datumIsWellformed [✔] (91ms)
inputsOutputsAreNotEmptyWithDatum [✔] (83ms)
Valid transaction marked as invalid [✔]
Invalid transaction marked as valid [✔] (4ms)
Invalid plutus script fails in phase 2 [✔] (1ms)
Scripts pass in phase 2
purposeIsWellformedWithDatum [✔] (2ms)
datumIsWellformed [✔] (1ms)
inputsOutputsAreNotEmptyWithDatum [✔] (1ms)
No cost model [✔] (1ms)
UTXOW
Valid transactions
Non-script output with datum [✔]
PlutusV1
Validating SPEND script [✔] (2ms)
Not validating SPEND script [✔] (2ms)
Validating CERT script [✔] (1ms)
Validating WITHDRAWAL script [✔] (2ms)
Validating MINT script [✔] (1ms)
Not validating MINT script [✔] (3ms)
Acceptable supplementary datum [✔]
PlutusV2
Validating SPEND script [✔] (1ms)
Not validating SPEND script [✔] (3ms)
Validating CERT script [✔] (1ms)
Validating WITHDRAWAL script [✔] (3ms)
Validating MINT script [✔] (1ms)
Not validating MINT script [✔] (1ms)
Acceptable supplementary datum [✔]
PlutusV3
Validating SPEND script [✔] (2ms)
Not validating SPEND script [✔] (3ms)
Validating CERT script [✔] (1ms)
Validating WITHDRAWAL script [✔] (2ms)
Validating MINT script [✔] (1ms)
Not validating MINT script [✔] (2ms)
Acceptable supplementary datum [✔]
Invalid transactions
Phase 1 script failure [✔] (1ms)
PlutusV1
MissingRedeemers [✔] (1ms)
MissingRequiredDatums [✔] (1ms)
NotAllowedSupplementalDatums [✔] (1ms)
PPViewHashesDontMatch
Mismatched [✔]
Missing [✔]
UnspendableUTxONoDatumHash [✔] (1ms)
Missing phase-2 script witness [✔] (1ms)
Redeemer with incorrect purpose [✔] (1ms)
Missing witness for collateral input [✔] (1ms)
Extra Redeemer
Minting [✔] (3ms)
Spending [✔] (1ms)
PlutusV2
MissingRedeemers [✔] (1ms)
MissingRequiredDatums [✔] (1ms)
NotAllowedSupplementalDatums [✔] (1ms)
PPViewHashesDontMatch
Mismatched [✔]
Missing [✔]
UnspendableUTxONoDatumHash [✔] (1ms)
Missing phase-2 script witness [✔] (1ms)
Redeemer with incorrect purpose [✔] (1ms)
Missing witness for collateral input [✔] (1ms)
PlutusV3
MissingRedeemers [✔] (2ms)
MissingRequiredDatums [✔] (1ms)
NotAllowedSupplementalDatums [✔] (1ms)
PPViewHashesDontMatch
Mismatched [✔]
Missing [✔]
UnspendableUTxONoDatumHash [✔] (4ms)
Missing phase-2 script witness [✔] (1ms)
Redeemer with incorrect purpose [✔] (1ms)
Missing witness for collateral input [✔] (1ms)
Protocol Version 12
BabbageImpSpec - era generic tests
UTXO
Min-utxo value with output too large [✔] (1ms)
UTXOW
Valid
Native reference scripts must not be witnessed [✔]
Spend native script output with reference script [✔] (1ms)
Reference input with data hash, no data witness [✔]
Reference input with data hash, with data witness [✔] (1ms)
PlutusV2
Spend outputs locked by scripts
With an inline datum [✔] (3ms)
Passed as a reference script [✔] (1ms)
Passed as a reference script and with an inline datum [✔] (4ms)
Use a reference script to authorize a delegation certificate [✔] (1ms)
PlutusV3
Spend outputs locked by scripts
With an inline datum [✔]
Passed as a reference script [✔] (2ms)
Passed as a reference script and with an inline datum [✔] (1ms)
Use a reference script to authorize a delegation certificate [✔] (2ms)
Invalid
Inline datum with Plutus V1 [✔] (1ms)
PlutusV2
MalformedScriptWitnesses [✔] (1ms)
MalformedReferenceScripts [✔]
ExtraRedeemers/RedeemerPointerPointsToNothing [✔] (1ms)
Inline datum with a failing script [✔] (2ms)
Use a collateral output [✔] (3ms)
Inline datum and ref script and redundant script witness [✔] (1ms)
Inline datum with redundant datum witness [✔] (1ms)
No such thing as a reference datum [✔] (2ms)
PlutusV3
MalformedScriptWitnesses [✔] (1ms)
MalformedReferenceScripts [✔]
ExtraRedeemers/RedeemerPointerPointsToNothing [✔] (1ms)
Inline datum with a failing script [✔] (4ms)
Use a collateral output [✔] (3ms)
Inline datum and ref script and redundant script witness [✔] (1ms)
Inline datum with redundant datum witness [✔] (3ms)
No such thing as a reference datum [✔] (1ms)
UTXOS
PlutusV1 with references
succeeds with a reference script [✔] (1ms)
succeeds with a reference input [✔] (2ms)
PlutusV2 with references
succeeds with same txIn in regular inputs and reference inputs [✔] (2ms)
Incorrect collateral total [✔] (1ms)
Protocol Version 12
BBODY
BodyRefScriptsSizeTooBig [✔] (669ms)
BodyRefScriptsSizeTooBig with reference scripts in the same block [✔] (898ms)
totalRefScriptSizeInBlock [✔] (5ms)
Use a reference script in a collateral output [disabled in conformance] [✔] (3ms)
CERTS
Withdrawals
Withdrawing from an unregistered staking address [✔] (363ms)
Withdrawing the wrong amount [✔] (785ms)
DELEG
Register stake credential
With correct deposit [✔]
Twice the same certificate in the same transaction [✔]
With incorrect deposit [✔]
Unregister stake credentials
With incorrect refund [✔] (3ms)
Deregistering returns the deposit [✔] (3131ms)
Delegate stake
Delegate to unregistered pool [✔] (1ms)
Delegate vote
Delegate vote of registered stake credentials to registered drep [✔] (2ms)
Redelegate vote to the same DRep [✔] (1ms)
Delegate vote of registered stake credentials to unregistered drep [✔] (1ms)
Delegate vote of unregistered stake credentials [✔] (1ms)
Redelegate vote [✔] (2ms)
Delegate vote and unregister stake credentials [✔] (1ms)
Delegate vote and unregister after hardfork [✔] (1117ms)
Delegate vote and undelegate after delegating to some stake pools [✔] (585ms)
Delegate, retire and re-register pool [✔] (692ms)
Delegate both stake and vote
Delegate and unregister credentials [✔] (2ms)
Delegate to DRep and SPO and change delegation to a different SPO [✔] (3ms)
Transition creates the delegations correctly [✔] (7ms)
ENACT
Committee enactment
Enact UpdateCommitee with lengthy lifetime [✔] (292ms)
CC re-election [✔] (1002ms)
Removing CC with UpdateCommittee
Non registered [✔] (389ms)
Registered [✔] (415ms)
Treasury withdrawals
Modify EnactState as expected [✔] (14ms)
Withdrawals exceeding treasury submitted in a single proposal [✔] (401ms)
Withdrawals exceeding maxBound Word64 submitted in a single proposal [✔] (197ms)
Withdrawals exceeding treasury submitted in several proposals within the same epoch [✔] (303ms)
NoConfidence [✔] (763ms)
HardForkInitiation [✔] (632ms)
Constitution [✔] (200ms)
Competing proposals
higher action priority wins [✔] (185ms)
proposals of same priority are enacted in order of submission [✔] (232ms)
only the first action of a transaction gets enacted [✔] (232ms)
HardForkInitiation without DRep voting [✔] (423ms)
futurePParams [✔] (182ms)
EPOCH
DRep
proposal is accepted after two epochs [✔] (314ms)
Treasury
TreasuryWithdrawal [✔] (310ms)
TreasuryWithdrawalExtra [✔] (285ms)
deposit is moved to treasury when the reward address is not registered [✔] (982ms)
Proposals
Proposals survive multiple epochs without any activity [✔] (614ms)
Expired proposal deposit refunded [✔] (285ms)
Proposals are expired and removed as expected [✔] (181ms)
DRep
expiry is updated based on the number of dormant epochs [disabled in conformance] [✔] (599ms)
expiry is not updated for inactive DReps [disabled in conformance] [✔] (567ms)
expiry updates are correct for a mixture of cases [disabled in conformance] [✔] (1208ms)
DRep registration should succeed [✔] (81ms)
Events
emits event
GovInfoEvent [✔] (1192ms)
GOV
Constitution proposals
accepted for
empty PrevGovId before the first constitution is enacted [✔] (2ms)
valid GovPurposeId [✔] (378ms)
rejected for
empty PrevGovId after the first constitution was enacted [✔] (197ms)
invalid index in GovPurposeId [✔] (187ms)
valid GovPurposeId but invalid purpose [✔] (194ms)
Proposals
Consistency
Proposals submitted without proper parent fail [✔] (11ms)
Subtrees are pruned when proposals expire [✔] (582ms)
Subtrees are pruned when proposals expire over multiple rounds [✔] (1297ms)
Subtrees are pruned when competing proposals are enacted [✔] (487ms)
Subtrees are pruned when competing proposals are enacted over multiple rounds [✔] (401ms)
Subtrees are pruned for both enactment and expiry over multiple rounds [disabled in conformance] [✔] (1537ms)
Votes from subsequent epochs are considered for ratification [✔] (379ms)
Proposals are stored in the expected order [✔] (5ms)
Voting
VotersDoNotExist [✔] (4ms)
DRep votes are removed [✔] (2ms)
expired gov-actions [disabled in conformance] [✔] (276ms)
non-existent gov-actions [✔] (4ms)
committee member can not vote on UpdateCommittee action [✔] (2ms)
committee member can not vote on NoConfidence action [✔] (2ms)
committee member mixed with other voters can not vote on UpdateCommittee action [✔] (5ms)
CC cannot ratify if below threshold [disabled in conformance] [✔] (776ms)
can submit SPO votes [✔] (268ms)
Policy
policy is respected by proposals [✔] (197ms)
Predicate failures
ProposalReturnAccountDoesNotExist [✔] (1ms)
ExpirationEpochTooSmall [✔] (84ms)
ProposalDepositIncorrect [✔] (1ms)
ConflictingCommitteeUpdate [✔] (1ms)
Unknown CostModels
Are accepted [✔] (296ms)
Withdrawals
Fails predicate when treasury withdrawal has nonexistent return address [✔] (4ms)
Fails with invalid network ID in withdrawal addresses [✔] (5ms)
Fails for empty withdrawals [✔] (10ms)
HardFork
Hardfork is the first one (doesn't have a GovPurposeId)
Hardfork minorFollow [✔] (1ms)
Hardfork majorFollow [✔] (1ms)
Hardfork cantFollow [✔] (1ms)
Hardfork is the second one (has a GovPurposeId)
Hardfork minorFollow [✔] (1ms)
Hardfork majorFollow [✔] (2ms)
Hardfork cantFollow [✔] (1ms)
PParamUpdate
PPU needs to be wellformed
ppuMaxBBSizeL cannot be 0 [✔] (2ms)
ppuMaxTxSizeL cannot be 0 [✔] (2ms)
ppuMaxBHSizeL cannot be 0 [✔] (2ms)
ppuMaxValSizeL cannot be 0 [✔] (2ms)
ppuCollateralPercentageL cannot be 0 [✔] (4ms)
ppuCommitteeMaxTermLengthL cannot be 0 [✔] (2ms)
ppuGovActionLifetimeL cannot be 0 [✔] (3ms)
ppuPoolDepositL cannot be 0 [✔] (2ms)
ppuGovActionDepositL cannot be 0 [✔] (2ms)
ppuDRepDepositL cannot be 0 [✔] (3ms)
PPU cannot be empty [✔] (4ms)
Network ID
Fails with invalid network ID in proposal return address [✔]
Proposing and voting
Parameter change [✔] (7ms)
Hardfork initiation [✔] (6ms)
Info action [✔] (7ms)
Treasury withdrawal [✔] (4ms)
NoConfidence [✔]
UpdateCommittee [✔]
NewConstitution [✔]
GOVCERT
Resigning proposed CC key [✔] (1ms)
succeeds for
registering and unregistering a DRep [✔] (1ms)
resigning a non-CC key [✔]
re-registering a CC hot key [✔] (10ms)
fails for
invalid deposit provided with DRep registration cert [✔]
invalid refund provided with DRep deregistration cert [✔]
DRep already registered [✔] (1ms)
unregistering a nonexistent DRep [✔]
registering a resigned CC member hotkey [✔] (3ms)
resigning a nonexistent CC member hotkey [✔] (1ms)
LEDGER
TxRefScriptsSizeTooBig [✔] (102ms)
Withdraw from delegated and non-delegated staking key [✔] (368ms)
Withdraw from a key delegated to an unregistered DRep [✔] (365ms)
Withdraw and unregister staking credential in the same transaction [disabled in conformance] [✔] (380ms)
Withdraw from a key delegated to an expired DRep [✔] (959ms)
Withdraw from a key delegated to a DRep that expired after delegation [disabled in conformance] [✔] (959ms)
Withdraw from delegated and non-delegated staking script [✔] (399ms)
Mempool
Duplicate transactions [✔]
Unelected Committee voting [✔] (6ms)
HARDFORK
VRF Keyhashes get populated at v11 HardFork [✔]
Retiring a stake pool with a duplicate VRF Keyhash after v11 HardFork [✔]
RATIFY
Voting
SPO needs to vote on security-relevant parameter changes [✔] (643ms)
Active voting stake
DRep
UTxOs contribute to active voting stake [✔] (389ms)
Rewards contribute to active voting stake [✔] (381ms)
Rewards contribute to active voting stake even in the absence of StakeDistr [disabled in conformance] [✔] (1941ms)
Proposal deposits contribute to active voting stake
Directly [✔] (395ms)
After switching delegations [✔] (385ms)
Predefined DReps
acceptedRatio with default DReps [✔] (597ms)
AlwaysNoConfidence [✔] (693ms)
AlwaysAbstain [✔] (685ms)
DRepAlwaysNoConfidence is sufficient to pass NoConfidence [✔] (375ms)
StakePool
UTxOs contribute to active voting stake [✔] (488ms)
Rewards contribute to active voting stake [✔] (477ms)
Rewards contribute to active voting stake even in the absence of StakeDistr [✔] (2253ms)
Proposal deposits contribute to active voting stake
Directly [✔] (400ms)
After switching delegations [✔] (389ms)
Interaction between governing bodies
Motion of no-confidence [✔] (400ms)
Update committee - normal state [✔] (409ms)
Hard-fork initiation [✔] (417ms)
A governance action is automatically ratified if threshold is set to 0 for all related governance bodies [✔] (403ms)
SPO default votes
During bootstrap phase
Default vote is Abstain in general [✔]
HardForkInitiation - default vote is No [✔]
After bootstrap phase
Default vote is No in general [✔] (206ms)
HardForkInitiation - default vote is No [✔] (400ms)
Staking address delegated to AlwaysNoConfidence [✔] (395ms)
Staking address delegated to AlwaysAbstain [✔] (424ms)
Delaying actions
A delaying action delays its child even when both ere proposed and ratified in the same epoch [✔] (519ms)
A delaying action delays all other actions even when all of them may be ratified in the same epoch [✔] (440ms)
An action expires when delayed enough even after being ratified
Same lineage [disabled in conformance] [✔] (544ms)
Other lineage [disabled in conformance] [✔] (557ms)
proposals to update the committee get delayed if the expiration exceeds the max term [✔] (1039ms)
CommitteeMinSize affects in-flight proposals
TreasuryWithdrawal fails to ratify due to an increase in CommitteeMinSize [✔] (329ms)
TreasuryWithdrawal ratifies due to a decrease in CommitteeMinSize [✔] (975ms)
ParameterChange affects existing proposals
DRep
Increasing the threshold prevents a hitherto-ratifiable proposal from being ratified [✔] (548ms)
Decreasing the threshold ratifies a hitherto-unratifiable proposal [✔] (839ms)
SPO
Increasing the threshold prevents a hitherto-ratifiable proposal from being ratified [✔] (645ms)
Decreasing the threshold ratifies a hitherto-unratifiable proposal [✔] (877ms)
A parent ParameterChange proposal can prevent its child from being enacted [✔] (220ms)
Expired and resigned committee members are discounted from quorum
Expired [✔] (402ms)
Resigned [✔] (208ms)
Committee members can serve full `CommitteeMaxTermLength`
maxTermLength = 0 [✔] (374ms)
maxTermLength = 1 [✔] (395ms)
maxTermLength = 2 [✔] (398ms)
Counting of SPO votes
HardForkInitiation [✔] (440ms)
Hard Fork can still be initiated with less than minimal committee size [✔] (286ms)
When CC expired
SPOs alone can't enact hard-fork [✔] (2150ms)
SPOs alone can't enact security group parameter change [✔] (2085ms)
Committee proposals pass [✔] (789ms)
When CC threshold is 0
SPOs alone can enact hard-fork during bootstrap [✔] (175ms)
SPOs alone can enact security group parameter change during bootstrap [✔] (201ms)
When min size is not 0
Constitution cannot be changed if active committee size is below min size [✔] (647ms)
Constitution cannot be changed if committee is not active because it doesn't have registered hot credentials [✔] (180ms)
Constitution can be changed when an active committee doesn't vote [✔] (193ms)
Constitution can be changed regardless of active committee votes [✔] (177ms)
When min size is 0
Constitution can be changed if the commitee is inactive but has some active members [✔] (894ms)
Constitution can be changed if there are no active members [✔] (187ms)
When CC threshold is not 0
Constitution cannot be changed if min committee size is 0 [✔] (828ms)
Many CC Cold Credentials map to the same Hot Credential act as many votes [✔] (411ms)
UTXO
Certificates
Reg/UnReg collect and refund correct amounts [✔] (155ms)
Reference scripts
required reference script counts towards the minFee calculation [✔] (2ms)
reference scripts not required for spending the input count towards the minFee calculation [✔] (2ms)
a scripts referenced several times counts for each reference towards the minFee calculation [✔] (7ms)
UTXOS
Gov policy scripts
failing native script govPolicy [✔] (219ms)
alwaysSucceeds Plutus govPolicy validates [✔] (197ms)
alwaysFails Plutus govPolicy does not validate [✔] (213ms)
PlutusV3 Initialization
Updating CostModels with alwaysFails govPolicy does not validate [✔] (681ms)
Updating CostModels with alwaysSucceeds govPolicy but no PlutusV3 CostModels fails [✔] (254ms)
Updating CostModels and setting the govPolicy afterwards succeeds [✔] (927ms)
PlutusV1
can use reference scripts [✔] (1ms)
can use regular inputs for reference [✔] (2ms)
fails with same txIn in regular inputs and reference inputs [✔]
using inline datums [✔] (1ms)
PlutusV2
can use reference scripts [✔] (2ms)
can use regular inputs for reference [✔] (1ms)
fails with same txIn in regular inputs and reference inputs [✔]
using inline datums [✔] (1ms)
PlutusV3
can use reference scripts [✔] (1ms)
can use regular inputs for reference [✔] (1ms)
fails with same txIn in regular inputs and reference inputs [✔] (2ms)
using inline datums [✔] (1ms)
Conway features fail in Plutusdescribe v1 and v2
Unsupported Fields
CurrentTreasuryValue
V1 [✔] (87ms)
V2 [✔] (87ms)
VotingProcedures
V1 [✔] (4ms)
V2 [✔] (5ms)
ProposalProcedures
V1 [✔] (1ms)
V2 [✔] (2ms)
TreasuryDonation
V1 [✔] (1ms)
V2 [✔] (3ms)
Certificates
Translated
RegDepositTxCert
V1 [✔] (1ms)
V2 [✔] (1ms)
UnRegDepositTxCert
V1 [✔] (6ms)
V2 [✔] (3ms)
Unsupported
DelegTxCert
V1 [✔] (2ms)
V2 [✔] (5ms)
RegDepositDelegTxCert
V1 [✔] (2ms)
V2 [✔] (2ms)
AuthCommitteeHotKeyTxCert
V1 [✔] (2ms)
V2 [✔] (1ms)
ResignCommitteeColdTxCert
V1 [✔] (1ms)
V2 [✔] (1ms)
RegDRepTxCert
V1 [✔] (1ms)
V2 [✔] (1ms)
UnRegDRepTxCert
V1 [✔] (7ms)
V1 [✔] (5ms)
UpdateDRepTxCert
V1 [✔] (2ms)
V2 [✔] (2ms)
Spending script without a Datum
PlutusV1 [✔] (1ms)
PlutusV2 [✔] (1ms)
PlutusV3 [✔] (4ms)
UTXOW
Fails with PPViewHashesDontMatch before PV 11 [disabled in conformance] [✔]
Fails with PPViewHashesDontMatchInformative after PV 11 [✔] (2ms)
Transaction containing SPO vote but no witness for it fails [✔] (2ms)
Protocol Version 12
LEDGER
Spending sub-transaction outputs
Fails when top-level transaction spends output from its own sub-transaction [✔] (2ms)
Fails when sub-transaction spends output from another sub-transaction [✔] (1ms)
Succeeds when inputs don't reference sub-transaction outputs [✔] (1ms)
CERTS
Subtransaction consumes correct refund after keyDeposit is changed [‐]
# PENDING: No reason given
Multiple subtransactions cannot get the same refund [‐]
# PENDING: No reason given
UTXOW
RequireGuard native scripts
Spending inputs locked by script requiring a keyhash guard [✔] (1ms)
A native script required as guard needs to be witnessed [✔] (1ms)
A failing native script required as guard results in a predicate failure [✔]
A redundant guard is ignored [✔]
Nested RequiredGuard scripts [✔] (1ms)
UTXO
Collaterals
Fails to submit a transaction containing a Ptr in collateral return [✔]
TxInfo
txInfo translation
Plutus V1
translation error on byron txout [✔]
translation error on byron txin [✔]
translation error on unknown txin (logic error) [✔]
translation error on inline datum in input [✔]
translation error on inline datum in output [✔]
SPlutusV2
translation error on byron txout [✔]
translation error on byron txin [✔]
translation error on unknown txin (logic error) [✔]
use reference input starting in Babbage [✔]
use inline datum in input [✔]
use inline datum in output [✔]
use reference script in input [✔]
use reference script in output [✔]
SPlutusV3
translation error on byron txout [✔]
translation error on byron txin [✔]
translation error on unknown txin (logic error) [✔]
use inline datum in input [✔]
use inline datum in output [✔]
use reference script in input [✔]
use reference script in output [✔]
SPlutusV4
translation error on byron txout [✔]
translation error on byron txin [✔]
translation error on unknown txin (logic error) [✔]
use inline datum in input [✔]
use inline datum in output [✔]
use reference script in input [✔]
use reference script in output [✔]
TxInfo
PlutusV4
Fails translation when Ptr present in outputs [✔] (91ms)
+++ OK, passed 100 tests.
Golden
Version 12
Redeemers
Decoding Redeemers encoded as a list fails [✔]
TxCert
Decoding duplicate delegation certs fails [✔]
TxWits
Decoding a TxWits with duplicate VKeyWits fails [✔]
Decoding a TxWits with duplicate native scripts fails [✔]
Decoding a TxWits with duplicate SPlutusV1 scripts fails [✔]
Decoding a TxWits with duplicate SPlutusV2 scripts fails [✔]
Decoding a TxWits with duplicate SPlutusV3 scripts fails [✔]
Decoding a TxWits with duplicate plutus data fails [✔]
Empty fields not allowed
Untagged
addrTxWits [✔]
nativeScripts [✔]
bootstrapWitness [✔]
plutusV1Script [✔]
plutusData [✔]
redeemers [✔]
plutusV2Script [✔]
plutusV3Script [✔]
Tagged
addrTxWits [✔]
nativeScripts [✔]
bootstrapWitness [✔]
plutusV1Script [✔]
plutusData [✔]
plutusV2Script [✔]
plutusV3Script [✔]
Invalid field [✔]
+++ OK, passed 100 tests; 33 discarded.
Subtransactions
TxBody with subtransactions decoded as expected [✔]
Subtransactions have to be non-empty if the field is present [✔]
Subtransactions have to be distinct [✔]
IsValid flag
Deserialize transactions with missing `isValid` flag [✔]
Deserialize transactions with `isValid` flag set to true [✔]
Fail to deserialize transactions with `isValid` flag set to false [✔]
Failures:
testlib/Test/Cardano/Ledger/Binary.hs:82:7:
1) Dijkstra.CDDL, DecCBOR instances equivalence via CDDL, script: AlonzoScript DijkstraEra
Decoding result:
Left
(DecoderErrorDeserialiseFailure
"AlonzoScript DijkstraEra"
(DeserialiseFailure
2
"An error occured while decoding (Int,(AlonzoScript DijkstraEra)) not a valid key:.\nError: 4"))
did not match the one via Annotator:
Right
PlutusScript
PlutusV4
ScriptHash
"09439be6568399a8e817d713f7684eb719cd4d4f508bfdea6b6f9dc2"
CBOR:
82 # list(2)
04 # int(4)
58 18 a0 6b ba 1b d7 8c f9 3f 69 fc 75 14 8e 03
49 8d bc fb 50 79 b1 24 7d 89 # bytes(24)
To rerun use: --match "/Dijkstra/CDDL/DecCBOR instances equivalence via CDDL/script: AlonzoScript DijkstraEra/" --seed 246151260
Randomized with seed 246151260
Finished in 2032.5947 seconds
616 examples, 1 failure, 26 pending
Loading