Skip to content

Releases: AntelopeIO/cdt

CDT v4.1.1

06 Aug 21:12
b35ebff

Choose a tag to compare

This patch release addresses critical compilation issues that affect developers using boolean arguments in action wrappers and those building CDT with recent versions of Clang. CDT v4.1.1 provides essential fixes to ensure broader compatibility and improved reliability for smart contract development.

Notable Changes

Action Wrapper Boolean Argument Fix
Resolved a compilation failure that occurred when using boolean types as the first argument in action wrappers. This fix eliminates ambiguous partial specialization errors that previously prevented successful compilation of contracts using boolean parameters.

Modern Clang Compatibility
Fixed compilation issues when building CDT with recent Clang versions (18, 19, 20, and modern Xcode versions). This addresses a compatibility problem in the jsoncons library that caused build failures on newer toolchains.

Complete Change Log

  • [4.1.0] Fix action_wrapper failure if its first argument is a bool by @linh2931 in #372
  • [4.1.1] fix compile on recent clang versions by @spoonincode in #382

Contributors

Full Changelog: v4.1.0...v4.1.1

CDT v5.0.0-dev1.1

28 Jul 20:03
90655b5

Choose a tag to compare

CDT v5.0.0-dev1.1 Pre-release
Pre-release

This developer preview builds upon CDT v5.0.0-dev1 with important fixes and enhancements for the Sync Calls feature in the Antelope protocol. This release adds new utilities for sync call detection, resolves critical wrapper functionality issues, and includes improvements to the LLVM toolchain integration.

Warning

This is a Developer Preview release, intended for testing and feedback only. Future releases will contain breaking changes. CDT 5.0.0-dev1.1 should not be used with contracts for chains other than chains specifically testing the Spring 2.0.0-dev1 preview release.

Notable Changes

Sync Call Detection
Added the is_sync_call() method to the eosio::contract class, enabling contracts to programmatically determine whether they are being executed within a sync call context.

Action/Call Wrapper Fixes
Resolved a critical issue where action_wrapper and call_wrapper would fail when the first argument was a boolean type, improving the reliability of wrapper functionality.

Custom Sync Call Entry Function Support
Enhanced support for customized sync call entry functions with proper export handling in the LLVM toolchain, providing developers with greater flexibility in defining their sync call interfaces.

Toolchain Updates
Updated CDT to use the main branches of cdt-clang and cdt-lld, incorporating the latest improvements and ensuring better compatibility with the evolving Antelope ecosystem.

