Skip to content

Releases: bloxbean/cardano-client-lib

0.6.2

18 Oct 14:51
Compare
Choose a tag to compare

What's Changed

  • Switch to LinkedHashMap to keep the same iteration order during deserialization by @satran004 in #449
  • Handle NativeScript as ScriptRef by @satran004 in #460
  • Support BigInteger for "required" in ScriptAtLeast and change slot from long to BigInteger by @satran004 in #462
  • feat: support for CIP-30 payload hash with an extra overloaded methods by @matiwinnetou in #464
  • Add support for Optional types in blueprint processing by @satran004 in #463

Full Changelog: v0.6.0...v0.6.2

0.6.0

16 Sep 04:37
f5412e2
Compare
Choose a tag to compare

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

0.6.0-beta1

20 Aug 04:56
Compare
Choose a tag to compare
0.6.0-beta1 Pre-release
Pre-release

Key Changes

Conway Era features

  1. Added support for Conway Era transactions and integration with QuickTx.
  2. Implemented Plutus V3 support.
  3. CIP-105 implementation: Conway Era key chains for HD Wallet.
  4. Implemented tiered reference script fees in the Conway Era.

Other Updates

  • CIP-57: Preview of Plutus Blueprint code generation.
  • Updated Koios Java Client to v1.18.2, including a new Pool Service endpoint.

What's Changed

  • fix: blockHeight, absoluteSlot and blockTime should actually be withi… by @matiwinnetou in #377
  • chore: Add PointerAddress class to decode a pointer address by @satran004 in #379
  • fix: #388 Added policy hash by @satran004 in #393
  • feat: Added conway era protocol params by @satran004 in #381
  • Koios Java Client Alignment with v1.18.2 + Add Pool Service Endpoint by @edridudi in #395
  • New Koios + BF Support for resolving Transactions Data by Payment/Staking Addresses by @edridudi in #396
  • chore: update Koios backend example in README.md by @fabianbormann in #400
  • chore: updated bouncycastle and jackson to fix security issues. by @Kammerlo in #403
  • feat: #378 Initial implementation to support PlutusV3 by @satran004 in #382
  • chore: Remove protocol param direct dependency in Tx, ScriptTx apis. … by @satran004 in #406
  • 369 generate pojos for annoation processor from cip57 plutusblueprints by @Kammerlo in #376
  • fix: Handle serialization and deserialization of bigint/bytestring when length > 64 by @satran004 in #398
  • Plutus Blueprint annotation processor enhancements by @satran004 in #410
  • Blueprint Code generation enhancements by @satran004 in #412
  • feat: #368 CIP105 - Governance keys derivation and bech32 encoding by @satran004 in #413
  • feat: #411 tier ref script fee implementation for Conway era by @satran004 in #414
  • donateToTreasury(currentTreasuryVal, donationAmt) api in QuickTx by @satran004 in #415

New Contributors

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

0.5.2-preview

04 May 12:22
Compare
Choose a tag to compare
0.5.2-preview Pre-release
Pre-release

Note

This is a preview release and should only be used for Conway era testing on Sanchonet.

What's Changed

  • fix: blockHeight, absoluteSlot and blockTime should actually be withi… by @matiwinnetou in #377
  • chore: Add PointerAddress class to decode a pointer address by @satran004 in #379
  • fix: Update default drep registration amount to 500 ADA as per current settings in protocol param by @satran004 in #391
  • fix: #388 Added policy hash by @satran004 in #393
  • feat: Added conway era protocol params by @satran004 in #381

Full Changelog: v0.5.1...v0.5.2-preview

0.5.1

31 Jan 03:22
Compare
Choose a tag to compare

Key Changes

  • Governance API Support in QuickTx and Low-Level CBOR Serialization for Conway Era (Preview)

    • New APIs have been added for regular accounts:
      • Register/Unregister as a DRep
      • Create a Proposal
      • Delegate Voting Rights to a DRep
      • Vote
  • New CIP-67 and CIP-68 Modules

  • Backend Provider Changes

    • Integrated with Koios Java Client v1.18.1.
  • New Supplier Modules

    • ogmios-supplier: Supports v6.0.x. Provides implementation for ProtocolParamSupplier and TransactionProcessor to evaluate and submit transactions.

    • kupo-supplier: Supports v2.7.2. Provides implementation for UtxoSupplier to fetch UTXOs.

    Note: These suppliers can be directly used in QuickTx or Composable Functions to build and submit transactions. Alternatively, the Ogmios backend module can be used for the same purpose, utilizing these suppliers internally.

  • Removal of the "Local" Supplier Module

    The "local" supplier module has been removed in this release to prevent circular dependency issues with Yaci. It will be re-released as a separate project.

  • Package Rename
    Old : com.bloxbean.cardano.client.backend.ogmios.OgmiosBackendService
    New: com.bloxbean.cardano.client.backend.ogmios.http.OgmiosBackendService

