- Support for Protocol 11
- Added
ProtocolVersion.V11corresponding to Protocol version 11 - Added
getTokenListendpoint for querying the list of protocol level tokens - Added
getTokenAuthorizationsendpoint for querying authorizations of a given token - Added
UpdateMetadataTokenOperationupdating the metadata of a given token - Added
TokenAdminRoleenum holding admin roles defined for the current token module implementation - Added
AssignAdminRolesTokenOperationandRevokeAdminRolesTokenOperationmanaging admin roles of a given account for a given token
- 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
- 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
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 eitherAccountTransactionorAccountTransactionV1. 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 withAccountTransactionand 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
- Fixed discrepancies with JavaScript SDK in creation of verifiable presentation
- Added ability for wallets to create verifiable presentations (proofs) from identities and accounts.
The entrypoint is
VerificationRequestV1. This change does not include audit. - Removed checked exception from
AtomicStatement.canBeProvedBy() AtomicStatements now implementequals()andhashCode()Hashis now fully JSON and CBOR serializable
- Made
TokenOperations deserializable from CBOR.TokenUpdate.builder().operationsSerialized()can be used for deserialization - Added
TaggedTokenHolderAccount.getAddress()returning the address in a convenient form
- Fixed always empty
tokensinAccountInfo
- Made Android package compatible with 16 KB alignment requirement
- 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
- 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
- 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
- Support for Protocol 8
- Added
ProtocolVersion.V8corresponding to Protocol version 8 - Added
BakerSuspendedandBakerResumedtransaction result events - Added
ValidatorSuspendedandValidatorPrimedForSuspensionspecial outcomes for theGetBlockSpecialEventsendpoint - Added
ChainParametersV3for Protocol version 8, addingValidatorScoreParameters - Added
GetConsensusDetailedStatusendpoint for querying detailed consensus status information - Added
GetScheduledReleaseAccountsendpoint for querying the list of accounts that have scheduled releases - Added
GetCooldownAccounts,GetPreCooldownAccountsandGetPrePreCooldownAccountsendpoints for querying the lists of accounts that have pending cooldowns in protocol version 7 onwards - Added
parameterfield toContractInitializedResultcontaining the parameter passed to the init function - Added
isSuspendedfield toBakerandBakerPoolStatuswhich, since Protocol version 8, indicates whether the account is suspended and is not participating in the consensus algorithm - Added
missedRoundsandisPrimedForSuspensionfields toCurrentPaydayStatuswhich, since Protocol version 8, reflect validator score status - Added
suspendedfield toConfigureBakerPayloadwhich, since Protocol version 8, indicates whether the validator is suspended - Added
FinalizationCommitteeParametersandValidatorScoreParametersentries ofPendingUpdateType, therefore new possible update types inPendingUpdateV2 - Added
validatorScoreParametersfield toNextUpdateSequenceNumberswhich corresponds to updates inChainParametersV3.validatorScoreParameters
- Support for Protocol 7
- Added
ProtocolVersion.V7corresponding to Protocol version 7 - Added
cooldownslist toAccountInfo - Added
availableBalancetoAccountInfo - Made optional the following
BakerPoolStatusfields:bakerEquityCapital,delegatedCapital,delegatedCapitalCap,poolInfo - Added
BakerDelegationRemovedandDelegationBakerRemovedtransaction result events - Removed previously deprecated encrypted transfers
(
EncryptedTransferTransaction,EncryptedTransferWithMemoTransaction,TransferToEncryptedTransaction)
- Added
MessageSigningDigestclass to generate digests for message signing - Added support for company identity attributes
- Deprecated encrypted transfers. They are partially removed since protocol version 7
- Removed unnecessary
amountparameter fromInvokeInstanceRequest. - Added utility functions for converting between
CCDAmountandEnergy. Present in utility classConverter. - Fixed a bug in
CustomEvent. Removed unnecessarytagfield. - Added
Web3IdProofclass withgetWeb3IdProofmethod to create Presentations. (And supporting classes) - Added method
getFinalizedBlocksFromfor retrieving finalized blocks starting from a given height. - Added method
getBlocksAtHeightfor retrieving live blocks at a given height. - Added method
findAtLowestHeightfor finding the earliest block satisfying some condition. - Added method
findAccountCreationfor finding the block in which an account was created. - Fixed an issue where
ConcordiumHdWallet.fromSeedPhrasealways produced an invalid seed as hex. - Added
AcceptableRequestclass withacceptableRequestandacceptableAtomicStatementto check if a request satisfies wallet rules.
- Make the
energyparameter for invoking an instanceOptional. - Parse the underlying reject reasons into
AccountTransactionDetails. - Introduced Cis2Client for interfacing with CIS2 compliant smart contracts.
- Support for deserializing contract update transactions.
- Fix a bug where contract invocations used the wrong format for parameters.
- Fix a bug in the serialization of
AccountIndex - Fix a bug that caused
getAccountInfoto fail for delegator and baker accounts if they had no stake pending changes. - Cleanup the API a bit for configure baker transaction by using
PartsPerHundredThousandsfor determining the commission rates. - Fix serialization of
ConfigureDelegationtransaction - Remove
AccountNoncein favor of just using theNoncetype across the API. - Fix a bug in the serialization of
AccountIndex - Fix a bug that caused
getAccountInfoto fail for delegator and baker accounts if they had no stake pending changes. This change is also propagated to the type level such thatBakerandAccountDelegationretains anOptional<PendingChange>as opposed to justPendingChange. - Fix .equals() for AccountInfo such that all fields are used to deduce equality.
- Purge remaining usages of V1 GRPC API.
- Added support for android through an AAR artifact.
- Added
ConcordiumHdWalletclass for deriving Concordium specific keys and randomness from a seed phrase. - Added
Identityclass with methodscreateIdentityRequestfor creating identity requests andcreateIdentityRecoveryRequestfor creating identity recovery requests. - Added
Credentialclass exposing methods required to create, sign and sending a credential deployment transaction. - Added release on maven central.
- Added method
waitUntilFinalizedfor waiting until a given transaction is finalized. - Removed deprecated V1 API from the SDK. Consumers of the (now removed)
getBlockSummaryendpoint should refer toGetBlockTransactionEvents,GetBlockSpecialEventsandGetBlockPendingUpdates. - Added support for GRPC V2
GetWinningBakersEpochfor getting a list of bakers that won the lottery in a particular historical epoch. Only available when querying a node with version at least 6.1. - Added support for GRPC V2
GetFirstBlockEpochfor getting the block hash of the first finalized block in a specified epoch. Only available when querying a node with version at least 6.1. - Added support for GRPC V2
GetBakerEarliestWinTimefor getting the projected earliest time at which a particular baker will be required to bake a block. Only available when querying a node with version at least 6.1. - Added support for GRPC V2
GetBakerRewardPeriodInfofor getting all the bakers in the reward period of a block. Only available when querying a node with version at least 6.1. - Added support for GRPC V2
GetBlockCertificatesfor retrieving certificates for a block supporting ConcordiumBF, i.e. a node with at least version 6.1. - Extended
CurrentPaydayStatuswithCommissionRatesthat apply for the current reward period. Requires at least node version 6.1. - Implemented custom JSON serialization of
AbstractAddressto enableAbstractAddressas a smart contract parameter, and added classListParamfor conveniently using lists of objects,AbstractAddress,ContractAddressandAccountAddressas smart contract parameters. - Added support for creating and serializing smart contract parameters using the abstract class
SchemaParameterand a providedSchema.
- Fixed a regression that made it harder to deserialize transactions from bytes.
- toString on CCD amount now displays the amount as micro CCD.
- Fix bug where
Detailstype was not correctly set when querying status of a block item.
- Remove an unused import from
ClientV2which could make compilation fail on some jdks.
- Fix a bug that caused custom http headers to be set for
ClientV2.
- Added typing for baker keys and moved
createBakerKeystoBakerKeys. Likewise theTransactionFactory.newUpdateBakerKeystakes in the generated baker keys. - Added support for
getBlockTransactionEventsfor retrieving events emitted by transactions. - Added support for
InvokeInstancefor executing a smart contract instance locally. - Removed
Accountinstead one should simply useAccountAddress. - All timestamps are now exposed as
Timestamps with convenience method for getting ZonedDateTime. - Renamed
AccountRequesttoAccountQuery. - Added support for GRPC V2
GetBlockChainParametersfor retrieving the parameters of the chain. - Deprecated the
Client. Instead one should useClientV2which leverages the GRPCv2 API of the node. - Support for protocol V6.
- Added support for GRPC V2
GetPeersInfofor retrieving information of the peers that the node holds. - Added support for GRPC V2
GetNodeInfofor retrieving various information of the node queried. - Added support for GRPC V2
GetBannedPeersfor retrieving a list of the banned peers. - Added support for GRPC V2
BanPeerfor banning a peer, - Added support for GRPC V2
UnbanPeerfor unbanning a peer - Added support for GRPC V2
GetBlockSpecialEventsfor retrieving a list of events not generated directly by any transaction - Added support for GRPC V2
GetBlockFinalizationSummaryfor retrieving summary of the finalization data in a given block - Added support for importing mobile & browser extension wallet exports as well as exports in the genesis format
- Added support for GRPC V2
GetAccountInfo - Added support for GRPC V2
GetAccountList - Added support for GRPC V2
GetNextAccountNonceNumber - Added support for GRPC V2
GetBlockItems - Added support for GRPC V2
GetConsensusStatus - Added support for GRPC V2
GetCryptographic Parameters - Added support for GRPC V2
GetIdentityProviders - Added support for GRPC V2
SendBlockItemfor sending a transaction. - Added support for GRPC V2
PeerConnectfor instructing the node to connect to a specific peer. - Added support for GRPC V2
PeerDisconnectfor instructing the node to drop a peer. - Added support for GRPC V2
GetPeersInfofor acquiring information of the peers that the node is connected to. - Added support for GRPC V2
GetBlockItemStatusfor retrieving the status of an individual transaction - Added support for GRPC V2
DumpStartwhich instructs the node to start dumping network packages at a specified path. - Added support for GRPC V2
DumpStopwhich instructs the node to stop dumping packages. - Fixed incorrect transaction event with respect to a transaction status for when a delegator decreased its stake.
- Added support for GRPC V2
GetBlockInfofor retrieving information of the block being queried. - Added support for GRPC V2
GetTokenomicsInfofor acquiring various tokenomics related information for a block. - Added support for GRPC V2
GetInstanceListfor retrieving the contract instances at a certain block. - Added support for GRPC V2
GetAncestorsfor getting specified no of ancestor blocks for the input block. - Added support for GRPC V2
GetBakerListfor retrieving the bakers at a certain block. - Added support for GRPC V2
GetAccountNonFinalizedTransactionsfor querying transactions from a particular account that have not yet been finalized. - Added support for GRPC V2
GetBranchesfor getting branches of the chain (i.e. descendants of the last finalized block). - Added support for GRPC V2
GetPassiveDelegatorsfor getting the passive delegators at a certain block. - Added support for GRPC V2
GetPoolDelegatorsfor getting the delegators for a specified baking pool at a certain block. - Added support for GRPC V2
GetElectionInfofor getting the bakers at a certain block and other metadata of the election. - Added support for GRPC V2
GetInstanceStatefor getting state of any Contract Instance - Added support for GRPC V2
InstanceStateLookupfor getting value of a particular key in Contract Instance. - Added support for GRPC V2
GetPoolInfofor getting information about a given pool at the end of a given block. - Added support for GRPC V2
GetModuleListfor getting list of smart contract module at the end of a given block. - Added support for GRPC V2
GetInstanceInfofor getting information about a contract instance at the end of a given block. - Added support for GRPC V2
GetPoolDelegatorsRewardPeriodfor getting fixed list of Pool Delegators for a given pool at the end of a given block. - Added support for GRPC V2
GetPassiveDelegatorsRewardPeriodfor getting fixed list of Passive Delegators for a given pool at the end of a given block. - Added support for GRPC V2
GetNextUpdateSequenceNumbersfor getting next available sequence numbers for updating chain parameters after a given block. - Added support for GRPC V2
GetBlockPendingUpdatesfor getting the pending updates to chain parameters at the end of a given block. - Added support for GRPC V2
ShutdownFor shutting down the network layer of the Node. - Added support for GRPC V2
GetModuleSourcefor getting binary source of Smart Contract Module.
- Added initial support for GRPC V2
- Added initial support for GRPC V2 query GetAnonymityRevokers
- Added CLI example for GRPC V2 query GetAnonymityRevokers
- Added support for GRPC V2 GetBlocks
- Added support for GRPC V2 GetFinalizedBlocks
- Added support for M1/M2 Mac
- Added support for Transfer With Schedule.
- Added support for Transfer With Schedule With Memo.
- Added support for Update Credentials Keys.
- Added support for Transfer to public wallet.
- Added support for Transfer To Encrypted wallet.
- Added support for Encrypted Transfer.
- Added support for Encrypted Transfer with Memo.
- Added support for Configuring a baker.
- Added support for Configuring the account as a Delegator.
- A new native dependency has been introduced in order to support the new transaction types mentioned above, As a result native dependencies need to be rebuilt before building the Java project.
- Support for Protocol 5.
- Added support for initializing smart contracts.
- Added support for Update Contract.
- Added support for Deploy Module transaction.
- Fix a bug where pending changes for delegators were not visible via
getAccountInfo. - Removed
BlocksAtHeightRequest.newRelative(long height, ProtocolVersion protocolVersion, boolean restrictedToGenesisIndex)as it was only a valid call onmainnetas all protocols exists there. However this may not be true on e.g.testnet. Note.BlocksAtHeightRequest.newRelative(long height, int genesisIndex, boolean restrictedToGenesisIndex)still exists for the purpose of getting blocks at a relative height. - Fix a bug where a
RejectReasonfor setting delegation target to a non baker was not correctly parsed. - Fix a bug where
updateTimeParameterswas not correctly parsed into theTransactionContentsenum. - Fix a bug where
updateCooldownParameterswas not correctly parsed into theTransactionContentsenum. - Fix a bug where
mintDistributionCPV1was not correctly parsed into the enqueued chain update. - Fix a bug where
timeParametersCPV1was not correctly parsed into the enqueued chain update - Fix a bug where
cooldownParametersCPV1was not correctly parsed into the enqueued chain update. - Fix a bug where
mintPerPaydaywas not properly parsed. - Fix a bug where
updateRootKeyswas not properly parsed.
- Fixed bug in
UpdateEnqueuedResultwhich parsedeffectiveTimein wrong. - Added support for
Uptimequery. - Added support for Account Transaction Register Data.
- Added support for query
PeerTotalSent - Added support for query
PeerList - Added support for query
PeerStats - Added support for query
PeerVersion - Added support for query
GetTransactionStatusInBlock - Added support for query
GetAccountNonFinalizedTransactions - Added support for query
PeerConnect - Added support for query
GetBakerList - Added support for query
GetPoolStatus - Added support for query
PeerTotalReceived - Added support for query
GetModuleSource - Added support for query
GetModuleList - Added support for query
GetBirkParameters - Added support for query
NodeInfo - Added support for query
Shutdown - Added support for query
GetAncestors - Added support for query
JoinNetwork - Added support for query
LeaveNetwork - Added support for query
GetRewardStatus - Added support for query
GetInstanceInfo - Added support for query
GetInstances - Added support for query
GetAccountList - Added support for query
GetBannedPeers - Added support for query
GetBranches - Added support for query
GetIdentityProviders - Added support for query
GetAnonymityRevokers - Added support for query
BanNode - Added support for query
UnBanNode - Added support for query
StartBaker - Added support for query
StopBaker
- Stronger typing for various places in the API.
- Renamed GTUAmount to CCDAmount
- New CredentialRegistrationId type.
- BlockSummary API now reflects the underlying types better.
- getAccountInfo can now be queried either via
AccountAddress,AccountIndexorCredentialRegistrationIdviaAccountRequest.
- Support for
getCryptographicParameters
- Expose more types related to
TransactionSummary
- Support for sending raw transactions.
- CredentialRegistrationID type introduced and AccountAddress can be derived from it.
- Support for configuring TLS.
- Allow consumers to provide extra HTTP headers for the gRPC connection.
- Fix a bug which caused the
Clientto use a global absolute timeout from when it was initialized.
AccountTransactionnow exposes agetTypefunction which returns the type of the underlyingPayload.
- Exposed more of the
transactionsin the API.
- Fix parsing bug for
AccountInfowhere scheduled releases was not included. - Transaction
Statusis now public. BlockItemis now public.
- Support for transaction deserialization.
- Support for
getBlockInfo.
- Support for
getBlocksAtHeight
- Support for account alias.