CyberWay CDT v2.0.1

in #cyberway5 years ago

4W3i2hyrJTVfPHn3CXxXp1sLGxbzYqyongN94X4UCKzducUzLw8.png

Blockchain development team announces the cyberway CDT v2.0.1 version release. This version includes:
— modification to nested transactions;
— modification to auto-generation of ABI-description;
— modification to ABI-diff utility;
— modification to binary_extention.

Executing nested transactions

The send_nested intrinsic has been implemented to execute nested transactions. This intrinsic defined as
void send_nested(const char *serialized_transaction, size_t size). It available only for privileged contracts and has some restrictions:

  • transaction authorities does not checked, so contract should check it;
  • only one nested transaction is allowed inside the normal;
  • nested transaction is not allowed from nested;
  • context free actions are not allowed in nested transactions.

Auto-generation of ABI-description

Auto-generation of the ABI-description and actions dispatcher based on the attributes placed in the contract code has been restored. To do this, changes were made to the compiler to provide a description of features implemented in CyberWay. The following attributes have been added to the set of supported attributes:

  • eosio::event - marks a record as being an eosio event;
  • eosio::order - adds an order to table or index;
  • eosio::non_unique - marks index of eosio table as non-unique;
  • eosio::scope_type - set custom scope type of eosio table.

Also, the compiler has been renamed to cyberway-cpp.

Modification to ABI-diff utility

The abidiff tool is used to diff two ABI files to flag and output differences. The abidiff utility has been modified to support sections added to CyberWay in the ABI description. These sections include descriptions of events and indexes for data tables.
It was also added the ability to determine whether the files match by the return code passed from the utility (0 - successful execution, the specified files match).

Modification to binary_extension (#175)

Problem description

Binary extension writes the default value when it does not have value

Solution

A binary behavior strategy has been added for binary_extension when saving and if it does not have a value. (In EOS, the default value for the stored type is written in this case). Strategy can be choosed using the value no_value of template parameter write_strategy (when data is not saving, for instance). This parameter is optional, and if omitted, binary_extension will adhere to behavior implemented in EOS (it will take default_value value for the parameter).

Minor bugs were also fixed and changes were made to the Docker image build.

Don't hesitate to join our community via:

Commun:

https://commun.com/cyberway

Telegram:

Twitter:

We'll keep you updated over https://twitter.com/cyberwayio