For details on how to use the Sync Calls features, please see the [Developer's Guide to Sync Calls](https://github.com/AntelopeIO/spring/wiki/Developer-Guide:-Sync-Calls).

Complete Change Log

Sync Call Enhancements

  • [5.0.0-dev] Add is_sync_call() to eosio::contract class by @linh2931 in #369
  • Update cdt-llvm to take in customized sync call entry function export fix and add tests for it by @linh2931 in #379


Wrapper Functionality Fixes

  • [4.1.0] Fix action_wrapper failure if its first argument is a bool by @linh2931 in #372
  • [4.1 -> main] Merge type_check fix used by action_wrapper by @linh2931 in #373


Toolchain Updates

  • [5.0.0-dev2] Attempt 2: Update to use main branches of cdt-clang and cdt-lld by @linh2931 in #377
  • [main --> 5.0.0-dev1] Merge main to release/5.0.0-dev1 by @linh2931 in #380
  • [5.0.0-dev1.1] Bump version to 5.0.0-dev1.1 by @linh2931 in #381


Contributors

Full Changelog: v5.0.0-dev1...v5.0.0-dev1.1

CDT v5.0.0-dev1

16 Jul 16:02
fb6ad1b

Choose a tag to compare

CDT v5.0.0-dev1 Pre-release
Pre-release

This developer preview introduces full tooling support for the upcoming Sync Calls feature in the Antelope protocol. CDT v5.0.0-dev1 enables contract authors to declare, dispatch, and invoke sync call entry points in modern C++, with clean abstractions and full ABI integration. Future dev releases may include breaking changes.

Warning

This is a Developer Preview release, intended for testing and feedback only. Future releases will contain breaking changes. CDT 5.0.0-dev1 should not be used with contracts for chains other then chains specifically testing the Spring 2.0.0-dev1 preview release.

Notable Changes

New Host Function Support
Added bindings for call, get_call_data, set_call_return_value, and get_call_return_value, enabling developers to invoke and handle sync calls directly in smart contracts.

Call Dispatcher Generation
Contracts can now declare sync call entry points using the [[eosio::call]] attribute. CDT auto-generates dispatcher functions for each marked method. A method can be tagged both as eosio::action and as eosio::call, allowing more code reuse.

Call Wrapper Abstraction
Introduced the call_wrapper utility, allowing contracts to invoke sync calls using a clean, type-safe C++ interface that supports access and fallback modes.

ABI Support for Sync Calls
The ABI format is bumped to version 1.3 and now includes a calls sections, which captures function signatures and return types for sync call methods.

Support for Long Function Names
Sync call entry point names can now be any valid C++ identifier up to 128 characters, greatly increasing naming flexibility.

Entry Point Auto-Generation
CDT will now auto-generate the sync_call() entry point if it is not explicitly defined, reducing boilerplate and speeding up development.

Toolchain Enhancements and Fixes
Includes various fixes and cleanups:

  • Marked singleton methods as const where appropriate
  • Removed deprecated security group headers
  • Fixed deserialization of empty std::optional values
  • Updated instant_finality_extension to finality_extension

For details on how to use the new Sync Calls features, please see the Developer's Guide to Sync Calls.

Complete Change Log

New Sync Calls Feature

  • SC: Implement new sync call host functions by @linh2931 in #346
  • SC: Generate sync call dispatcher by @linh2931 in #349
  • SC: Implement call wrapper to simplify making sync calls by @linh2931 in #351
  • SC: Implement generating sync_call entry function by @linh2931 in #350
  • SC: Generate call and call_results sections in ABI files for sync calls and bump ABI version to 1.3 by @linh2931 in #353
  • SC: Support long sync call function names by @linh2931 in #362
  • SC: Consolidate all sync call related fields into a single call section in ABI and allow a function to be tagged both as an action and a call by @linh2931 in #363


Serialization Enhancements

  • Fix missing reset when deserializing std::optional if serialized value is empty by @linh2931 in #335
  • Add bitset support in abi. by @greg7mdp in #352
  • Should not use throw in contracts. by @greg7mdp in #359
  • Generate minimal supported version of ABIs by @greg7mdp in #360
  • Add test for array/fixed size array support in action data and action return value. by @greg7mdp in #358


Full Changelog

Contributors

CDT 4.1.0 Release Notes

04 Sep 14:38
7028e80

Choose a tag to compare

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:

Full Changelog: v4.0.1...v4.1.0

CDT 4.1.0-rc3 Release Notes

22 Aug 19:14
b4a95f9

Choose a tag to compare

Pre-release

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:

Full Changelog: v4.0.1...v4.1.0-rc3

CDT 4.1.0-rc2 Release Notes

17 Aug 00:22
b2c7d0d

Choose a tag to compare

Pre-release

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:

Full Changelog: v4.0.1...v4.1.0-rc2

CDT 4.1.0-rc1 Release Notes

07 May 21:07
cceffd7

Choose a tag to compare

Pre-release

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:

Full Changelog: v4.0.1...v4.1.0-rc1

CDT 4.0.1 Release Notes

20 Oct 00:59
26f8d67

Choose a tag to compare

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.

PRs

  • (172)[4.0] run integration tests in CI with libtester from leap-dev.deb @spoonincode


Add Explicit Overloads

Fixes a bug where std::basic_string<uint8_t> fails to correctly match in datastream for the stream operators

PRs


Fix Deprecated Call in cmake

Updates cmake to use find_package(Python) previous method is deprecated.

PRs


Fix MacOS Builds

Updates codes to work on the latest clang, and updated linking to work across MacOS and Linux.

PRs


Remove Unused Libraries

Removes Antler Run and Antler Proj. This code was unaccessible.

PRs


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.

PRs


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: v4.0.0...v4.0.1

CDT v4.0.0 Release Notes

23 May 15:56
ca03025

Choose a tag to compare

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 and libs 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

PRs

  • (109)Resolve #88
  • (117)Add extended_asset operators and unit tests.


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

PRs

  • (108)Remove boost from eosiolib and native libraries


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

PRs

  • (125) Fix getting wrong name of the table for singleton


Crash in cdt-cpp when using a std::basic_string<> in action wrapper

PRs

  • (118)Handle basic_string in datastream serializing/deserializing


Other Changes

Tables with name typed primary key now supported

PRs

  • (98)Resolve #97: Allow name typed primary keys


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

PRs

  • (108)Remove boost 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:

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...
Read more

CDT v4.0.0-rc1 Release Notes

04 May 12:55

Choose a tag to compare

Pre-release

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 and libs 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

PRs

  • (109)Resolve #88
  • (117)Add extended_asset operators and unit tests.


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

PRs

  • (108)Remove boost from eosiolib and native libraries


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

PRs

  • (125) Fix getting wrong name of the table for singleton


Crash in cdt-cpp when using a std::basic_string<> in action wrapper

PRs

  • (118)Handle basic_string in datastream serializing/deserializing


Other Changes

Tables with name typed primary key now supported

PRs

  • (98)Resolve #97: Allow name typed primary keys


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

PRs

  • (108)Remove boost 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:

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...
Read more