Improve testing setup and genesis json golden test #5243
IOG Hydra / ci/hydra-build:x86_64-linux.ghc967.checks.cardano-ledger-dijkstra:test:tests
failed
Aug 22, 2025 in 16m 59s
Build failed
1 failed steps
Details
Failed Steps
Step 1
Derivation
/nix/store/0y5x7ca8np2rhyli5pyvzdic62c2xyqi-cardano-ledger-dijkstra-test-tests-0.1.0.0-check.drv
Log
Running phase: unpackPhase
unpacking source archive /nix/store/25zklaaqhjwr454c50m35m4w6lm2xdkd-source-eras-dijkstra-test-tests-root
source root is source-eras-dijkstra-test-tests-root
Running phase: patchPhase
Running phase: buildPhase
/nix/store/r6vds26g2sd4c2fwwy6700r0mmrwmi9z-cardano-ledger-dijkstra-test-tests-0.1.0.0/bin:
patching script interpreter paths in /build/tmp.jov3jNIa2s/bin
Spec for every Era
JSON
Golden
Genesis [✘]
Dijkstra
Conway features
Proposals
Construction
Adding new nodes keeps Proposals consistent [✔] (6724ms)
+++ OK, passed 100 tests.
Removal
Removing leaf nodes keeps Proposals consistent [✔] (3754ms)
+++ OK, passed 100 tests.
Removing root nodes keeps Proposals consistent [✔] (3762ms)
+++ OK, passed 100 tests.
Removing non-member nodes throws an AssertionFailure [✔] (6652ms)
+++ OK, passed 100 tests.
Enactment
Adding votes preserves consistency [✔] (6111ms)
+++ OK, passed 100 tests.
Enacting exhaustive lineages reduces Proposals to their roots [✔] (7089ms)
+++ OK, passed 100 tests.
Enacting non-member nodes throws an AssertionFailure [✔] (4372ms)
+++ OK, passed 100 tests.
Expiring compliments of exhaustive lineages keeps proposals consistent [✔] (7087ms)
+++ OK, passed 100 tests.
Expiring non-member nodes throws an AssertionFailure [✔] (6660ms)
+++ OK, passed 100 tests.
Enacting and expiring conflicting proposals does not lead to removal due to enactment [✔] (7109ms)
+++ OK, passed 100 tests.
RoundTrip
GovActionId [✔] (3ms)
+++ OK, passed 100 tests.
GovPurposeId 'PParamUpdatePurpose [✔] (3ms)
+++ OK, passed 100 tests.
GovPurposeId 'HardForkPurpose [✔] (4ms)
+++ OK, passed 100 tests.
GovPurposeId 'CommitteePurpose [✔] (4ms)
+++ OK, passed 100 tests.
GovPurposeId 'ConstitutionPurpose [✔] (3ms)
+++ OK, passed 100 tests.
Vote [✔]
+++ OK, passed 100 tests.
Voter [✔] (2ms)
+++ OK, passed 100 tests.
Dijkstra Transaction Types
GovAction DijkstraEra [✔] (388ms)
+++ OK, passed 100 tests.
VotingProcedure DijkstraEra [✔]
+++ OK, passed 100 tests.
VotingProcedures DijkstraEra [✔] (526ms)
+++ OK, passed 100 tests.
ProposalProcedure DijkstraEra [✔] (867ms)
+++ OK, passed 100 tests.
Constitution DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
CostModels [✔] (7738ms)
+++ OK, passed 100 tests.
Dijkstra State Types
EnactState DijkstraEra [✔] (16407ms)
+++ OK, passed 100 tests.
GovActionState DijkstraEra [✔] (913ms)
+++ OK, passed 100 tests.
Proposals DijkstraEra [✔] (15476ms)
+++ OK, passed 100 tests.
DRepPulsingState DijkstraEra [✔] (60167ms)
+++ OK, passed 100 tests.
PulsingSnapshot DijkstraEra [✔] (23412ms)
+++ OK, passed 100 tests.
RatifyState DijkstraEra [✔] (39833ms)
+++ OK, passed 100 tests.
VState DijkstraEra [✔] (173ms)
+++ OK, passed 100 tests.
Alonzo era types
Data DijkstraEra [✔] (3ms)
+++ OK, passed 100 tests.
Data DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
BinaryData DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
CostModels [✔] (10468ms)
+++ OK, passed 100 tests.
Datum doesn't roundtrip
Datum DijkstraEra [‐]
# PENDING: No reason given
TxDats [✔] (13ms)
+++ OK, passed 100 tests.
Redeemers [✔] (18ms)
+++ OK, passed 100 tests.
Core Type Families
MaryValue [✔] (52ms)
+++ OK, passed 100 tests.
CompactForm MaryValue [✔] (183ms)
+++ OK, passed 100 tests.
BabbageTxOut DijkstraEra [✔] (9ms)
+++ OK, passed 100 tests.
ConwayTxCert DijkstraEra [✔] (4ms)
+++ OK, passed 100 tests.
PParams DijkstraEra [✔] (8544ms)
+++ OK, passed 100 tests.
PParamsUpdate DijkstraEra [✔] (6325ms)
+++ OK, passed 100 tests.
AlonzoScript DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
AlonzoScript DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
AlonzoTxAuxData DijkstraEra [✔] (41ms)
+++ OK, passed 100 tests.
AlonzoTxAuxData DijkstraEra [✔] (31ms)
+++ OK, passed 100 tests.
AlonzoTxWits DijkstraEra [✔] (252ms)
+++ OK, passed 100 tests.
AlonzoTxWits DijkstraEra [✔] (233ms)
+++ OK, passed 100 tests.
TxBody DijkstraEra [✔] (12768ms)
+++ OK, passed 100 tests.
TxBody DijkstraEra [✔] (18292ms)
+++ OK, passed 100 tests.
Tx DijkstraEra [✔] (14879ms)
+++ OK, passed 100 tests.
Tx DijkstraEra [✔] (21208ms)
+++ OK, passed 100 tests.
MemPack/CBOR Roundtrip BabbageTxOut DijkstraEra [✔] (6ms)
+++ OK, passed 100 tests.
ConwayCertState DijkstraEra [✔] (1346ms)
+++ OK, passed 100 tests.
Core State Types
SnapShots [✔] (1601ms)
+++ OK, passed 100 tests.
DState DijkstraEra [✔] (38ms)
+++ OK, passed 100 tests.
PState DijkstraEra [✔] (1091ms)
+++ OK, passed 100 tests.
CommitteeState DijkstraEra [✔] (11ms)
+++ OK, passed 100 tests.
UTxO DijkstraEra [✔] (222ms)
+++ OK, passed 100 tests.
State Types Families
ConwayGovState DijkstraEra [✔] (104262ms)
+++ OK, passed 100 tests.
State Types
UTxOState DijkstraEra [✔] (98921ms)
+++ OK, passed 100 tests.
EpochState DijkstraEra [✔] (107587ms)
+++ OK, passed 100 tests.
NewEpochState DijkstraEra [✔] (99423ms)
+++ OK, passed 100 tests.
Predicate Failures
ConwayBbodyPredFailure DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
ConwayCertPredFailure DijkstraEra [✔]
+++ OK, passed 100 tests.
ConwayCertsPredFailure DijkstraEra [✔] (6ms)
+++ OK, passed 100 tests.
ConwayDelegPredFailure DijkstraEra [✔]
+++ OK, passed 100 tests.
ConwayGovCertPredFailure DijkstraEra [✔]
+++ OK, passed 100 tests.
ConwayGovPredFailure DijkstraEra [✔] (194ms)
+++ OK, passed 100 tests.
ConwayLedgerPredFailure DijkstraEra [✔] (171ms)
+++ OK, passed 100 tests.
ShelleyLedgersPredFailure DijkstraEra [✔] (166ms)
+++ OK, passed 100 tests.
ShelleyPoolPredFailure DijkstraEra [✔]
+++ OK, passed 100 tests.
ConwayUtxoPredFailure DijkstraEra [✔] (1456ms)
+++ OK, passed 100 tests.
ConwayUtxosPredFailure DijkstraEra [✔] (10844ms)
+++ OK, passed 100 tests.
ConwayUtxowPredFailure DijkstraEra [✔] (312ms)
+++ OK, passed 100 tests.
ConwayGenesis [✔] (2948ms)
+++ OK, passed 100 tests.
DecCBOR instances equivalence
DecCBOR instances equivalence
Data DijkstraEra [✔] (1ms)
+++ OK, passed 100 tests.
AlonzoScript DijkstraEra [✔] (2ms)
+++ OK, passed 100 tests.
AlonzoTxAuxData DijkstraEra [✔] (40ms)
+++ OK, passed 100 tests.
AlonzoTxWits DijkstraEra [✔] (252ms)
+++ OK, passed 100 tests.
TxBody DijkstraEra [✔] (12766ms)
+++ OK, passed 100 tests.
Tx DijkstraEra [✔] (14851ms)
+++ OK, passed 100 tests.
TxDats DijkstraEra [✔] (28ms)
+++ OK, passed 100 tests.
Redeemers DijkstraEra [✔] (40ms)
+++ OK, passed 100 tests.
Transaction size
should match the size of the cbor encoding [✔] (7524ms)
+++ OK, passed 100 tests.
MultiAsset constraints
TxOut
Completely empty MultiAsset fails deserialisation since Dijkstra [✔] (2ms)
+++ OK, passed 100 tests.
Empty nested asset maps fails deserialisation since Conway [✔] (2ms)
+++ OK, passed 100 tests.
Mint field in Tx
Completely empty mint MultiAsset fails deserialisation since Conway [✔]
+++ OK, passed 100 tests.
Empty nested asset maps in mint MultiAsset fails deserialisation since Conway [✔]
+++ OK, passed 100 tests.
DRep Ratification
PParamsUpdateThreshold always selects a threshold [✔] (1728ms)
+++ OK, passed 100 tests.
If there is no stake, accept iff threshold is zero [✔] (3731ms)
+++ OK, passed 100 tests.
DRep vote count for arbitrary vote ratios [✔] (3ms)
+++ OK, passed 100 tests.
If all votes are abstain, accepted ratio is zero [✔] (1ms)
+++ OK, passed 100 tests.
If there are no votes, accepted ratio is zero [✔] (1ms)
+++ OK, passed 100 tests.
If all vote yes, accepted ratio is 1 (unless there is no stake) [✔] (1ms)
+++ OK, passed 100 tests.
If all votes are no confidence, accepted ratio is zero [✔] (1ms)
+++ OK, passed 100 tests.
Committee Ratification
Only NoConfidence or UpdateCommittee should pass without a committee [✔] (2676ms)
+++ OK, passed 100 tests.
Committee vote count for arbitrary vote ratios [✔] (2ms)
+++ OK, passed 100 tests.
If all vote yes, ratio is 1 [✔] (2ms)
+++ OK, passed 100 tests.
If all vote no, ratio is 0 [✔] (2ms)
+++ OK, passed 100 tests.
If all abstain, ratio is 0 [✔] (2ms)
+++ OK, passed 100 tests.
Expired or resigned members are not counted [✔] (4ms)
+++ OK, passed 100 tests.
SPO Ratification
SPO vote count for arbitrary vote ratios [✔] (3698ms)
+++ OK, passed 100 tests.
If there is no stake, accept iff threshold is zero [✔] (2512ms)
+++ OK, passed 100 tests.
If all votes are abstain, accepted ratio is zero [✔] (3652ms)
+++ OK, passed 100 tests.
If there are no votes, accepted ratio is zero [✔] (315ms)
+++ OK, passed 100 tests.
If all vote yes, accepted ratio is 1 (unless there is no stake) [✔] (313ms)
+++ OK, passed 100 tests.
If all votes are no confidence, accepted ratio is zero [✔] (3739ms)
+++ OK, passed 100 tests.
Dijkstra
RoundTrip JSON
PParams DijkstraEra [✔] (4333ms)
+++ OK, passed 100 tests.
DijkstraGenesis [✔] (1ms)
+++ OK, passed 100 tests.
Imp
ShelleyImpSpec
Version 12
LEDGER
Transactions update UTxO [✔] (35ms)
EPOCH
Runs basic transaction [✔] (243ms)
Crosses epoch boundaries [✔] (536ms)
UTXOW
Bootstrap Witness
Valid Witnesses [✔] (1ms)
InvalidWitnessesUTXOW [✔] (1ms)
MissingVKeyWitnessesUTXOW [✔]
MissingScriptWitnessesUTXOW [✔]
MissingTxBodyMetadataHash [✔]
MissingTxMetadata [✔]
ConflictingMetadataHash [✔]
ExtraneousScriptWitnessesUTXOW [✔]
UTXO
ShelleyUtxoPredFailure
ValueNotConservedUTxO [✔]
ShelleyPureTests
InstantStakeIncludesRewards [✔] (347ms)
+++ OK, passed 100 tests.
AllegraImpSpec
Version 12
UTXOW
InvalidMetadata [✔] (1ms)
MaryImpSpec
Version 12
UTXO
Mint a Token [✔]
ShelleyUtxoPredFailure
ValueNotConservedUTxO [✔] (1ms)
AlonzoImpSpec
Version 12
UTXO
Wrong network ID [✔]
PlutusV1
Too many execution units for tx [✔] (1ms)
Insufficient collateral [✔] (1ms)
PlutusV2
Too many execution units for tx [✔] (1ms)
Insufficient collateral [✔] (1ms)
PlutusV3
Too many execution units for tx [✔] (1ms)
Insufficient collateral [✔] (1ms)
UTXOS
PlutusV1
Spending scripts with a Datum
redeemerSameAsDatum [✔] (239ms)
purposeIsWellformedWithDatum [✔] (242ms)
datumIsWellformed [✔] (242ms)
inputsOutputsAreNotEmptyWithDatum [✔] (239ms)
Valid transaction marked as invalid [✔]
Invalid transaction marked as valid [✔] (1ms)
Invalid plutus script fails in phase 2 [✔] (1ms)
Scripts pass in phase 2
purposeIsWellformedWithDatum [✔] (1ms)
datumIsWellformed [✔] (1ms)
inputsOutputsAreNotEmptyWithDatum [✔] (1ms)
No cost model [✔]
PlutusV2
Spending scripts with a Datum
redeemerSameAsDatum [✔] (245ms)
purposeIsWellformedWithDatum [✔] (240ms)
datumIsWellformed [✔] (260ms)
inputsOutputsAreNotEmptyWithDatum [✔] (239ms)
Valid transaction marked as invalid [✔]?7h
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
Spending scripts with a Datum
redeemerSameAsDatum [✔] (242ms)
purposeIsWellformedWithDatum [✔] (242ms)
datumIsWellformed [✔] (242ms)
inputsOutputsAreNotEmptyWithDatum [✔] (242ms)
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)
UTXOW
Valid transactions
Non-script output with datum [✔]
PlutusV1
Validating SPEND script [✔] (1ms)
Not validating SPEND script [✔] (1ms)
Validating CERT script [✔] (1ms)
Not validating CERT script [✔] (1ms)
Validating WITHDRAWAL script [✔] (1ms)
Not validating WITHDRAWAL script [✔] (1ms)
Validating MINT script [✔] (1ms)
Not validating MINT script [✔] (1ms)
Validating scripts everywhere [✔] (2ms)
Acceptable supplementary datum [✔]
Multiple identical certificates [✔] (1ms)
PlutusV2
Validating SPEND script [✔] (1ms)
Not validating SPEND script [✔] (1ms)
Validating CERT script [✔] (1ms)
Not validating CERT script [✔] (2ms)
Validating WITHDRAWAL script [✔] (1ms)
Not validating WITHDRAWAL script [✔] (1ms)
Validating MINT script [✔]
Not validating MINT script [✔] (1ms)
Validating scripts everywhere [✔] (2ms)
Acceptable supplementary datum [✔]
Multiple identical certificates [✔] (1ms)
PlutusV3
Validating SPEND script [✔] (1ms)
Not validating SPEND script [✔] (2ms)
Validating CERT script [✔] (1ms)
Not validating CERT script [✔] (1ms)
Validating WITHDRAWAL script [✔] (1ms)
Not validating WITHDRAWAL script [✔] (1ms)
Validating MINT script [✔] (1ms)
Not validating MINT script [✔] (1ms)
Validating scripts everywhere [✔] (2ms)
Acceptable supplementary datum [✔]
Multiple identical certificates [✔] (1ms)
Invalid transactions
Phase 1 script failure [✔]
PlutusV1
MissingRedeemers [✔] (1ms)
MissingRequiredDatums [✔] (1ms)
NotAllowedSupplementalDatums [✔] (1ms)
PPViewHashesDontMatch
Mismatched [✔]
Missing [✔]
UnspendableUTxONoDatumHash [✔] (1ms)
No ExtraRedeemers on same script certificates [✔] (1ms)
Missing phase-2 script witness [✔] (1ms)
Redeemer with incorrect purpose [✔] (1ms)
Missing witness for collateral input [✔]
Extra Redeemer
Minting [✔] (1ms)
Spending [✔] (1ms)
Multiple equal plutus-locked certs [✔] (1ms)
PlutusV2
MissingRedeemers [✔] (1ms)
MissingRequiredDatums [✔] (1ms)
NotAllowedSupplementalDatums [✔] (1ms)
PPViewHashesDontMatch
Mismatched [✔]
Missing [✔]
UnspendableUTxONoDatumHash [✔] (1ms)
No ExtraRedeemers on same script certificates [✔] (1ms)
Missing phase-2 script witness [✔] (1ms)
Redeemer with incorrect purpose [✔] (1ms)
Missing witness for collateral input [✔] (1ms)
PlutusV3
MissingRedeemers [✔] (1ms)
MissingRequiredDatums [✔] (1ms)
NotAllowedSupplementalDatums [✔] (1ms)
PPViewHashesDontMatch
Mismatched [✔]
Missing [✔]
UnspendableUTxONoDatumHash [✔] (1ms)
No ExtraRedeemers on same script certificates [✔] (1ms)
Missing phase-2 script witness [✔] (1ms)
Redeemer with incorrect purpose [✔] (1ms)
Missing witness for collateral input [✔] (1ms)
Version 12
BabbageImpSpec
UTXO
Reference scripts
Reference inputs can overlap with regular inputs in PlutusV2 [✔] (2ms)
Incorrect collateral total [✔] (1ms)
Min-utxo value with output too large [✔]
UTXOW
Valid
Native reference scripts must not be witnessed [✔]
Spend native script output with reference script [✔]
Reference input with data hash, no data witness [✔]
Reference input with data hash, with data witness [✔]
PlutusV2
Spend outputs locked by scripts
With an inline datum [✔]
Passed as a reference script [✔] (1ms)
Passed as a reference script and with an inline datum [✔] (1ms)
Use a reference script to authorize a delegation certificate [✔]
PlutusV3
Spend outputs locked by scripts
With an inline datum [✔]
Passed as a reference script [✔] (1ms)
Passed as a reference script and with an inline datum [✔] (1ms)
Use a reference script to authorize a delegation certificate [✔]
Invalid
Inline datum with Plutus V1 [✔] (1ms)
PlutusV2
MalformedScriptWitnesses [✔]
MalformedReferenceScripts [✔]
ExtraRedeemers/RedeemerPointerPointsToNothing [✔] (1ms)
Inline datum with a failing script [✔] (1ms)
Use a collateral output [✔] (1ms)
Inline datum and ref script and redundant script witness [✔] (1ms)
Inline datum with redundant datum witness [✔] (1ms)
No such thing as a reference datum [✔] (1ms)
PlutusV3
MalformedScriptWitnesses [✔] (1ms)
MalformedReferenceScripts [✔]
ExtraRedeemers/RedeemerPointerPointsToNothing [✔] (1ms)
Inline datum with a failing script [✔] (1ms)
Use a collateral output [✔] (2ms)
Inline datum and ref script and redundant script witness [✔] (1ms)
Inline datum with redundant datum witness [✔] (1ms)
No such thing as a reference datum [✔] (1ms)
UTXOS
Plutus V1 with references
succeeds with a reference script [✔] (1ms)
succeeds with a reference input [✔] (1ms)
Version 12
BBODY
BodyRefScriptsSizeTooBig [✔] (324ms)
BodyRefScriptsSizeTooBig with reference scripts in the same block [✔] (466ms)
totalRefScriptSizeInBlock [✔] (2ms)
Use a reference script in a collateral output [✔] (2ms)
CERTS
Withdrawals
Withdrawing from an unregistered reward account [✔] (1130ms)
Withdrawing the wrong amount [✔] (2303ms)
DELEG
Register stake credential
With correct deposit or without any deposit [✔]
Twice the same certificate in the same transaction [✔]
When already already registered [✔] (2ms)
With incorrect deposit [✔]
Unregister stake credentials
When registered [✔] (2ms)
When not registered [✔]
With incorrect refund [✔]
With non-zero reward balance [✔] (1129ms)
Register and unregister in the same transaction [✔]
deregistering returns the deposit [✔] (9469ms)
Delegate stake
Delegate registered stake credentials to registered pool [✔] (1ms)
Register and delegate in the same transaction [✔] (1ms)
Delegate unregistered stake credentials [✔] (1ms)
Delegate to unregistered pool [✔] (1ms)
Delegate already delegated credentials [✔] (4ms)
Delegate and unregister [✔] (1ms)
Delegate vote
Delegate vote of registered stake credentials to registered drep [✔] (1ms)
Delegate vote of registered stake credentials to unregistered drep [✔]
Delegate vote of unregistered stake credentials [✔]
Redelegate vote [✔] (2ms)
Delegate vote and unregister stake credentials [✔] (1ms)
Delegate vote and unregister after hardfork [✔] (3322ms)
Delegate vote and undelegate after delegating to some stake pools [✔] (1729ms)
Delegate both stake and vote - separated out for conformance mismatch
Delegate, retire and re-register pool [✔] (2022ms)
Delegate both stake and vote
Delegate and unregister credentials [✔] (1ms)
Delegate to DRep and SPO and change delegation to a different SPO [✔] (2ms)
ENACT
Committee enactment
Enact UpdateCommitee with lengthy lifetime [✔] (830ms)
CC re-election [✔] (2922ms)
Removing CC with UpdateCommittee
Non registered [✔] (1134ms)
Registered [✔] (1130ms)
Treasury withdrawals
Modify EnactState as expected [✔] (4ms)
Withdrawals exceeding treasury submitted in a single proposal [✔] (1126ms)
Withdrawals exceeding maxBound Word64 submitted in a single proposal [✔] (536ms)
Withdrawals exceeding treasury submitted in several proposals within the same epoch [✔] (840ms)
NoConfidence [✔] (2328ms)
HardForkInitiation [✔] (1828ms)
Constitution [✔] (547ms)
Competing proposals
higher action priority wins [✔] (543ms)
proposals of same priority are enacted in order of submission [✔] (612ms)
only the first action of a transaction gets enacted [✔] (614ms)
HardForkInitiation without DRep voting [✔] (1214ms)
futurePParams [✔] (517ms)
EPOCH
DRep
proposal is accepted after two epochs [✔] (909ms)
Treasury
TreasuryWithdrawal [✔] (825ms)
TreasuryWithdrawalExtra [✔] (838ms)
deposit is moved to treasury when the reward address is not registered [✔] (2913ms)
Proposals
Proposals survive multiple epochs without any activity [✔] (1723ms)
Expired proposal deposit refunded [✔] (834ms)
Proposals are expired and removed as expected [✔] (534ms)
DRep
expiry is updated based on the number of dormant epochs [✔] (1722ms)
expiry is not updated for inactive DReps [✔] (1709ms)
expiry updates are correct for a mixture of cases [✔] (3484ms)
DRep registration should succeed [✔] (251ms)
Events
emits event
GovInfoEvent [✔] (3702ms)
GOV
Constitution proposals
accepted for
empty PrevGovId before the first constitution is enacted [✔] (1ms)
valid GovPurposeId [✔] (1135ms)
rejected for
empty PrevGovId after the first constitution was enacted [✔] (536ms)
invalid index in GovPurposeId [✔] (537ms)
valid GovPurposeId but invalid purpose [✔] (534ms)
Proposals
Consistency
Proposals submitted without proper parent fail [✔] (6ms)
Subtrees are pruned when proposals expire [✔] (1731ms)
Subtrees are pruned when proposals expire over multiple rounds [✔] (3877ms)
Subtrees are pruned when competing proposals are enacted [✔] (1439ms)
Subtrees are pruned when competing proposals are enacted over multiple rounds [✔] (1135ms)
Subtrees are pruned for both enactment and expiry over multiple rounds [✔] (4748ms)
Votes from subsequent epochs are considered for ratification [✔] (1211ms)
Proposals are stored in the expected order [✔] (4ms)
Voting
VotersDoNotExist [✔] (1ms)
DRep votes are removed [✔] (1ms)
expired gov-actions [✔] (863ms)
non-existent gov-actions [✔] (2ms)
committee member can not vote on UpdateCommittee action [✔] (1ms)
committee member can not vote on NoConfidence action [✔] (1ms)
committee member mixed with other voters can not vote on UpdateCommittee action [✔] (3ms)
CC cannot ratify if below threshold [✔] (2352ms)
can submit SPO votes [✔] (822ms)
Policy
policy is respected by proposals [✔] (542ms)
Predicate failures
ProposalReturnAccountDoesNotExist [✔]
ExpirationEpochTooSmall [✔] (239ms)
ProposalDepositIncorrect [✔]
ConflictingCommitteeUpdate [✔]
Unknown CostModels
Are accepted [✔] (665ms)
Withdrawals
Fails predicate when treasury withdrawal has nonexistent return address [✔] (2ms)
Fails with invalid network ID in withdrawal addresses [✔] (1ms)
Fails for empty withdrawals [✔] (7ms)
HardFork
Hardfork is the first one (doesn't have a GovPurposeId)
Hardfork minorFollow [✔]
Hardfork majorFollow [✔]
Hardfork cantFollow [✔]
Hardfork is the second one (has a GovPurposeId)
Hardfork minorFollow [✔] (1ms)
Hardfork majorFollow [✔] (1ms)
Hardfork cantFollow [✔] (1ms)
PParamUpdate
PPU needs to be wellformed
ppuMaxBBSizeL cannot be 0 [✔] (2ms)
ppuMaxTxSizeL cannot be 0 [✔] (1ms)
ppuMaxBHSizeL cannot be 0 [✔] (2ms)
ppuMaxValSizeL cannot be 0 [✔] (1ms)
ppuCollateralPercentageL cannot be 0 [✔] (1ms)
ppuCommitteeMaxTermLengthL cannot be 0 [✔] (1ms)
ppuGovActionLifetimeL cannot be 0 [✔] (1ms)
ppuPoolDepositL cannot be 0 [✔] (1ms)
ppuGovActionDepositL cannot be 0 [✔] (1ms)
ppuDRepDepositL cannot be 0 [✔] (1ms)
PPU cannot be empty [✔] (1ms)
Network ID
Fails with invalid network ID in proposal return address [✔]
Proposing and voting
Parameter change [✔] (5ms)
Hardfork initiation [✔] (3ms)
Info action [✔] (4ms)
Treasury withdrawal [✔] (2ms)
NoConfidence [✔]
UpdateCommittee [✔]
NewConstitution [✔]
GOVCERT
Resigning proposed CC key [✔] (1ms)
succeeds for
registering and unregistering a DRep [✔]
resigning a non-CC key [✔]
re-registering a CC hot key [✔] (6ms)
fails for
invalid deposit provided with DRep registration cert [✔]
invalid refund provided with DRep deregistration cert [✔]
DRep already registered [✔]
unregistering a nonexistent DRep [✔]
registering a resigned CC member hotkey [✔] (2ms)
resigning a nonexistent CC member hotkey [✔]
LEDGER
TxRefScriptsSizeTooBig [✔] (45ms)
Withdraw from delegated and non-delegated staking key [✔] (1122ms)
Withdraw from a key delegated to an unregistered DRep [✔] (1118ms)
Withdraw and unregister staking credential in the same transaction [✔] (1118ms)
Withdraw from a key delegated to an expired DRep [✔] (2929ms)
Withdraw from a key delegated to a DRep that expired after delegation [✔] (2914ms)
Withdraw from delegated and non-delegated staking script [✔] (1118ms)
Mempool
Duplicate transactions [✔] (4ms)
Unelected Committee voting [✔] (3ms)
RATIFY
Voting
SPO needs to vote on security-relevant parameter changes [✔] (1866ms)
Active voting stake
DRep
UTxOs contribute to active voting stake [✔] (1152ms)
Rewards contribute to active voting stake [✔] (1149ms)
Rewards contribute to active voting stake even in the absence of StakeDistr [✔] (5859ms)
Proposal deposits contribute to active voting stake
Directly [✔] (1135ms)
After switching delegations [✔] (1123ms)
Predefined DReps
acceptedRatio with default DReps [✔] (1732ms)
AlwaysNoConfidence [✔] (2032ms)
AlwaysAbstain [✔] (2014ms)
DRepAlwaysNoConfidence is sufficient to pass NoConfidence [✔] (1133ms)
StakePool
UTxOs contribute to active voting stake [✔] (1431ms)
Rewards contribute to active voting stake [✔] (1430ms)
Rewards contribute to active voting stake even in the absence of StakeDistr [✔] (6207ms)
Proposal deposits contribute to active voting stake
Directly [✔] (1125ms)
After switching delegations [✔] (1130ms)
Interaction between governing bodies
Motion of no-confidence [✔] (1126ms)
Update committee - normal state [✔] (1159ms)
Hard-fork initiation [✔] (1199ms)
A governance action is automatically ratified if threshold is set to 0 for all related governance bodies [✔] (1128ms)
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 [✔] (535ms)
HardForkInitiation - default vote is No [✔] (1215ms)
Reward account delegated to AlwaysNoConfidence [✔] (1144ms)
Reward account delegated to AlwaysAbstain [✔] (1131ms)
Delaying actions
A delaying action delays its child even when both ere proposed and ratified in the same epoch [✔] (1426ms)
A delaying action delays all other actions even when all of them may be ratified in the same epoch [✔] (1219ms)
An action expires when delayed enough even after being ratified
Same lineage [✔] (1443ms)
Other lineage [✔] (1436ms)
proposals to update the committee get delayed if the expiration exceeds the max term [✔] (2916ms)
CommitteeMinSize affects in-flight proposals
TreasuryWithdrawal fails to ratify due to an increase in CommitteeMinSize [✔] (910ms)
TreasuryWithdrawal ratifies due to a decrease in CommitteeMinSize [✔] (2631ms)
ParameterChange affects existing proposals
DRep
Increasing the threshold prevents a hitherto-ratifiable proposal from being ratified [✔] (1522ms)
Decreasing the threshold ratifies a hitherto-unratifiable proposal [✔] (2413ms)
SPO
Increasing the threshold prevents a hitherto-ratifiable proposal from being ratified [✔] (1808ms)
Decreasing the threshold ratifies a hitherto-unratifiable proposal [✔] (2403ms)
A parent ParameterChange proposal can prevent its child from being enacted [✔] (610ms)
Expired and resigned committee members are discounted from quorum
Expired [✔] (1141ms)
Resigned [✔] (543ms)
Committee members can serve full `CommitteeMaxTermLength`
maxTermLength = 0 [✔] (1142ms)
maxTermLength = 1 [✔] (1129ms)
maxTermLength = 2 [✔] (1186ms)
Counting of SPO votes
HardForkInitiation [✔] (1202ms)
Hard Fork can still be initiated with less than minimal committee size [✔] (826ms)
When CC expired
SPOs alone can't enact hard-fork [✔] (6629ms)
SPOs alone can't enact security group parameter change [✔] (6427ms)
When CC threshold is 0
SPOs alone can enact hard-fork during bootstrap [✔] (535ms)
SPOs alone can enact security group parameter change during bootstrap [✔] (542ms)
Many CC Cold Credentials map to the same Hot Credential act as many votes [✔] (1198ms)
UTXO
Certificates
Reg/UnReg collect and refund correct amounts [✔] (242ms)
Reference scripts
required reference script counts towards the minFee calculation [✔] (1ms)
reference scripts not required for spending the input count towards the minFee calculation [✔] (1ms)
a scripts referenced several times counts for each reference towards the minFee calculation [✔] (1ms)
Cannot run scripts that expect inputs and refInputs to overlap (PV 9/10) [✔]
Same script cannot appear in regular and reference inputs in PlutusV3 (PV 11) [✔] (1ms)
UTXOS
Gov policy scripts
failing native script govPolicy [✔] (538ms)
alwaysSucceeds Plutus govPolicy validates [✔] (544ms)
alwaysFails Plutus govPolicy does not validate [✔] (547ms)
PlutusV3 Initialization
Updating CostModels with alwaysFails govPolicy does not validate [✔] (1628ms)
Updating CostModels with alwaysSucceeds govPolicy but no PlutusV3 CostModels fails [✔] (458ms)
Updating CostModels and setting the govPolicy afterwards succeeds [✔] (2356ms)
can use reference scripts [✔] (1ms)
can use regular inputs for reference [✔] (1ms)
fails with same txIn in regular inputs and reference inputs (PlutusV1) [✔] (1ms)
fails when using inline datums for PlutusV1 [✔] (1ms)
fails with same txIn in regular inputs and reference inputs (PlutusV3) [✔] (1ms)
fails when using inline datums for PlutusV1 [✔] (1ms)
Conway features fail in Plutusdescribe v1 and v2
Unsupported Fields
CurrentTreasuryValue
V1 [✔] (237ms)
V2 [✔] (243ms)
VotingProcedures
V1 [✔] (3ms)
V2 [✔] (3ms)
ProposalProcedures
V1 [✔] (1ms)
V2 [✔] (1ms)
TreasuryDonation
V1 [✔] (1ms)
V2 [✔] (1ms)
Certificates
Translated
RegDepositTxCert
V1 [✔] (1ms)
V2 [✔] (1ms)
UnRegDepositTxCert
V1 [✔] (2ms)
V2 [✔] (2ms)
Unsupported
DelegTxCert
V1 [✔] (1ms)
V2 [✔] (2ms)
RegDepositDelegTxCert
V1 [✔] (1ms)
V2 [✔] (2ms)
AuthCommitteeHotKeyTxCert
V1 [✔] (1ms)
V2 [✔] (1ms)
ResignCommitteeColdTxCert
V1 [✔] (1ms)
V2 [✔] (1ms)
RegDRepTxCert
V1 [✔] (1ms)
V2 [✔] (1ms)
UnRegDRepTxCert
V1 [✔] (2ms)
V1 [✔] (2ms)
UpdateDRepTxCert
V1 [✔] (1ms)
V2 [✔] (1ms)
Spending script without a Datum
PlutusV1 [✔] (1ms)
PlutusV2 [✔] (1ms)
PlutusV3 [✔] (1ms)
UTXOW
Fails with PPViewHashesDontMatch before PV 11 [✔]
Fails with PPViewHashesDontMatchInformative after PV 11 [✔] (1ms)
CostModels
CBOR deserialization
valid CostModels deserialize correctly, both independently and within PParamsUpdate [✔] (2153ms)
+++ OK, passed 100 tests.
CostModels with less than expected parameters within PParamsUpdate [✔] (1000ms)
+++ OK, passed 100 tests.
unknown CostModels deserialize correctly within PParamsUpdate starting with Conway [✔] (1ms)
+++ OK, passed 100 tests.
applyPPUpdates [✔] (11340ms)
+++ OK, passed 100 tests.
TxWits
AlonzoTxWits deserialization
plutus scripts
fails to deserialize if fields contain an empty collection [✔]
+++ OK, passed 100 tests.
fails to deserialize if empty or if it contains duplicates, starting with Conway [✔] (2ms)
+++ OK, passed 100 tests.
fails to deserialize if empty, starting with Conway [✔] (1ms)
+++ OK, passed 100 tests.
Regression
DeserialiseFailure on resubmitting Conway Tx with invalid plutus script #4198 [✔]
ImpTest
InsufficientCollateral is not encoded with negative coin #4198 [✔] (1ms)
TxInfo
TxInfo
Deposit in registration certs [✔]
+++ OK, passed 100 tests.
Deposit in unregistration certs [✔]
+++ OK, passed 100 tests.
validity interval's upper bound is open when protocol >= 9 [✔]
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 [✔]
PlutusV3
SPlutusV3
translation error on byron txout [‐]
# PENDING: No reason given
translation error on byron txin [‐]
# PENDING: No reason given
translation error on unknown txin (logic error) [‐]
# PENDING: No reason given
use reference input starting in Babbage [‐]
# PENDING: No reason given
use inline datum in input [‐]
# PENDING: No reason given
use inline datum in output [‐]
# PENDING: No reason given
use reference script in input [‐]
# PENDING: No reason given
use reference script in output [‐]
# PENDING: No reason given
Shelley era JSON Roundtrip: Dijkstra
TransitionConfig DijkstraEra [✔] (7675ms)
+++ OK, passed 100 tests.
Golden
Golden JSON specs for PParams [✔] (8ms)
Golden JSON specs for PParamsUpdate [✔] (29ms)
Failures:
testlib/Test/Cardano/Ledger/Era/Spec.hs:35:11:
1) Spec for every Era, JSON, Golden, Genesis
Uncaught Exception: /nix/store/4i1s39j6hjv96ydzm594qjn3pir1zc35-cardano-ledger-dijkstra-lib-testlib-0.1.0.0-data/share/ghc-9.6.7/x86_64-linux-ghc-9.6.7/cardano-ledger-dijkstra-0.1.0.0/golden/json/dijkstra-genesis.json: withBinaryFile: does not exist (No such file or directory)
To rerun use: --match "/Spec for every Era/JSON/Golden/Genesis/" --seed 2079799888
Randomized with seed 2079799888
Finished in 1018.2024 seconds
539 examples, 1 failure, 9 pending
Loading