Note: The OgmiosBackendService requires an HTTP URL for Ogmios 6.0.x.

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.5.1

0.5.1-preview1

26 Jan 05:20
Compare
Choose a tag to compare
0.5.1-preview1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.5.1-preview1

v0.5.0

05 Oct 15:32
Compare
Choose a tag to compare

Key Features

  1. QuickTx : A new declarative-style API to build and submit transaction
  2. Annotation Processor : Compile time annotation processor to generate cbor serialization code for POJO. POJO <---> PlutusData
  3. Backend API Changes:
    • A new service ScriptService with methods to get
      - datum by datum hash (Both Json & Cbor)
      - PlutusScript or NativeScript by script hash
      - Script cbor for Plutus script and Json for Native Script
    • A new method in TransactionService to get tx redeemers by tx hash.
    • A new method in AssetService to get transactions for an asset.
  4. Koios Java Client 1.17.3

Breaking Changes

  1. Package rename

Plutus specific serialization classes are moved from com.bloxbean.cardano.client.transaction.spec.* to com.bloxbean.cardano.client.plutus.spec.* package in plutus sub-module.

Other classes/packages

Existing New
com.bloxbean.cardano.client.backend.model.EvaluationResult com.bloxbean.cardano.client.api.model.EvaluationResult
com.bloxbean.cardano.client.transaction.util.ScriptDataHashGenerator com.bloxbean.cardano.client.plutus.util.ScriptDataHashGenerator
com.bloxbean.cardano.client.transaction.spec.NetworkId com.bloxbean.cardano.client.spec.NetworkId
com.bloxbean.cardano.client.transaction.util.CborSerializationUtil com.bloxbean.cardano.client.common.cbor.CborSerializationUtil
com.bloxbean.cardano.client.transaction.spec.script.Script com.bloxbean.cardano.client.spec.Script
com.bloxbean.cardano.client.util.AssetUtil com.bloxbean.cardano.client.api.util.AssetUtil

