High level summary
We’ve completed the implementation of CIP-0153, introducing the Value built-in type and its associated functions. Our current focus is on finalizing the costing for these built-ins. Once this is complete, Plutus will be ready for the intra-era hard fork. All other features scheduled for the hard fork are already finished.
We’ve improved the Flat decoding of built-in lists, which has noticeably sped up Plutus script deserialization. In our benchmarks, some scripts' deserialization now runs with double-digit performance gains.
We’ve updated the Plutus Core specification and the Agda formalization to include the multi-scalar multiplication primitives (CIP-0133). Additional property and conformance tests have also been added for these primitives.
The team is also gearing up for UPLC 2025, a UPLC event scheduled to take place in approximately three weeks.
Low level summary
Key Pull Requests Merged
- Spec: serialise arrays as lists; miscellaneous updates
- Implement ValueData and UnValueData
- Add BLS12-381 MSM builtins to specification
- Benchmarks for flat list/array decoding
- Keep track of currency/token lengths in builtin Value
- Property tests for BLS12-381 multi-scalar multiplication
- Optimise list decoder
- Add BLS12-381 MSM builtins to metatheory
- Conformance tests for BLS12_381 multiScalarMul operations (2)
- Value decoding/parsing: reject currencies/tokens longer than 32 bytes
- Enforce currency and token lengths in insertCoin and unValueData
- Cover some missing cases in the connformance tests for wrteiBits
- Enable the Agda conformance tests for the array builtins
- valueContains: enforce no negative amounts in either Value
- Enable BLS12-381 MSM builtins at PV11
- Conformance tests for built-in functions on Value
Issues and Pull Requests In Progress
- Built-in Value: costing (in plutus-private)