Releases: AntelopeIO/cdt
CDT 4.1.0 Release Notes
Release 4.1.0
This CDT release is required when compiling System Contracts for use with the Savanna Consensus algorithm used with release Spring 1.0. This release includes full support for BLS cryptography and managing BLS signatures.
In addition there are a number of usability features.
- Export memory from wasm file for use with Vert
- Supports MacOS with native linking
- BLS cryptography as a host function
The new host functions provided in CDT v4.1.0 and later are only compatible in Spring v1.0.0 and above. Running contracts which include new CDT v4.1.0 host functions will not execute in previously released Leap software. CDT v4.1.0 may still be used to compile and run contracts across both Spring and Leap when only pre-Spring host functions are used.
Note:
- Running full integration tests requires linking to Spring libraries. If no integration tests are needed, CDT may be build and installed independent from Spring.
- Changes from RC1 adding a test as described in PR #299
- Changes from RC2 resolve Indeterministic Build Output PR #308
Whats Changed
Stability
Upgrade to use ubuntu22 leap-dev for continuous integration testing.
Set finalizers takes packed format.
Upgrade catch2 to support modern linux OS builds.
Add alternate names for operations to insert, remove, and update indexes.
Eliminate Source of Indeterministic Build Output. Remove CFL Alias Analysis
Features
set_finalizers host function now takes a packed format.
Add Savanna support for BLS signatures and finalizer key operations.
Return -1 on n==0 for bls_g1_weighted_sum, bls_g2_weighted_sum, and bls_pairing.
Add new BLS host function support and switch to affine.
Support Mac OS with native linking.
Add BLS cryptography functions.
Compile with clang-16, adding support for datatypes uint128, uint256, and efficient to and from hex operations.
Tests
instant_finality_extension renamed to finality_extension
Clean Code
revert multi-index alias operations
Standardize Callouts.
Revert and remove new version of cdt-abidiff.
Resolve endian warnings.
Tools
New feature to export memory from a wasm file.
Bug Fixs
Backward compatible for ABI generation in older system contracts by including structures defined in an extended context.
Add explicit stream operator overloads.
Update ABI generation for multi_index and singleton to correctly scope types for inclusion.
Fix ABI to generate tables for singleton without struct.
Documentation
Update of crypto API descriptions.
Upate README to include clang-tidy dependancy.
Updated crypto extension documentation.
Release
Update README download links for rc release.
Add CICD tests using ubuntu 24.
Published deb package build using ubuntu 20 to provide greatest breath of os support.
Use spring instead of leap for integration tests.
Update README to latest patch of CDT.
Automatically upload deb on new release.
Synchronize git commits between main and 4.0 branch.
Remove unused antler run packed with CDT binaries.
Roadmap document for CDT.
Upgrade python find function.
Support configurable leap target for CICD.
Remove ubuntu-18 from CICD build and test.
Version bump, and change to make for CICD builds.
Version Bump to CDT 4.0.
Contributors
Special thanks to the contributors that submitted patches for this release:
- @mschoenebeck made their first contribution in #154
- @oschwaldp-oci made their first contribution in #217
- @dougbutner made their first contribution in #256
- @ericpassmore
- @spoonincode
- @heifner
- @dimas1185
- @larryk85
- @nathanielhourt
- @mikelik
- @jolly-fellow
Full Changelog: v4.0.1...v4.1.0
CDT 4.1.0-rc3 Release Notes
Release 4.1.0-rc3
This CDT release is required when compiling System Contracts for use with the Savanna Consensus algorithm used with release Spring 1.0. This release includes full support for BLS cryptography and managing BLS signatures.
In addition there are a number of usability features.
- Export memory from wasm file for use with Vert
- Supports MacOS with native linking
- BLS cryptography as a host function
Note:
- Running full integration tests requires linking to Spring libraries. If no integration tests are needed, CDT may be build and installed independent from Spring.
- Changes from RC1 adding a test as described in PR #299
- Changes from RC2 resolve Indeterministic Build Output PR #308
Whats Changed
Stability
Upgrade to use ubuntu22 leap-dev for continuous integration testing.
Set finalizers takes packed format.
Upgrade catch2 to support modern linux OS builds.
Add alternate names for operations to insert, remove, and update indexes.
Eliminate Source of Indeterministic Build Output. Remove CFL Alias Analysis
Features
set_finalizers host function now takes a packed format.
Add Savanna support for BLS signatures and finalizer key operations.
Return -1 on n==0 for bls_g1_weighted_sum, bls_g2_weighted_sum, and bls_pairing.
Add new BLS host function support and switch to affine.
Support Mac OS with native linking.
Add BLS cryptography functions.
Compile with clang-16, adding support for datatypes uint128, uint256, and efficient to and from hex operations.
Tests
instant_finality_extension renamed to finality_extension
Clean Code
revert multi-index alias operations
Standardize Callouts.
Revert and remove new version of cdt-abidiff.
Resolve endian warnings.
Tools
New feature to export memory from a wasm file.
Bug Fixs
Backward compatible for ABI generation in older system contracts by including structures defined in an extended context.
Add explicit stream operator overloads.
Update ABI generation for multi_index and singleton to correctly scope types for inclusion.
Fix ABI to generate tables for singleton without struct.
Documentation
Update of crypto API descriptions.
Upate README to include clang-tidy dependancy.
Updated crypto extension documentation.
Release
Update README download links for rc release.
Add CICD tests using ubuntu 24.
Published deb package build using ubuntu 20 to provide greatest breath of os support.
Use spring instead of leap for integration tests.
Update README to latest patch of CDT.
Automatically upload deb on new release.
Synchronize git commits between main and 4.0 branch.
Remove unused antler run packed with CDT binaries.
Roadmap document for CDT.
Upgrade python find function.
Support configurable leap target for CICD.
Remove ubuntu-18 from CICD build and test.
Version bump, and change to make for CICD builds.
Version Bump to CDT 4.0.
Contributors
Special thanks to the contributors that submitted patches for this release:
- @mschoenebeck made their first contribution in #154
- @oschwaldp-oci made their first contribution in #217
- @dougbutner made their first contribution in #256
- @ericpassmore
- @spoonincode
- @heifner
- @dimas1185
- @larryk85
- @nathanielhourt
- @mikelik
- @jolly-fellow
Full Changelog: v4.0.1...v4.1.0-rc3
CDT 4.1.0-rc2 Release Notes
Release 4.1.0-rc2
This CDT release is required when compiling System Contracts for use with the Savanna Consensus algorithm used with release Spring 1.0. This release includes full support for BLS cryptography and managing BLS signatures.
In addition there are a number of usability features.
- Export memory from wasm file for use with Vert
- Supports MacOS with native linking
- BLS cryptography as a host function
Note: Running full integration tests requires linking to Spring libraries. If no integration tests are needed, CDT may be build and installed independent from Spring.
Note: Changes from RC1 adding a test as described in PR #299
Whats Changed
Stability
Upgrade to use ubuntu22 leap-dev for continuous integration testing.
Set finalizers takes packed format.
Upgrade catch2 to support modern linux OS builds.
Add alternate names for operations to insert, remove, and update indexes.
Features
set_finalizers host function now takes a packed format.
Add Savanna support for BLS signatures and finalizer key operations.
Return -1 on n==0 for bls_g1_weighted_sum, bls_g2_weighted_sum, and bls_pairing.
Add new BLS host function support and switch to affine.
Support Mac OS with native linking.
Add BLS cryptography functions.
Compile with clang-16, adding support for datatypes uint128, uint256, and efficient to and from hex operations.
Tests
instant_finality_extension renamed to finality_extension
Clean Code
revert multi-index alias operations
Standardize Callouts.
Revert and remove new version of cdt-abidiff.
Resolve endian warnings.
Tools
New feature to export memory from a wasm file.
Bug Fixs
Backward compatible for ABI generation in older system contracts by including structures defined in an extended context.
Add explicit stream operator overloads.
Update ABI generation for multi_index and singleton to correctly scope types for inclusion.
Fix ABI to generate tables for singleton without struct.
Documentation
Update of crypto API descriptions.
Upate README to include clang-tidy dependancy.
Updated crypto extension documentation.
Release
Update README download links for rc release.
Add CICD tests using ubuntu 24.
Published deb package build using ubuntu 20 to provide greatest breath of os support.
Use spring instead of leap for integration tests.
Update README to latest patch of CDT.
Automatically upload deb on new release.
Synchronize git commits between main and 4.0 branch.
Remove unused antler run packed with CDT binaries.
Roadmap document for CDT.
Upgrade python find function.
Support configurable leap target for CICD.
Remove ubuntu-18 from CICD build and test.
Version bump, and change to make for CICD builds.
Version Bump to CDT 4.0.
Contributors
Special thanks to the contributors that submitted patches for this release:
- @mschoenebeck made their first contribution in #154
- @oschwaldp-oci made their first contribution in #217
- @dougbutner made their first contribution in #256
- @ericpassmore
- @spoonincode
- @heifner
- @dimas1185
- @larryk85
- @nathanielhourt
- @mikelik
- @jolly-fellow
Full Changelog: v4.0.1...v4.1.0-rc2
CDT 4.1.0-rc1 Release Notes
Release 4.1.0-rc1
This CDT release is required when compiling System Contracts for use with the Savanna Consensus algorithm used with release Spring 1.0. This release includes full support for BLS cryptography and managing BLS signatures.
In addition there are a number of usability features.
- Export memory from wasm file for use with Vert
- Supports MacOS with native linking
- BLS cryptography as a host function
Note: Running full integration tests requires linking to Spring libraries. If no integration tests are needed, CDT may be build and installed independent from Spring.
Whats Changed
Stability
Upgrade to use ubuntu22 leap-dev for continuous integration testing.
Set finalizers takes packed format.
Upgrade catch2 to support modern linux OS builds.
Add alternate names for operations to insert, remove, and update indexes.
Features
set_finalizers host function now takes a packed format.
Add Savanna support for BLS signatures and finalizer key operations.
Return -1 on n==0 for bls_g1_weighted_sum, bls_g2_weighted_sum, and bls_pairing.
Add new BLS host function support and switch to affine.
Support Mac OS with native linking.
Add BLS cryptography functions.
Compile with clang-16, adding support for datatypes uint128, uint256, and efficient to and from hex operations.
Clean Code
revert multi-index alias operations
Standardize Callouts.
Revert and remove new version of cdt-abidiff.
Resolve endian warnings.
Tools
New feature to export memory from a wasm file.
Bug Fixs
Backward compatible for ABI generation in older system contracts by including structures defined in an extended context.
Add explicit stream operator overloads.
Update ABI generation for multi_index and singleton to correctly scope types for inclusion.
Fix ABI to generate tables for singleton without struct.
Documentation
Update of crypto API descriptions.
Upate README to include clang-tidy dependancy.
Updated crypto extension documentation.
Release
Update README download links for rc release.
Add CICD tests using ubuntu 24.
Published deb package build using ubuntu 20 to provide greatest breath of os support.
Use spring instead of leap for integration tests.
Update README to latest patch of CDT.
Automatically upload deb on new release.
Synchronize git commits between main and 4.0 branch.
Remove unused antler run packed with CDT binaries.
Roadmap document for CDT.
Upgrade python find function.
Support configurable leap target for CICD.
Remove ubuntu-18 from CICD build and test.
Version bump, and change to make for CICD builds.
Version Bump to CDT 4.0.
Contributors
Special thanks to the contributors that submitted patches for this release:
- @mschoenebeck made their first contribution in #154
- @oschwaldp-oci made their first contribution in #217
- @dougbutner made their first contribution in #256
- @ericpassmore
- @spoonincode
- @heifner
- @dimas1185
- @larryk85
- @nathanielhourt
- @mikelik
- @jolly-fellow
Full Changelog: v4.0.1...v4.1.0-rc1
CDT 4.0.1 Release Notes
Contract Development Toolkit (CDT) is a C/C++ toolchain targeting WebAssembly (WASM) and a set of tools to facilitate development of smart contracts written in C/C++ that are meant to be deployed to an Antelope blockchain.
This bug fix release fixes MacOS builds, updates integrations with Leap , and removes the previously unused "antler-proj" library.
Read on for details.
Bug Fixes
Updated CI tests to use libtester from Leap Package
Updates GitHub Actions to use libtester provided by existing leap deb package.
Add Explicit Overloads
Fixes a bug where std::basic_string<uint8_t>
fails to correctly match in datastream
for the stream operators
Fix Deprecated Call in cmake
Updates cmake to use find_package(Python)
previous method is deprecated.
Fix MacOS Builds
Updates codes to work on the latest clang, and updated linking to work across MacOS and Linux.
PRs
- (223)[4.0] fix
-fnative
linking on macOS @spoonincode - (233)[4.0] remove
is_callable_v<>
workaround, fixing build @spoonincode
Remove Unused Libraries
Removes Antler Run and Antler Proj. This code was unaccessible.
Fix ABI Issues with Nested Contract Calls
The wrong type was included in an ABI. This occured in limited circumstances, when including an hpp file from a contract that defined a global singleton into another contract. In this scenario CDT incorrected added the global table to the ABI.
Further details on changes since last release
Contributors
Special thanks to the contributors that submitted patches for this release:
Full list of changes since last release
PRs
- (172)[4.0] run integration tests in CI with libtester from leap-dev.deb @spoonincode
- (191)Add explicit overloads @larryk85
- (224)[4.0] migrate to
find_package(Python)
for cmake 3.27+ @spoonincode - (223)[4.0] fix
-fnative
linking on macOS @spoonincode - (233)[4.0] remove
is_callable_v<>
workaround, fixing build @spoonincode - (237)Antler run removal @dimas1185
- (232)Abi fixes @dimas1185
- (238)Antler-proj removal @dimas1185
- (240)Bump version to 4.0.1 @dimas1185
Full Changelog: v4.0.0...v4.0.1
CDT v4.0.0 Release Notes
Contract Development Toolkit (CDT) is a C/C++ toolchain targeting WebAssembly (WASM) and a set of tools to facilitate development of smart contracts written in C/C++ that are meant to be deployed to an Antelope blockchain.
This release includes a new project manager utility "antler-proj", additional crypto extensions for crypto primitives host functions, and several bug fixes.
Read on for details.
New Features
antler-proj Project Manager
PRs
- (4)Draft of general description of work of the CLI commands by @jolly-fellow
- (6)Add grammar and typos fixes to user guide by @mikelik
- (5)Draft of the user`s guide for antler-proj by @jolly-fellow
- (11)Fix clang-tidy warnings by @mikelik
- (9)Antler project changes by @larryk85
- (15)change CMakeLists so project can be included as submodule by @dimas1185
- (1)Initial dev by @ScottBailey
- (26)man pages - minor corrections by @mikelik
- (12)Added a man page by @jolly-fellow
- (22)Massive Set of Changes by @larryk85
- (30)Ubuntu 18 build fix by @dimas1185
- (34)Convert "version" option to flag "-V,--version". by @ScottBailey
- (33)Allow for escaped compiler and link optional parameters by @ScottBailey
- (37)Corrected some help, added examples, and allow '-p' in final subcommands. by @ScottBailey
- (40)yml -> yaml rename by @dimas1185
- (42)Add detailed error when fetching github URL failed by @mikelik
- (41)Allow multiple cpp files in
apps
andlibs
directories. by @ScottBailey - (47)Add support for locations starting with
https://github.com/
- (49)exception handler added to main function
- (53)Fix description of
antler-proj remove
- (48)fix for parsing error handling of an empty command argument
- (52)When running
antler-proj
without arguments help will be displayed - (45)default --jobs parameter to zero
- (54)Add
--help-all
flag and make top level help consistent with periods. - (62)Some last minute fixes
- (63)Docs changes and a couple of small fixes.
ANTLER Project Tools (antler-proj) is a set of tools to help in the generation of smart contracts intended for deployment to an Antelope blockchain.
This set of tools will help the developer create, maintain, build, and test smart contracts.
Usage
For now, please see the User Guide for usage.
Additional crypto primitive host functions
Additional crypto extensions support is now available. To see the scope of all primitives supported, view our documentation here.
In order to bring parity between asset
and extended_asset
for operators, the following were added:
extended_asset& operator*=(int64_t)
extended_asset operator*(const extended_asset&, int64_t)
extended_asset operator*(int64_t, const extended_asset&)
int64_t operator/(const extended_asset&, const extended_asset&)
extended_asset& operator/=( int64_t )
extended_asset operator/( const extended_asset&, int64_t )
CDT was also missing support for the get_code_hash
host function introduced with Antelope's GET_CODE_HASH
protocol feature. The API wrapper for this has been added along with some additional testing.
Bug Fixes
Missing inline
declaration on blake2_f
intrinsics helper
blake2_f()
in crypto_ext.hpp
were not inline
, so if multiple .cpp
files included this header file duplicate symbol errors were being thrown.
Wrong table name for ABI when eosio::singleton
used
Crash in cdt-cpp
when using a std::basic_string<>
in action wrapper
Other Changes
Tables with name
typed primary key now supported
Using a name
as a primary key in a table is a common use case. Support for this use case to the multi_index
template has now been added.
Feature Lifecycle Updates
Removals in v4.0.0
boost removed from eosiolib and native libraries
boost
library usage removed from eosiolib
and native
libraries. It still remains in cdt but deprecated as for now as part of cdt package. Usage of external to cdt boost
for contracts development is not restricted.
Further details on changes since last release
Contributors
Special thanks to the contributors that submitted patches for this release:
- @larryk85
- @spoonincode
- @linh2931
- @mikelik
- @ScottBailey
- @dimas1185
- @jolly-fellow
- @nathanielhourt
- @lparisc
- @YaroShkvorets
- @guilledk
- @AlexYug
- @nsjames
Full list of changes since last release
PRs
- (58)[3.1->main] Merge 3.1.0 rc1 version bump to main
- (54)Replaced char array in output_stream to std::string to avoid buffer overflow
- (59)Add possibility to build CDT in debug mode
- (72)Enable integration tests
- (87)add shared object option to CDTMacros
- (94)Empty antler-run with eos-vm and eosiolib linked
- (91)add a new document explaining crypto extensions
- (108)Remove boost from eosiolib and native libraries
- (104)Fix error message in division operator
- (113)Resolve #110: Add missing inline declaration on blake2_f intrinsics helper
- (109)Resolve #88
- (98)Resolve #97: Allow
name
typed primary keys - (100)Resolve #99: Fix abigen with int expression template arguments
- (119)[3.1] Fix wrong 3.0 version reference, use latest instead
- (120)[3.1 -> main] altering version rc1 -> no suffix; Fix wrong 3.0 version, use latest instead
- (118)Handle basic_string in datastream serializing/deserializing
- (117)Add extended_asset operators and unit tests.
- (115)Fix some issues when building EOSIO contracts
- (125)Fix getting wrong name of the table for singleton
- (126)[3.0] Fix broken links in cdt repo
- (127)[3.0 -> 3.1] Fix broken links in cdt repo
- (128)[3.1 -> main] Fix broken links in cdt repo
- (114)add antler-proj to cdt
- (136)fix cdt-init and CDTMacros.cmake.in
- (136)fix cdt-init and CDTMacros.cmake.in
- (139)cdt-cpp man page added
- (145)cdt-cc man page created
- ([144](https://github.com/AntelopeIO...
CDT v4.0.0-rc1 Release Notes
Contract Development Toolkit (CDT) is a C/C++ toolchain targeting WebAssembly (WASM) and a set of tools to facilitate development of smart contracts written in C/C++ that are meant to be deployed to an Antelope blockchain.
This release includes a new project manager utility "antler-proj", additional crypto extensions for crypto primitives host functions, and several bug fixes.
Read on for details.
New Features
antler-proj Project Manager
PRs
- (4)Draft of general description of work of the CLI commands by @jolly-fellow
- (6)Add grammar and typos fixes to user guide by @mikelik
- (5)Draft of the user`s guide for antler-proj by @jolly-fellow
- (11)Fix clang-tidy warnings by @mikelik
- (9)Antler project changes by @larryk85
- (15)change CMakeLists so project can be included as submodule by @dimas1185
- (1)Initial dev by @ScottBailey
- (26)man pages - minor corrections by @mikelik
- (12)Added a man page by @jolly-fellow
- (22)Massive Set of Changes by @larryk85
- (30)Ubuntu 18 build fix by @dimas1185
- (34)Convert "version" option to flag "-V,--version". by @ScottBailey
- (33)Allow for escaped compiler and link optional parameters by @ScottBailey
- (37)Corrected some help, added examples, and allow '-p' in final subcommands. by @ScottBailey
- (40)yml -> yaml rename by @dimas1185
- (42)Add detailed error when fetching github URL failed by @mikelik
- (41)Allow multiple cpp files in
apps
andlibs
directories. by @ScottBailey - (47)Add support for locations starting with
https://github.com/
- (49)exception handler added to main function
- (53)Fix description of
antler-proj remove
- (48)fix for parsing error handling of an empty command argument
- (52)When running
antler-proj
without arguments help will be displayed - (45)default --jobs parameter to zero
- (54)Add
--help-all
flag and make top level help consistent with periods. - (62)Some last minute fixes
- (63)Docs changes and a couple of small fixes.
ANTLER Project Tools (antler-proj) is a set of tools to help in the generation of smart contracts intended for deployment to an Antelope blockchain.
This set of tools will help the developer create, maintain, build, and test smart contracts.
Usage
For now, please see the User Guide for usage.
Additional crypto primitive host functions
Additional crypto extensions support is now available. To see the scope of all primitives supported, view our documentation here.
In order to bring parity between asset
and extended_asset
for operators, the following were added:
extended_asset& operator*=(int64_t)
extended_asset operator*(const extended_asset&, int64_t)
extended_asset operator*(int64_t, const extended_asset&)
int64_t operator/(const extended_asset&, const extended_asset&)
extended_asset& operator/=( int64_t )
extended_asset operator/( const extended_asset&, int64_t )
CDT was also missing support for the get_code_hash
host function introduced with Antelope's GET_CODE_HASH
protocol feature. The API wrapper for this has been added along with some additional testing.
Bug Fixes
Missing inline
declaration on blake2_f
intrinsics helper
blake2_f()
in crypto_ext.hpp
were not inline
, so if multiple .cpp
files included this header file duplicate symbol errors were being thrown.
Wrong table name for ABI when eosio::singleton
used
Crash in cdt-cpp
when using a std::basic_string<>
in action wrapper
Other Changes
Tables with name
typed primary key now supported
Using a name
as a primary key in a table is a common use case. Support for this use case to the multi_index
template has now been added.
Feature Lifecycle Updates
Removals in v4.0.0
boost removed from eosiolib and native libraries
boost
library usage removed from eosiolib
and native
libraries. It still remains in cdt but deprecated as for now as part of cdt package. Usage of external to cdt boost
for contracts development is not restricted.
Further details on changes since last release
Contributors
Special thanks to the contributors that submitted patches for this release:
- @larryk85
- @spoonincode
- @linh2931
- @mikelik
- @ScottBailey
- @dimas1185
- @jolly-fellow
- @nathanielhourt
- @lparisc
- @YaroShkvorets
- @guilledk
- @AlexYug
- @nsjames
Full list of changes since last release
PRs
- (58)[3.1->main] Merge 3.1.0 rc1 version bump to main
- (54)Replaced char array in output_stream to std::string to avoid buffer overflow
- (59)Add possibility to build CDT in debug mode
- (72)Enable integration tests
- (87)add shared object option to CDTMacros
- (94)Empty antler-run with eos-vm and eosiolib linked
- (91)add a new document explaining crypto extensions
- (108)Remove boost from eosiolib and native libraries
- (104)Fix error message in division operator
- (113)Resolve #110: Add missing inline declaration on blake2_f intrinsics helper
- (109)Resolve #88
- (98)Resolve #97: Allow
name
typed primary keys - (100)Resolve #99: Fix abigen with int expression template arguments
- (119)[3.1] Fix wrong 3.0 version reference, use latest instead
- (120)[3.1 -> main] altering version rc1 -> no suffix; Fix wrong 3.0 version, use latest instead
- (118)Handle basic_string in datastream serializing/deserializing
- (117)Add extended_asset operators and unit tests.
- (115)Fix some issues when building EOSIO contracts
- (125)Fix getting wrong name of the table for singleton
- (126)[3.0] Fix broken links in cdt repo
- (127)[3.0 -> 3.1] Fix broken links in cdt repo
- (128)[3.1 -> main] Fix broken links in cdt repo
- (114)add antler-proj to cdt
- (136)fix cdt-init and CDTMacros.cmake.in
- (136)fix cdt-init and CDTMacros.cmake.in
- (139)cdt-cpp man page added
- (145)cdt-cc man page created
- ([144](https://github.com/AntelopeIO...
CDT v3.1.0 Release Notes
Contract Development Toolkit (CDT) is a C/C++ toolchain targeting WebAssembly (WASM) and a set of tools to facilitate development of smart contracts written in C/C++ that are meant to be deployed to an Antelope blockchain.
This release, includes additional crypto extensions for crypto primitives host functions, an update to how data segments are partitioned, and documentation updates.
Read on for details.
Changes
Crypto Extensions
TypesG1
point G2
point have been added to use as input and as results for computations and the bigint
type has been added to modexp
.
Data segment partitioning updates
There is now a new optimization to run on data segments that will repartition the data segments with fracturing taking place at 1024 bytes maximum and when lengths of spans of zeros are present.
Further details on changes since last release
Contributors
Special thanks to the contributors that submitted patches for this release:
Full list of changes since last release
PRs
- (44)[main] Fracture Data Segments
- (47)[3.0] Rename doc portal links from welcome to docs [docs]
- (50)[3.0->main] Rename doc portal links from welcome to docs [docs]
- (53)triage new issues by adding label & assigning to project
- (52)[main] Crypto extension wrappers and data types for C++
- (56)[main] bump CDT main to 3.2.0 to prepare branching 3.1.0 rc1
- (57)[3.1] bump CDT version to 3.1.0-rc1
- [86] altering version rc1 -> no suffix
Full Changelog: v3.0.1...v3.1.0
CDT v3.1.0-rc1 Release Notes
Contract Development Toolkit (CDT) is a C/C++ toolchain targeting WebAssembly (WASM) and a set of tools to facilitate development of smart contracts written in C/C++ that are meant to be deployed to an Antelope blockchain.
This release, includes additional crypto extensions for crypto primitives host functions, an update to how data segments are partitioned, and documentation updates.
Read on for details.
Changes
Crypto Extensions
TypesG1
point G2
point have been added to use as input and as results for computations and the bigint
type has been added to modexp
.
Data segment partitioning updates
There is now a new optimization to run on data segments that will repartition the data segments with fracturing taking place at 1024 bytes maximum and when lengths of spans of zeros are present.
Further details on changes since last release
Contributors
Special thanks to the contributors that submitted patches for this release:
Full list of changes since last release
PRs
- (44)[main] Fracture Data Segments
- (47)[3.0] Rename doc portal links from welcome to docs [docs]
- (50)[3.0->main] Rename doc portal links from welcome to docs [docs]
- (53)triage new issues by adding label & assigning to project
- (52)[main] Crypto extension wrappers and data types for C++
- (56)[main] bump CDT main to 3.2.0 to prepare branching 3.1.0 rc1
- (57)[3.1] bump CDT version to 3.1.0-rc1
Full Changelog: v3.0.1...v3.1.0-rc1
CDT v3.0.1 Release Notes
This patch release contains a bug fix, an enhancement, and documentation updates.
Read on for details.
Bug fixes
Inconsistency in ABI generated for map
In CDT releases prior to 3.0.0, the ABI generated for std::map<K,V>
was a list of structs in which the ABI for the inner struct included fields first
and second
, which is the same ABI that would be generated for std::pair<K,V>
.
In CDT 3.0.0, the behavior of ABI generation for std::map<K,V>
unintentionally changed such that the inner struct would sometimes use the fields key
and value
instead (depending on whether a std::map<K,V>
or std::pair<K,V>
was encountered first in the code scanned by the ABI generator). Additionally, if the ABI generation chose the version of the struct with fields key
and value
for the inner struct generated from a std::map<K,V>
, then all other types involving std::pair<K,V>
for different fields in the ABI would also use that version of the struct with fields key
and value
as opposed to version containing first
and second
that was intended.
This release fixes the bug introduced in CDT 3.0.0 to ensure that the inner struct generated in the ABI for std::map<K,V>
is always the version that is compatible with the intended ABI of std::pair<K,V>
: the version that contains first
and second
fields.
Enhancements
Make varints compile-time constructible
The varints unsigned_int
and signed_int
have been updated to be compile-time constructable to be available for compile time constant expressions.
Further details on changes since last release
Contributors
Special thanks to the contributors that submitted patches for this release:
Full list of changes since last release
PRs
Full Changelog: v3.0.0...v3.0.1