Skip to content

0.6.0

Compare
Choose a tag to compare
@satran004 satran004 released this 16 Sep 04:37
· 32 commits to master since this release
f5412e2

This is the first stable release for the Conway Era. For all the changes since 0.5.1, please also refer to the 0.6.0-beta1 release notes.

Key Changes in This Release

  • Fixed script data hash issues for Plutus V3 caused by Conway era serialization changes.
  • Updated serialization code to provide era-specific serialization based on application requirements.
  • Koios Java Client v1.19.0 and other fixes for the Conway era.
  • Fixed Ogmios backend's Epoch service to return the Plutus V3 cost model.
  • Blueprint annotation processor fixes.

Known Limitations and Workaround

When a transaction containing a Plutus V1 script or a script with a datum hash in the output is serialized using the Conway era format (Map for redeemer, 258 tag for set), a script data hash mismatch error occurs.

To resolve this, the library automatically uses the Babbage era serialization format if it detects a Plutus V1 script in the transaction, which should cover most cases automatically.

However, there are a few scenarios where the library doesn't enforce the Babbage era serialization format. One such scenario is a script transaction with a datum hash in the output (instead of an inline datum).

To address this, the library introduces a new method that applications can use to specify the serialization format. The default format is the Conway era format.

For QuickTx, there is a new withSerializationEra method that takes an era parameter:

Result<String> result = quickTxBuilder.compose(scriptTx)
                .feePayer(sender1Addr)
                ....
                .withSerializationEra(Era.Babbage)
                .completeAndWait(System.out::println);

For Composable Functions:

Transaction signedTxn = TxBuilderContext.init(utxoSupplier, protocolParams)
                .withSerializationEra(Era.Babbage)
                .buildAndSign(builder, signer);

For Low-Level Serialization APIs, you can directly set the serialization era in the Transaction object:

transaction.setEra(Era.Babbage);

What's Changed

  • Koios Java Client alignment with v1.19.0 by @edridudi in #421
  • [Koios] minFeeRefScriptCostPerByte is missing in Koios backend #425 by @edridudi in #427
  • chore: Update default cost model during Conway HF by @satran004 in #418
  • Introduced SlotConfigs for Transaction Evaluators by @nemo83 in #431
  • fix: Handle null or empty scriptHash in getScript method by @satran004 in #434
  • [Annotation Processor] Set default int type to BigInteger by @satran004 in #433
  • Add Plutus V3 cost model handling by @satran004 in #438
  • Fixed package in integration tests by @satran004 in #439
  • Add era-specific serialization support for transactions by @satran004 in #441

Full Changelog: v0.6.0-beta1...v0.6.0