What's Changed

  • Added ability to serialise plutus data to byte array by @matiwinnetou in #221
  • Fix(#223): Added support for Optional types by @satran004 in #225
  • Fix insufficient collateral due to new inputs in change adjustment calculation in balanceTx by @satran004 in #226
  • This change helps to make API more fluid. by @matiwinnetou in #228
  • Fix (#229): Change key sort comparator to compare unsigned bytes and re… by @satran004 in #230
  • Alignment with Koios Java Client 1.17.1 + New Get Transactions API by @edridudi in #236
  • refactor(address): Rename getPaymentKeyHash & getDelegationHash metho… by @satran004 in #237
  • reafactor(core) : #224 Split core module into spec, plutus, coinselec… by @satran004 in #242
  • Move remaining plutus classes to plutus module and remove deprecated classes by @satran004 in #245
  • feat(address) : #243 Create shelley address from credentials. by @satran004 in #244
  • feat(backend-api): #238 getTxOutput(tx,index) in UtxoServicr, UtxoSup… by @satran004 in #241
  • Koios Java Client Alignment with 1.17.2 + Tx UTxOs retrieval Bugfix by @edridudi in #246
  • New high-level api module (QuickTx) by @satran004 in #248
  • 0.5.0 alpha fix by @satran004 in #250
  • feat(quicktx)!: #253 Add option to set a different utxo selection str… by @satran004 in #262
  • Support to verify the transaction content before submission through Verifier(s) by @satran004 in #263
  • feat(address)!: #258 Add getPaymentCredential and getDelegationCreden… by @satran004 in #261
  • Initial implementation of Plutus Blueprint (CIP 57) by @satran004 in #266
  • fix(quicktx): Fixed timeout after transaction submission by @satran004 in #268
  • Quicktx - Unit Tests by @satran004 in #269
  • fix: #257 Add custom json serializer to fix metadata's json serializa… by @satran004 in #270
  • feat(suppliers/local): Local node suppliers implementation by @satran004 in #271
  • fix: Handle when multiple multiassets with same policy id is use… by @satran004 in #273
  • feat: Added payMintAssetToAddress / payMintAssetToContract methods by @satran004 in #274
  • refactor: mintAssets api cleanup. QuickTx integration tests with DEVKIT. by @satran004 in #275
  • QuickTx: Api for pool registration, update, retirement by @satran004 in #277
  • Annotation module to convert POJO <--> PlutusData by @satran004 in #278
  • chore: Fixed failed tests specific to reference inputs by @satran004 in #281
  • Fix #280 : Duplicate OSUtil class in core module by @satran004 in #282
  • chore: #280 Removed placeholder.txt to fix error in Android by @satran004 in #283
  • Add mergeOutputs option to control whether to merge outputs or not by @satran004 in #290
  • fix: #289 Added deprecation notice to high-level apis by @satran004 in #291
  • fix: #280 Use guava's UnsignedBytes.lexicographicalComparator to avoi… by @satran004 in #292
  • Fix: actually CCL is auto-fixing too large metadata strings, changed … by @matiwinnetou in #294
  • fix: #295 Class cast exception during evaluateTx. by @satran004 in #296
  • chore: Check if same from address is used in multiple Txs by @satran004 in #297
  • Added collectFrom() methods with datum for V1 by @satran004 in #304
  • feat: #299 Methods to add required signers by @satran004 in #305
  • feat: #301 Added withCollateralInputs() to add specific collateral in… by @satran004 in #306
  • chore: Bump guava, jackson, yaci, aiken-java-binding versions by @satran004 in #307
  • ScriptTx: Method to add utxo without redeemer by @satran004 in #308
  • Added endpoints by @Thomar10 in #312
  • feat: #313 Added new methods to get PlutusScript, NativeScript by @satran004 in #314
  • Added AssetService.getTransactions, added Tuple.toString + equals & hashCode, change AddressProvider visibility by @stikkos in #315
  • fix: 316 checking byte[] type by @satran004 in #317
  • fix: #316 Latest supported version should be decided based on runtime… by @satran004 in #321
  • Skip Tx evaluation if tx output has negative ada amount by @satran004 in #325
  • Add used by 'nftio.io' by @calistrum in #327
  • Koios Java Client Upgrade to 1.17.3 by @edridudi in #329
  • Enhance annotation processor by @satran004 in #331
  • Tests for Annotation processor by @satran004 in #333

New Contributors

Full Changelog: v0.4.3...v0.5.0

0.5.0-beta3

09 Sep 14:17
Compare
Choose a tag to compare
0.5.0-beta3 Pre-release
Pre-release

Key Changes

1. BackendService

  • A new service ScriptService with methods to get
    - datum by datum hash (Both Json & Cbor)
    - PlutusScript or NativeScript by script hash
    - Script cbor for Plutus script and Json for Native Script
  • A new method in TransactionService to get tx redeemers by tx hash.
  • A new method in AssetService to get transactions for an asset.

Note: Currently the above apis are only available for Blockfrost backend.

2. Fixes in annotation processor module to support byte[] type

Breaking Changes

Please check 0.5.0-alpha.2 release notes for breaking changes.

What's Changed

  • Added endpoints by @Thomar10 in #312
  • feat: #313 Added new methods to get PlutusScript, NativeScript by @satran004 in #314
  • Added AssetService.getTransactions, added Tuple.toString + equals & hashCode, change AddressProvider visibility by @stikkos in #315
  • fix: 316 checking byte[] type by @satran004 in #317
  • fix: #316 Latest supported version should be decided based on runtime… by @satran004 in #321

New Contributors

Full Changelog: v0.5.0-beta2...v0.5.0-beta3

0.5.0-beta2

27 Aug 14:26
Compare
Choose a tag to compare
0.5.0-beta2 Pre-release
Pre-release

Key Changes

  • New methods in ScriptTx
    - collectFrom(Utxo, RedeemerData, Datum) : For utxos with datum hash
    - collectFrom(Utxo) : To add a regular utxo without datum/datum hash
  • New methods in QuickTxBuilder
    - withRequiredSigners(Address... address)
    - withRequiredSigners(byte[]... bytes)
    - withCollateralInputs(TransactionInput... inputs) : To add specific inputs as collateral to avoid auto selection of collateral inputs
    - ignoreScriptCostEvaluationError(boolean flag) : To determine whether the builder will throw an exception due to an error that occurs during script cost evaluation.
  • Bump versions for Jackson, Guava, Aiken Java Binding, Yaci

Breaking Changes

Please check 0.5.0-alpha.2 release notes for breaking changes.

What's Changed

Full Changelog: v0.5.0-beta1...v0.5.0-beta2

0.5.0-beta1

17 Aug 17:11
Compare
Choose a tag to compare
0.5.0-beta1 Pre-release
Pre-release

Breaking Changes

Please check 0.5.0-alpha.2 release notes for breaking changes.

What's Changed

Full Changelog: v0.5.0-alpha.4...v0.5.0-beta1