High level summary
Unfortunately, due to the ZuriHac conference, we ended up skipping the Ledger update for the last period, therefore this update contains our accomplishments over the period of four weeks.
Extensive investigation into current CDDL specification and efforts of improving our testing tools lead to discovery and fixes of numerous bugs in CDDL specification dating back all the way to the Byron era. We have also improved readability of Ledger CDDL specification through enhancements to our CDDL generation tool. We have further tackled a whole bunch of tech debt and introduced performance improvements. Thanks to dropping support for ghc-8.10 we were able to add some safety improvements as well, that utilize features of the newer compiler.
Besides improvements to the existing code we have started preparation for an upcoming intra-era hard fork, which is planned to happen some time later this year and the new Dijkstra era that will happen no earlier than next year. We have fixed one more bug in preparation for the intra-era hardfork and started preliminary work for Nested Transactions.
Low level summary
Features
- PR-4996 - CDDL improvements
- PR-5073 - CDDL fixes
- PR-5056 - Reinstate
Annotator
instances to main libs - PR-5079 - Fix RequiresNetworkMagic encoding
- PR-5038 - Remove
MemoBytes
fromShelleyTx
- PR-5085 - Also make Conway's pool metadata_hash be just bytes
- PR-5090 - Renamed AlonzoTx fields
- PR-5086 - Protocol version upper bound correction
- PR-5080 - Remove
MissingRequiredSigners
- PR-5089 - Move era definitions to
core:internal
- PR-5030 - Added Dijkstra era
- PR-5100 - Untaint era definitions, while preserving the safety warning.
- PR-5109 - Add PParamUpdate minPoolCost to Shelley/Allegra/Mary CDDL
- PR-5106 - Introduce
KeyValuePairs
for easierToJSON
deriving - PR-5104 - Dijkstra Era Transition functionality
- PR-5099 - Fix
COMPLETE
pragmas forTxCert
andNativeScript
- PR-5116 - Simplify
ToJSON
instance forTransitionConfig
- PR-5091 - Move unelected CC votes check to GOV
- PR-5127 - Pure version of
plutusDebug
- PR-5122 - Memoize block body hash computation
- PR-5125 - Faster upgradeTxOut for alonzo, babbage and conway
Testing
- PR-4966 - Remove
Pretty
fromcardano-ledger-test
- PR-5061 -
constrained-generators
: SimplifyHasSpec
instance forBool
and move more things toNumSpec
- PR-5083 - Remove old version of constrained generators
- PR-5082 - Add doctests to CI
- PR-5078 - Fix typos, formatting, and broken references in the shelley-ma formal spec PDF
- PR-5102 - Add an imp test for checking deposit collection and refunds
- PR-5118 - Fix stake comparison test
- PR-5088 - Move upgrade functions for tx, body, auxData and wits to
testlib
- PR-5117 -
constrained-generators
: Separate generation and internal testing out of common modules
Infrastructure and releasing
- PR-5074 - Bump
.git-blame-ignore-revs
- PR-5081 - Add script for setting up
direnv
- PR-5092 - Fix hackage nix in flake
- PR-5110 - Upgrade deprecated Sphinx config option in
doc/
- PR-5107 -
doctest
innix develop
- PR-5112 - Remove ghcid related files
- PR-5114 - cabal.project: Update index-states and drop un-needed SRPs
- PR-5113 - Bump requests from 2.32.3 to 2.32.4 in /doc