- Entries in
PlutusTx.Builtins
for CIP-0087 primitives - Entries in
PlutusTx.Builtins.Internal
for CIP-0087 primitives
- The
blake2b_224
function in the plutus-tx plugin was erroneously callingblake2b_256
instead. Now fixed.
-
The group elements
bls12_381_G1_zero
andbls12_381_G1_generator
have been replaced with bytestrings calledbls12_381_G1_compressed_zero
andbls12_381_G1_compressed generator
, and similarly forbls12_381_G2_zero
andbls12_381_G2_generator
. PlutusTx scripts should applybls12_381_G2_uncompress
orbls12_381_G2_uncompress
to the compressed versions to recover the group elements. -
Improved the performance of
PlutusTx.AssocMap.insert
andPlutusTx.AssocMap.unionWith
.
- The "safe" version of
fromData
was using an unsafehead
function, so would crash on some malformed input instead of returningNothing
.
- A more informative error message when the plugin encounters a literal range
- PlutusTx.enumFromThenTO for ranges like [1,5..101]
- Generated instances for
IsData
now have more efficient codegen, but requireViewPatterns
.
-
asData
, a TH function for creating datatype declarations that are backed byData
, which can be much faster in some circumstances. -
Generic instances for Rational and BuiltinData.
- Fixed a strictness issue in generated
IsData
instaces when using-O0
in Plutus Tx.
- The
Strict
extension is now on by default in all of Plutus Tx.
- Haskell function for
keccak_256
builtin - Haskell function for
blake2b_224
builtin
- New built-in types and functions for BLS12-381 operations.
- GHC 9.6 support
-
Monomorphized functions in PlutusTx.Foldable that should short-circuit. This makes them short-circuit properly.
-
liftCode
and some other functions inPlutusTx.Lift
now return PIR in addition to UPLC.
- Various
Lift
functions gainedVersion
arguments, so that you can control the version of PLC used in the resulting program. This also affects how the PIR compiler will compile datatypes.
unsafeApplyCode
, a variant ofapplyCode
that throws if the language versions don't match.
applyCode
now requires matching Plutus Core language versions.
- Removed Plutus Tx library functions with the
Haskell.Monad
constraint. Functions requiringFunctor
andApplicative
are usingPlutusTx.Functor
andPlutusTx.Applicative
, but those requiringMonad
were using Haskell'sMonad
, which is inconsistent and confusing. We should either add aPlutusTx.Monad
class, or switch to Haskell'sFunctor
andApplicative
. Some of these functions likesequence_
andmapM_
are also not useful, and one should prefersequenceA_
andtraverse_
, respectively.
- Use
foldr
instead offoldMap
inPlutusTx.Foldable