High level summary
Major Conway related development was the refactoring of how we distinguish Plutus language versions in every era, thus drasticly improving the type safety and getting us much closer to PlutusV3 integration.
There has also been many bug fixes and improvements since the last update. Some important bug fixes are:
- missing
"protocolVersion"
field in JSON instance for Babbage and Conway protocol parameters - requiring witnesses for DRep registration
- new committee governance action ratification was implemented incorrectly
- guard against invalid protocol versions in hard fork initiation proposals
- failures during updates of Plutus CostModels were not retained
- fixed the types for some protocol parameters in order to prevent values that are too large
- serialization and CDDL fixes
A few useful features have been also implemented, like new ledger events, doubling the limit for Url length, consensus query, JSON instances and so on. It was also required for testing to implement a reliable transaction fee estimation function, which is now available not only for testing, but also for cardano-cli.
Low level summary
Conway
- pull-3915 - Utilize
Inject
type class forVal
'sinject
- pull-3899 - Bring Plutus language version to the type level
- pull-3917 - Ensure DRepRegistration certificate requires a witness
- pull-3921 - Fix committee validation in Ratify
- pull-3935 - Fixed a bug in
Conway.Rules.Gov
- pull-3956 - Allow 128 byte Url and DnsNames for decoder version atleast 9.
- pull-3954 - Fix how we update
CostModels
- pull-3947 - Change the type of some pparam fields to align with how they are represented in Consensus
- pull-3951 - Conway genesis DRep injection
- pull-3961 - Switch ContextError to an injective type family from a data family
- pull-3963 - Abstract
getWitsVKeyNeeded
- pull-3933 - Improve cbor serialization of TxWits in Conway
- pull-3971 - ToJson instances for context error
- pull-3977 - Added
GetAccountStateQuery
- pull-3975 - Add policy hash protection to
TreasuryWithdrawals
andParameterChange
Testing
- pull-3892 - Translate DRep expiry test from
ConwayFeatures
to ImpGovSpec
- pull-3913 - Add certs to conformance testing
- pull-3911 - Add a Preds to generate valid GovActionStates.
- pull-3929 - Improve comment on
unit_interval
in cddl - pull-3950 - Use discard to avoid bad traces for fixOutput
- pull-3935 - Add some Imp tests for HardForkInitiation.
- pull-3964 - Ignore thunks in
utxosDeposited
- pull-3962 - Add
estimateMinFeeTx
- pull-3976 - Introduce accurate min fee calculation function:
calcMinFeeTx
Improvements
- pull-3930 - Change type of
mintedTxBodyL
toPolicyID
- pull-3924 - Split type classes out of eras Core module
- pull-3934 - Type safety bugfixes
- pull-3949 - Add FromJSON BabbagePParams instance
- pull-3953 - Babbage / Conway PParams JSON serialization
- pull-3946 - Epoch interval instances
- pull-3932 - Add ledger event TxUTxODiff
- pull-3969 - Add missing stake key deposit in formal spec
- pull-3973 - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore