Releases: Concordium/concordium-rust-smart-contracts
concordium-std 10.1.0
Summary
A major new addition to the library is the ordered collections StateBTreeMap
and StateBTreeSet
.
See the guide for when to use these new collections.
Changes
- Add support for querying the module reference and contract name of an instance,
via theHasHost::contract_module_reference
andHasHost::contract_name
functions.
These are only available from protocol version 7, and as such are guarded by thep7
feature flag. - Add two ordered collections:
StateBTreeMap
andStateBTreeSet
. These are based on B-Tree, but where each node is stored in the low-level smart contract key-value store. Use one of these when needing operations related to the ordering of the keys, such ashigher(k)
providing the smallest key in collection which is stricly greater thank
. - Bump MSRV to 1.73
concordium-std-derive 6.0.0
Summary
A new release of the library that adds macros for easily embedding constants in a human readable way into contracts.
Additions
- Macros for creating constant values from strings for the following types:
AccountAddress
ContractAddress
ModuleReference
PublicKeyEcdsaSecp256k1
PublicKeyEd25519
SignatureEcdsaSecp256k1
SignatureEd25519
concordium-smart-contract-testing 4.2.0
Release of concordium-smart-contract-testing version 4.2.0
- Add support for querying the module reference and contract name of an instance.
This functionality is only available on-chain from protocol version 7. - Bump minimum supported Rust version (MSRV) to
1.73
.
concordium-std 10.0.0
Summary
This release removes the (optional) dependency on the wee_alloc crate, which is no longer maintained.
To replace it, a new bump allocator is provided for use-cases where the contract logic is simple and a complex allocator is needless overhead.
Changes
- Remove the feature
wee_alloc
and replace it withbump_alloc
, which enables a small and simple global allocator that can only be used in Wasm.
concordium-cis2 6.1.0
Summary
Support version 10 of concordium-std.
concordium-std 9.0.2
Summary
This release fixes a bug in concordium_dbg macro parsing, where the full expected syntax of println!
like macros was not allowed.
concordium-std 9.0.1
Summary
This is a bugfix release fixing linking issues on some platforms.
Changes
- Fix a bug that caused a linking error when using
concordium_dbg!
on some
platforms.- The error message states that
_debug_print
cannot be found.
- The error message states that
concordium-smart-contract-testing 4.1.0
Summary
This is a bugfix release that fixes bugs in the newly introduced debugging functionality.
Changes
- Fix a bug in debug output. The events emitted before some contract queries
(such as querying account balance) were not emitted in the debug output. To
fix this,DebugTraceElement
gets a new variantDebug
to retain these
events.
concordium-std 9.0.0
Summary
This release adds support for debugging output when testing smart contracts locally.
Changes
- Add a
concordium_dbg!
macro and the associateddebug
feature to enable,
together withcargo concordium
, to emit debug information during contract
execution. - Update
concordium-contracts-common
dependency to version9
.
concordium-smart-contract-testing 4.0.0
Summary
This major release brings the ability to inspect debug output from smart contracts, as well as to attribute costs of operations to different parts of execution.
Changes
- Add support for debug output when running smart contracts. This adds a new
module_deploy_v1_debug
method to theChain
that allows debug symbols
in the deployed module. - Add
DebugInfoExt
trait that has convenience methods for printing debug
information. - Add
debug_trace
field toDebugTraceElement
variants. This records both any
information emitted by theconcordium_dbg!
macro ofconcordium-std
as well
as the trace of all the host function calls that occurred. - Add
is_debug_enabled
function to detect whether tests are being run in debug
mode or not. This function uses theCARGO_CONCORDIUM_TEST_ALLOW_DEBUG
environment variable that is set bycargo-concordium
when running in debug
mode.