cardano-ledger
cardano-ledger copied to clipboard
Ts additions prime spec cert steps
Get the CERTS conformance rule working. This is complicated because of slight differences between the implementation and the spec. These difference come in two flavors
- The spec makes more tests than the implementation using the withdrawals which are not part of the implementation. The solution to these difference is to randomly generate more refined inputs, which will make the spec tests pass, and will be ignored by the implementation.
- The Spec zeros out the reward balances for the withdrawals. The solution to this is to "fixup" the implementation test by zeroing out its reward balances for the withdrawals before comparing the final states of the implementation and the spec.
This PR was complicated by a bug in the MAlonzo code, that has now been fixed.
Checklist
- [x] Commit sequence broadly makes sense and commits have useful messages
- [x] New tests are added if needed and existing tests are updated
- [ ] All visible changes are prepended to the latest section of a
CHANGELOG.mdfor the affected packages. New section is never added with the code changes. (See RELEASING.md) - [ ] When applicable, versions are updated in
.cabalandCHANGELOG.mdfiles according to the versioning process. - [ ] The version bounds in
.cabalfiles for all affected packages are updated. If you change the bounds in a cabal file, that package itself must have a version increase. (See RELEASING.md) - [x] Code is formatted with
fourmolu(usescripts/fourmolize.sh) - [x] Cabal files are formatted (use
scripts/cabal-format.sh) - [x]
hie.yamlhas been updated (usescripts/gen-hie.sh) - [x] Self-reviewed the diff
I have brought this branch up to date with the changes that have been merged to master, and the changes that were made in the "Alternative steps" branch that this branch is based on.
Rebased against master again, in order to get rid of the commits that have already been merged to master.