Skip to content

Releases: Concordium/concordium-base

concordium-wasm 5.0.0

09 Sep 11:02
e83282f
Compare
Choose a tag to compare

Changes

  • Revise the compilation of Wasm modules to Artifacts. The notion of the
    executable artifact is changed to no longer work with a stack.
  • The Handler trait is revised to provide handle_opcode function information
    about reachability of the instruction that is being handled.
  • The Host trait is expanded to special-case instructions for resource
    accounting.
  • Introduce a new version of cost assignment that is to be used in protocol 7.

concordium-smart-contract-engine 6.0.0

09 Sep 11:04
a7ad459
Compare
Choose a tag to compare

Changes

  • Bump concordium-wasm to version 5 used by Concordium node version 7.0.0.
    • Changes Wasm to Artifact compilation, meaning already compiled Artifacts will need to be recompiled.
    • Introduces a new version of cost assignment used in Concordium Protocol Version 7.
  • Loose the minor version for concordium-contracts-common dependency.

concordium-contracts-common 9.2.0

26 Aug 14:20
5e148cf
Compare
Choose a tag to compare

Summary

Minor release adding a number of convenience features.

Changes

  • Add TryFrom implementation to convert &[u8] to AccountAddress, when feature derive-serde is enabled.
  • Derive serde::Serialize and serde::Serialize for PublicKeyEd25519 using
    FromStr and Display implementations, when feature derive-serde is
    enabled.
  • Derive Default on Amount (defaults to 0).

concordium_base 6.0.0

26 Aug 14:17
5e148cf
Compare
Choose a tag to compare

Summary

This release adds support for company identities and sponsored transactions (CIS3). Encrypted transfers are deprecated in this release as they are not supported from protocol version 7.

Changes

  • Extend id::types::ATTRIBUTE_NAMES with new company attribute tags: "legalName", "legalCountry", "businessNumber" and "registationAuth".
  • Add a new module cis3_types that defines the interface types for CIS3
    compatible contracts.
  • Fix discrepancy in (de)serializing Web3IdAttribute::Timestamps due to an unexpected breaking change introduced in version 0.4.32 of chrono.
  • concordium_base::ed25519 now also exports SigningKey to enable constructing KeyPair structs.
  • Deprecated various functions related to encrypted transfers, as encrypted transfers are no longer supported in protocol version 7.

concordium_base 5.0.0

25 Mar 09:16
Compare
Choose a tag to compare

Summary

This release adds a number of convenience features and bumps MSRV to 1.73.

While this is a major version release, the breaking changes are very small. In particular the From implementations for SlotDuration and DurationSeconds were removed since they would sometimes panic. They have been replace with TryFrom implementations that return an Err instead.

Changes

  • Set minimum supported Rust version to 1.73.
  • Make fields of CIS4 events public.
  • Remove the From<SlotDuration> and From<DurationSeconds> implementations
    for chrono::Duration and replace them with fallible TryFrom
    implementations that fail when durations overflow.
  • ContractAddress::new
  • ContractName, ReceiveName, EntrypointName, and Parameter
    new_unchecked constructors are made const so they can be used when
    defining constants. Similarly Parameter::empty is const now.

concordium-smart-contract-engine 5.0.0

25 Mar 09:14
Compare
Choose a tag to compare

Summary

Support for P7 host calls and revision of the TestHost to better support running tests for contracts that use state in their unit tests.

Changes

  • TestHost no longer implements the ValidateImportExport trait, instead use NoDuplicateImport struct.
  • TestHost::new now takes an instance state, allowing for support of host functions related to the smart contract key-value state.
  • The function utils::run_module_tests now provides an empty in-memory instance state for each test case, allowing module tests to use host functions related to the smart contract key-value state.
  • Support for querying the module reference and contract name of an instance via
    invoke (for protocol version 7). These are enabled by a new
    support_contract_inspection_queries parameter in ReceiveParams and
    call_receive_v1. When enabled, invoke can generate the new interrupt
    types QueryContractModuleReference and QueryContractName.

concordium-contracts-common 9.1.0

25 Mar 09:11
Compare
Choose a tag to compare

Summary

Minor release adding a number of convenience features.

Changes

  • Add get_alias_unchecked for AccountAddress that neglects the bounds check
    assuming the caller has ensured it.
  • Implement serde::Serialize and serde::Deserialize for AccountSignature, CredentialSignature, Signature, SignatureEcdsaSecp256k1 and SignatureEd25519 when feature derive-serde is enabled.
  • Set minimum supported Rust version to 1.73.
  • Change HashBytes::new to a const function.

concordium-contracts-common-derive 4.1.0

25 Mar 09:09
Compare
Choose a tag to compare

Summary

Minor release expanding the set of contexts where generated code is applicable.

Changes

  • Attribute macro #[concordium_quickcheck] generates code referencing concordium_std rather than ::concordium_std allowing for user-provided concordium_std.
  • Set minimum supported Rust version to 1.73.
  • Support returning types that reference host or state from init or receive
    entrypoints. The generated code extends lifetimes of the host and ctx
    sufficiently for it to compile.

concordium_base 4.0.0

22 Jan 11:52
Compare
Choose a tag to compare

Summary

This is a major release that updates the major core dependencies to more recent versions, as well as replacing the core BLS curve implementation with a more up to date one.

Users of this library are most likely to be affected by the updates of

  • rand from 0.7 to 0.8
  • ed25519-dalek from version 1 to version 2

since these appear in types exposed by concordium-base.

Changes

  • Add MultiExp trait that allows to have different multiexp algorithm implementations for different curves.
  • Improve performance of the generic multiexp algorithm.
  • Add an instance of MultiExp that is specific to curve25519.
  • Add traits Field and PrimeField with implementations for the underlying field of the BLS12-381 curve.
  • Add integration with the arkworks library interfaces for fields and elliptic curves (wrapper types and blanket trait implementations).
  • Add the BLS12-381implementation from the arkworks ecosystem.
  • The public types id::constants::ArCurve, id::constants::IpPairing are defined in terms of the arkworks BLS12-381 implementation.
  • Add a type alias id::constants::BlsG2 for the G2 group of arkworks BLS12-381.
  • Upgrade ed25519-dalek to v2.0.
  • Bump the rand version to v0.8
  • Add implementations of Field, PrimeField and Curve for the Ristretto representation of curve25519.
  • Remove Curve::bytes_to_curve_unchecked().
  • Rename Cipher::from_bytes_unchecked() to Cipher::from_bytes(); the method uses deserial() instead of Curve::bytes_to_curve_unchecked().
  • Support P7 protocol version.
  • The Debug implementation for ContractEvent displays the value in hex.
    The alternate formatter (using #) displays it as a list of bytes.
  • Add FromStr and Display instances to dodis_yampolskiy_prf::SecretKey.
  • Change Debug instance of dodis_yampolskiy_prf::SecretKey to hide the value.
  • Remove Timestamp to instead reexport the similar type from concordium_contracts_common.
    This adds several new methods, but results in a breaking change in the serde::Serialize implementation, which is now using string containing RFC3393 representation instead the underlying milliseconds.
  • Remove smart_contracts::WasmVersion to instead reexport a similar type from concordium_contracts_common.
    This adds a FromStr implementation and changes the associated type TryFrom<u8>::Error from anyhow::Error to concordium_contracts_common::U8WasmVersionConvertError.

concordium-wasm 4.0.0

22 Jan 11:47
Compare
Choose a tag to compare

Summary

This is a maintenance release updating dependencies.

Changes

  • Update contracts-common dependency to version 9.