- Traverse all types in GetBakerIds
- Support for Concordium Node version 8 API changes:
- Expand enum
ProtocolVersion
withP8
variant. - Introduce
IsSuspended
field onAccountBaker
andBakerPoolStatus
. - Introduce new baker events
BakerSuspended
andBakerResumed
for when a validator choose to suspend. - Introduce
ChainParametersV3
withValidatorScoreParameters
. - Introduce
Parameter
field forContractInitializedEvent
. - Introduce
EffectValidatorScoreParameters
for pending updates toValidatorScoreParameters
. - Introduce
ValidatorScoreParametersUpdate
andUpdateType.ValidatorScoreParametersUpdate
for update payloads. - Introduce
ValidatorPrimedForSuspension
andValidatorSuspended
asISpecialEvent
.
- Expand enum
-
Added
- More documentation comments on various types.
AccountInfo
now includes theSchedule
field, which are the locked CCD amounts scheduled for release.- Method
GetStakedAmount
to interfaceIAccountStakingInfo
, which provides the staked amount.
-
Support Concordium Node version 7 API changes:
AccountInfo
now have fieldsCooldowns
andAvailableBalance
, which are respectively describing the stake currently in cooldown and the (unencrypted) balance of an account, which can be transferred.- New baker event
BakerEventDelegationRemoved
signaling a delegator is removed, right before becoming a baker/validator. - New delegation event
DelegationEventBakerRemoved
signaling a baker/validator is removed, right before becoming a delegator. - Some fields of type
BakerPoolStatus
are now nullable, more specificallyBakerEquityCapital
,DelegatedCapital
,DelegatedCapitalCap
andPoolInfo
. Querying blocks prior to Protocol Version 7, these fields will always be present. From protocol version 7, pool removal has immediate effect, however, the pool may still be present for the current (and possibly next) reward period.
- Added
- New transaction
InitContract
- Add
WaitUntilFinalized
method onConcordiumClient
for waiting for transactions to finalized. - Add
Parameter.UpdateJson
andParameter.InitJson
for constructing parameters for update and init transactions using JSON and smart contract module schemas (see the example in example/UpdateContractMint). - Add class
SchemaType
for representing a single type in a module schema, such as the parameter. - Add
Parameter.FromJson
for constructing parameters usingSchemaType
and JSON.
- New transaction
- Added
- Enhanced error handling for FFI calls and exposing detailed exceptions to the client, providing information about potential errors.
- Bugfix
- Switched the GitHub runners from using 'ubuntu-latest' to 'ubuntu-20.04' to ensure compatibility with the default .NET 6 Docker image for the SDK.
- Added
- New GRPC-endpoint:
GetBlockItems
- New transactions:
DeployModule
andUpdateContract
. - The function
Prepare
has been removed from theAccountTransactionPayload
class, but is implemented for all subclasses exceptRawPayload
. - Added serialization and deserialization for all instances of
AccountTransactionPayload
- New GRPC-endpoint:
- Minor breaking change:
- The function
GetTransactionSpecificCost
has been removed from theAccountTransactionPayload
class.
- The function
- Bugfix
- Fix wrong build of rust dependencies which made the interops call not work on iOS.
- Deserialization from module schema
- Contract entrypoint messages
- Contract events
- Module schema
- New GRPC-endpoints:
GetBlocks
,GetFinalizedBlocks
,GetBranches
,GetAncestors
,GetBlockPendingUpdates
- Added helpers to get new type
ContractIdentifier
onReceiveName
andContractName
. This new type only holds the contract name part ofReceiveName
andContractName
. Also added helper to get entrypoint onReceiveName
.
- Bugfix
- Documentation was missing when adding library as nuget packages and hovering over methods and classes.
- Added
- gRPC queries relevant for smart contracts.
- GetModuleListAsync
- GetInstanceListAsync
- GetModuleSourceAsync
- GetInstanceInfoAsync
- gRPC queries relevant for smart contracts.
- Bugfix
TransactionCount
inBlockInfo
had wrong mapping and usedTransactionsSize
from node.BakerPoolInfo
hadOpenStatus
hardcoded asBakerPoolOpenStatus.OpenForAll
.
- The SDK requires node version 6 or later.
- Breaking changes
ConsensusInfo
SlotDuration
is now a nullable field, only present in protocols 1-5.- Bugfix:
BlockLastArrivedTime
was wrongly mapped fromBlockLastReceivedTime
.
BlockInfo
BlockSlot
is now a nullable field, and only present in protocols 1-5
- Added
ConsensusInfo
- a new field
ConcordiumBftDetails
is added that is present if protocol version is 6 or higher
- a new field
BlockInfo
- new fields
Round
andEpoch
that are present in protocol 6 or higher.
- new fields
BakerPoolStatus
- a new field
BakerPoolPendingChange
is added which is present if any change is pending on baker pool.
- a new field
-
Added
- Add optional cancellation token parameter to all client calls.
-
Obsolete
- Made former constructors on
ConcordiumClient
andRawClient
obsolete in favor of new overload which takesConcordiumClientOptions
. Using this makes it easier to used from configurations and extending with additional properties in the future.
- Made former constructors on
-
Breaking changes
- Data structures have been aligned throughout the SDK which has resulted in some major changes. Changes are:
- Records are used when structures need immutability and equality by value.
- Struct are used when data structures is below 16 bytes, and when they are not used through any interfaces.
- Sealed are added where inheritance isn't expected.
- Structs are either records (and hence as default override) or override equality
- Record structs has readonly where immutability is expected.
- Implicit operators are removed to favor being explicit.
- Add ConfigureAwait to enhance library uses from UI- or own syncronization context usages.
RawClient
asynchronous calls have been changed to return eitherAsyncUnaryCall<T>
orAsyncServerStreamingCall
such that response header is available inConcordiumClient
. One can get the response be calling.ResponseAsync
onAsyncUnaryCall<T>
andResponseStream
onAsyncServerStreamingCall
.- Property
Timeout
moved intoOptions
in classRawClient
.Timeout
now defaults to 'indefinitely' compared to 30 seconds in obsolete constructor ofConcordiumClient
. AccountTransactionType
is renamed toTransactionType
.- Bugfix: Record
InvalidInitMethod
had parameter change fromContractName
toInitName
. - Bugfix: Renamed
MissingDelegationAddParameter
toMissingDelegationAddParameters
.
- Data structures have been aligned throughout the SDK which has resulted in some major changes. Changes are:
- Rewrite the SDK to use the Concordium Node gRPC API version 2. This rewrite does not preserve any of the old API and therefore deprecates earlier versions of the SDK.
- Initial release.