EOSIO.CDT v1.8.1 Release Notes
This release contains a new feature and miscellaneous updates.
Changes
Features:
- Add a new attribute
eosio:read_only
to enforce read-only nature of an action (#1068). If an action has this attribute but calls specific write host functions, by default the contract compilation will stop and output error messages. If the compiler option--warn-action-read-only
is used, the compilation will continue but output warning messages. Currently, CDT only checks direct calls and limited ways of indirect calls of write host functions.
This CDT feature provides warnings
to developers when using the contract-supported method of read-only queries from external clients via a new HTTP-RPC API endpoint in v2.2.0-rc1
nodeos called push_ro_transaction
. Prior to this release, access was limited to data stored in a single table in DB or KV tables via the get_tables
API, a mechanism which is exacting and inefficient. Read-only queries enable developers to perform more complex, cross-table queries natively via contract code with the assurance that table data is from the same block height. It can also be used to understand the consequences of a transaction before it is sent. For details please see Read-only Queries Documentation and the associated unit tests and (#10189).
Sample usage:
[[eosio::action, eosio::read_only]]
void hello(name user) {
int64_t ram, net, cpu;
get_resource_limits( user, ram, net, cpu );
}
The following code will cause compilation error, unless --warn-action-read-only
option is used:
[[eosio::action, eosio::read_only]]
void hello(name user) {
set_resource_limits( user, 0, 0, 0 );
}
Other Changes
- (#1058) Adding more OS support to eosio.cdt 1.8.x
- (#1081) Disable LLVM_CCACHE_BUILD
- (#1086) [r1.8] Update brew steps
- (#1097) Fix some links in README.md
- (#1113) Fix Docker RMI Failure
- (#1124) Release 1.8.x brew updater
- (#1127) Release 1.8.x nodes
- (#1131) Ensure timeout can be overridden for macos package building.
- (#1137) Add version check test for eosio-cpp --version option.
- (#1143) Anka prebuilt image for 1.8.x branch.
- (#1148) Add test steps for 1.8.x package artifacts.
- (#1154) Merge develop into release/1.8.x
- (#1157) Update binary version test to take raw version tag version for easier cicd-isms.
- (#1161) Don't Always Push to DockerHub
Documentation
- (#1056) [docs] 1.8.xdocument deferred transaction collisions
- (#1079) [docs] 1.8.x fix typo "privious"->"previous"
- (#1077) [docs] 1.8.x Clean up [[eosio::action]] use for structs
- (#1089) [docs] 1.8.x - updates to match newest how to template
- (#1092) [docs] Info -> info
- (#1107) [docs] dummy to trigger a doc build
- (#1110) [docs] Workaround for broken links on docs root folder - 1.8
- (#1094) Docs/1.8.x fix informational callouts
- (#1119) [docs] 1.8.x - eosio-cpp add new option
Disclaimer: All repositories and other materials are provided subject to this IMPORTANT notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources, and forward-looking statements. By accessing any of our repositories and other materials, you accept and agree to the terms of the notice.