Releases: Concordium/concordium-java-sdk
Releases · Concordium/concordium-java-sdk
Release list
v.12.1.0
- Added
MintTokenOperationimplementing protocol level token mint - Added protocol level token mint example, see
MintTokeninconcordium-sdk-examples - Added deserialization for the
ConfigureDelegationpayload - Fixed incorrect deserialization of the
UpdateContractpayload parameter - Fixed inability to create verifiable presentations (proofs) with certain order of statements
v.12.0.0
- Support for Protocol 10
- Added
ProtocolVersion.V10corresponding to Protocol version 10 - Added
AccountTransactionV1which is the sponsored transaction,
signed by both the sender and the sponsor - Added
BlockItemType.ACCOUNT_TRANSACTION_V1corresponding toAccountTransactionV1 - Added ability to create and complete sponsored transactions via
TransactionFactory - Added
SponsoredTransactionexample - Added
TransactionFactory.newPayloadSubmission()builder to create transactions
with any payload, includingRawPayload - Changed
ClientV2.sendTransaction()method to accept anyBlockItem - Removed
ClientV2.sendCredentialDeploymentTransaction()method.
Such a transaction can now be submitted via thesendTransaction()method - Added optional
sponsorDetailstoAccountTransactionDetails,
which is present if the transaction was sponsored - Added
Payload.fromBytes()deserialization method - Added
TokenUpdate.fromBytes()deserialization method - Removed long unsupported
EncryptedTransferandTransferToEncrypted.
OnlyTransferToPublicremained - Added
Expiry.from()method to create it fromUInt64 - Add human-readable
toString()implementation forTransferTokenOperation
Breaking changes in handling of the transactions
Since the sponsored transactions feature from Protocol 10 introduces a new way of representing
the same transactions, existing conveniences around AccountTransaction are rendered useless.
Please, go through the following list of changes to understand how to fix the code after updating to 12.0.0.
There are also updated examples.
Payloadno longer holdsTransactionHeaderandTransactionSignature.
Its purpose is now purely to define the action executed by eitherAccountTransaction
orAccountTransactionV1. UseTransactionFactoryinstead- Removed
Payload.getDataToSign()method. Use thegetDataToSign()method from
eitherAccountTransactionorAccountTransactionV1instead
(the data differs for a sponsored transaction) - Removed
Payload.calculateEnergyCost()method. Use thecalculateMaxEnergyCostmethod from
eitherTransactionHeaderorTransactionHeaderV1instead
(the cost is bigger for a sponsored transaction) - Renamed
PayloadgetTrasnactionType()method to justgetType() TransactionFactory.new***()methods now requirePayloadas an argument.
For example,newTransfer()requiresTransferpayload.
Methods invoking smart contracts, likenewUpdateContract(), also take max contract execution energy
as the second argument (what used to be set through themaxEnergyCost()method)- Replaced
TransactionFactorybuildersigner()andbuild()methods with justsign(),
which now returns the finalAccountTransaction TransactionFactorynow only returnsAccountTransaction,
orAccountTransactionV1for sponsored transactions- Removed specific
AccountTrasnactionimplementations likeTransferTransaction,
TokenUpdateTransaction, etc. Replace occurrences of the removed types withAccountTransaction
and useTransactionFactoryto create such transactions - Merged
TransferPayloadandTransferto justTransfer - Merged
TransferWithMemoPayloadandTransferWithMemoto justTransferWithMemo - Merged
ConfigureBakerPayloadandConfigureBakerto justConfigureBaker - Merged
ConfigureDelegationPayloadandConfigureDelegationto justConfigureDelegation - Merged
InitContractPayloadandInitContractto justInitContract - Changed
TransactionHeader.expiryfield type fromUInt64toExpiry - Removed various
TransactionHeaderbuilders. Do not manipulate headers directly,
useTransactionFactoryinstead - Removed
AccountTransactionbuilder and extended constructor.
UseTransactionFactoryinstead
v.11.2.1
Fixed discrepancies with JavaScript SDK in creation of verifiable presentation
v.11.2.0
- Added ability for wallets to create verifiable presentations (proofs) from identities and accounts.
The entrypoint isVerificationRequestV1. This change does not include audit. - Removed checked exception from
AtomicStatement.canBeProvedBy() AtomicStatements now implementequals()andhashCode()Hashis now fully JSON and CBOR serializable
v.11.1.0
- Made
TokenOperations deserializable from CBOR.
TokenUpdate.builder().operationsSerialized()can be used for deserialization - Added
TaggedTokenHolderAccount.getAddress()returning the address in a convenient form
v.11.0.2
- Fixed always empty
tokensinAccountInfo
v.11.0.1
- Made Android package compatible with 16 KB alignment requirement
v.11.0.0
- Support for Protocol 9
- Added
ProtocolVersion.V9corresponding to Protocol version 9 - Added
tokensfield toAccountInfo, containing list of related protocol level tokens - Added new account transaction,
TokenUpdate, used to execute protocol level tokens operations - Added
TokenOperationinterface for protocol level tokens operations - Added
TransferTokenOperationimplementing protocol level token transfer - Added protocol level token transfer example, see
SendTokenTransferinconcordium-sdk-examples - Added
tokenUpdateresult toAccountTransactionDetails - Added
createPltUpdateauthorization toAuthorizationsV1 - Added
RejectReasonTokenUpdateTransactionFailedandRejectReasonNotExistentTokenIdtransaction reject reasons - Added
CborMappersingleton providing Jackson CBOR object mapper - Fixed having the Lombok library transitive
v.10.0.1
- Added
getPassiveDelegationInfoendpoint providing information about the passive delegators at the end of a given block - Exposed
Payload.calculateEnergyCostmethod - Fixed base cost of
ConfigureDelegationtransaction being bigger than needed
v.10.0.0
It's a small release fixing one particular issue in ConfigureBaker transaction, yet the fix is not backward-compatible.
- Changed
openForDelegationfield inConfigureBakerPayloadfrombooleantoOpenStatus:
what used to befalseis nowOpenStatus.OPEN_FOR_ALL,
what used to betrueis nowOpenStatus.CLOSED_FOR_NEW,
and it is now possible to setOpenStatus.CLOSED_FOR_ALLas well
If you missed the previous major release introducing Protocol 8 support, check out the corresponding release notes