Releases: bloxbean/cardano-client-lib
0.6.2
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
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
ingetScript
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
Key Changes
Conway Era features
- Added support for Conway Era transactions and integration with QuickTx.
- Implemented Plutus V3 support.
- CIP-105 implementation: Conway Era key chains for HD Wallet.
- 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
- @fabianbormann made their first contribution in #400
Full Changelog: v0.5.1...v0.6.0-beta1
0.5.2-preview
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
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 APIs have been added for regular accounts:
-
New CIP-67 and CIP-68 Modules
- Added support for the Datum Metadata Standard.
-
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
- fix: #339 handle when asset name is invalid hex string by @Sotatek-HuyLe3a in #340
- Koios Java Client Aligment to v1.18.1 + Fix #50 + Fix #64 by @edridudi in #346
- adding prerequisites to readme by @Kammerlo in #349
- Implement cip 67 by @Kammerlo in #350
- 351 add support for metdata standard from cip68 by @Kammerlo in #352
- feat: Initial implementation for conway era by @satran004 in #345
- feat: Sanchonet support - Serialization and QuickTx api first version by @satran004 in #359
- fix: #353 Directly extract tx body bytes from tx bytes by @satran004 in #356
- #341 added automatic string split to max 64 bytes and added test for string splitting by @Kammerlo in #362
- #360 fixed getSubListByPage. by @Kammerlo in #364
- fix: #337 Added a separate method to sign transaction bytes by @satran004 in #342
- 365 upgrade ogmios backendservice to use http api by @Kammerlo in #367
- feat: #372 Add method to get script DRepId and tests by @satran004 in #373
- Refactor CIP68 implementation by @satran004 in #371
New Contributors
- @Sotatek-HuyLe3a made their first contribution in #340
- @Kammerlo made their first contribution in #349
Full Changelog: v0.5.0...v0.5.1
0.5.1-preview1
What's Changed
- fix: #339 handle when asset name is invalid hex string by @Sotatek-HuyLe3a in #340
- Koios Java Client Aligment to v1.18.1 + Fix #50 + Fix #64 by @edridudi in #346
- Implement cip 67 by @Kammerlo in #350
- 351 add support for metdata standard from cip68 by @Kammerlo in #352
- feat: Initial implementation for conway era by @satran004 in #345
- feat: Sanchonet support - Serialization and QuickTx api first version by @satran004 in #359
- fix: #353 Directly extract tx body bytes from tx bytes by @satran004 in #356
- #341 added automatic string split to max 64 bytes and added test for string splitting by @Kammerlo in #362
- #360 fixed getSubListByPage. by @Kammerlo in #364
New Contributors
- @Sotatek-HuyLe3a made their first contribution in #340
- @Kammerlo made their first contribution in #349
Full Changelog: v0.5.0...v0.5.1-preview1
v0.5.0
Key Features
- QuickTx : A new declarative-style API to build and submit transaction
- Annotation Processor : Compile time annotation processor to generate cbor serialization code for POJO. POJO <---> PlutusData
- 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.
- A new service
- Koios Java Client 1.17.3
Breaking Changes
- 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
- @Thomar10 made their first contribution in #312
- @calistrum made their first contribution in #327
Full Changelog: v0.4.3...v0.5.0
0.5.0-beta3
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
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
- 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
Full Changelog: v0.5.0-beta1...v0.5.0-beta2
0.5.0-beta1
Breaking Changes
Please check 0.5.0-alpha.2 release notes for breaking changes.
What's Changed
- 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
- chore: doc changes for 0.5.0 by @satran004 in #288
- 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
Full Changelog: v0.5.0-alpha.4...v0.5.0-beta1