EOSIO.Contracts v1.7.0-rc1 Release Notes
Pre-releaseThis is a RELEASE CANDIDATE for version 1.7.0 of EOSIO.Contracts. The latest STABLE release is v1.6.0.
The EOSIO.Contracts v1.7.0-rc1 is required to support EOSIO v1.8.0-rc1 and should be deployed only after the PREACTIVATE_FEATURE
consensus protocol upgrade has been activated on the EOSIO chain.
System contract
This release adds a new action activate
to the system contract (#220). The activate
action pre-activates (which then subsequently activates at the start of the next block) the protocol feature represented by the digest (hash) provided in the action data.
The implementation of the activate
action requires linking against a new intrinsic function which is only made available after the PREACTIVATE_FEATURE
protocol feature is activated on the EOSIO blockchain. This means that until that protocol feature is activated, it will not be possible to deploy this system contract to the chain.
In addition, the implementation of the Bancor algorithm behind buying and sell RAM has been simplified while maintaining the same behavior (#222). Both mathematical and empirical analyses have shown that the change in the implementation does not materially change the behavior of the actions to buy and sell RAM.
Token contract
After activation of the RESTRICT_ACTION_TO_SELF
protocol feature, the eosio.token::issue
action will no longer be able send an inline transfer
when issuing tokens to an account other than the issuer. In preparation for this change in capabilities, the eosio.token::issue
action's behavior has been modified to explicitly disallow issuing tokens to any account other than the issuer (#232). Token managers who use the eosio.token
reference contract and wish to continue issuing tokens to other accounts will need to replace the single eosio.token::issue
action with a transaction with two actions: one that first issues tokens to the issuer and then the second one that transfer that same quantity of tokens from the issuer to the intended recipient.
Bios contract
The same activate
action added to the system contract has also been added to the bios contract (#220). The bios contract also has a new action reqactivated
which asserts that the protocol feature represented by the provided digest has been activated.
Other changes
- (#188) Created Buildkite Pipeline with Docker Build
- (#202) Producer pay vars update
- (#201) Fix/update votes
- (#197) Contracts Pipeline: Add Test Steps and Use Pre-Built EOSIO Docker Images
- (#223) Annotate all public EOSIO system contracts' classes, structs, methods, actions
- (#230) Change add_eosio_test to add_eosio_test_executable
- (#228) Fix broken links in README.md
- (#226) fix description comment typo
- (#231) Added ctest Error Handling
- (#218) Deleted docker files and scripts used by old contracts pipeline
Dependencies
This release depends on eosio.cdt v1.6.x and eosio v1.8.x. To compile the contracts in this release, first build and install eosio.cdt v1.6.1 and eosio v1.8.0-rc1.
Thanks!
Special thanks to the community contributors that submitted patches for this release:
Disclaimer: Block.one makes its contribution on a voluntary basis as a member of the EOSIO community and is not responsible for ensuring the overall performance of the software or any related applications. We make no representation, warranty, guarantee or undertaking in respect of the releases described here, the related GitHub release, the EOSIO software or any related documentation, whether expressed or implied, including but not limited to the warranties or merchantability, fitness for a particular purpose and noninfringement. In no event shall we be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or documentation or the use or other dealings in the software or documentation. Any test results or performance figures are indicative and will not reflect performance under all conditions. Any reference to any third party or third-party product, resource or service is not an endorsement or recommendation by Block.one. We are not responsible, and disclaim any and all responsibility and liability, for your use of or reliance on any of these resources. Third-party resources may be updated, changed or terminated at any time, so the information here may be out of date or inaccurate. Any person using or offering this software in connection with providing software, goods or services to third parties shall advise such third parties of these license terms, disclaimers and exclusions of liability.