{"action":"published","release":{"url":"https://api.github.com/repos/EOSIO/eosio.contracts/releases/13363001","assets_url":"https://api.github.com/repos/EOSIO/eosio.contracts/releases/13363001/assets","upload_url":"https://uploads.github.com/repos/EOSIO/eosio.contracts/releases/13363001/assets{?name,label}","html_url":"https://github.com/EOSIO/eosio.contracts/releases/tag/v1.4.0","id":13363001,"node_id":"MDc6UmVsZWFzZTEzMzYzMDAx","tag_name":"v1.4.0","target_commitish":"master","name":"EOSIO Contracts v1.4.0 Release Notes","draft":false,"author":{"login":"arhag","id":8333406,"node_id":"MDQ6VXNlcjgzMzM0MDY=","avatar_url":"https://avatars0.githubusercontent.com/u/8333406?v=4","gravatar_id":"","url":"https://api.github.com/users/arhag","html_url":"https://github.com/arhag","followers_url":"https://api.github.com/users/arhag/followers","following_url":"https://api.github.com/users/arhag/following{/other_user}","gists_url":"https://api.github.com/users/arhag/gists{/gist_id}","starred_url":"https://api.github.com/users/arhag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arhag/subscriptions","organizations_url":"https://api.github.com/users/arhag/orgs","repos_url":"https://api.github.com/users/arhag/repos","events_url":"https://api.github.com/users/arhag/events{/privacy}","received_events_url":"https://api.github.com/users/arhag/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2018-10-11T00:35:42Z","published_at":"2018-10-11T00:37:09Z","assets":[],"tarball_url":"https://api.github.com/repos/EOSIO/eosio.contracts/tarball/v1.4.0","zipball_url":"https://api.github.com/repos/EOSIO/eosio.contracts/zipball/v1.4.0","body":"# All contracts\r\n\r\nAll of the contracts have been updated to be compatible with eosio.cdt v1.3.x. The 1.3 version of eosio.cdt introduced breaking changes to eosiolib which required the source code of all contracts to be modified so that they could continue to build.\r\n\r\nThe latest release of eosio.cdt also introduces new features like updated attributes to help with ABI generation and the `ignore` template to enable optimization of action argument deserialization without sacrificing automatic ABI generation. All contracts have been updated to use the new attributes for ABI generation, and furthermore the eosio.system, eosio.msig, and eosio.wrap (formerly known as eosio.sudo) contracts in particular have also been updated to use the `ignore` feature. \r\n\r\nWhile the code for all of the contracts in this repository have been modified due to the reasons stated above, the only contracts that have had functional changes since the prior release are eosio.system and eosio.token.\r\n\r\n## Automatic ABI generation\r\n\r\nThe contracts have been updated to leverage the automatic ABI generation functionality of the latest eosio.cdt release. ABI files are no longer manually created and committed to the repository. Instead the build system will generate the ABI files and place them in the same directory as the generated WASM file.\r\n\r\n## Relaxed dependency checks\r\n\r\nThe dependency checks of prior releases of eosio.contracts were very strict. With each new minor release of eosio, users trying to build an existing eosio.contracts release with the new version of the eosio dependency found that the build would fail with a dependency version failure. The problem would eventually be fixed with the new minor release of eosio.contracts only to break again when one of its dependencies had another minor release.\r\n\r\nWith v1.4.0 of eosio.contracts, this frustrating problem should be resolved since the dependency version checker is now far more permissive. It will refuse to build with dependency versions that are known to be incompatible at the time of the release, however, now the build will continue (although with a warning) if the dependency has a higher minor (but not major) version than what was known to be good at the time of the eosio.contracts release. For details on the version checking logic, see #89.\r\n\r\n# Wrap contract (formerly know as the sudo contract)\r\n\r\nThe `eosio.sudo` contract has been renamed to `eosio.wrap`. There is no functionality change to the contract.\r\n\r\n# Token contract\r\n\r\nThe `eosio.token::open` action will now verify that the symbol provided to the action actually exists before attempting to open a new zero-balance table row for the symbol (#102).\r\n\r\n# System contract\r\n\r\n## Core symbol no longer needed during build\r\n\r\nThe concept of a core symbol has been entirely removed with the v1.3.0 release of eosio.cdt. There is no longer a `core_symbol.hpp` header file and the `eosio::asset` `struct` requires a symbol to always be explicitly provided to the non-default constructor.\r\n\r\nIn prior versions of eosio.contracts, the core symbol that was needed for the system contract was pulled in from eosio.cdt. Now, with the changes in eosio.cdt, the system contract alone is responsible determining what the core (or system) token symbol should be.\r\n\r\nHowever, this change has also not required a core symbol to be provided as a build parameter when compiling the system contract. Instead the system contract has been updated to determine the core (or system) token dynamically rather than hard-coding it into the contract.\r\n\r\nWhen the system contract is deployed to a blockchain for the very first time, a call to the `eosio::init` action should immediately follow to set up the initial parameters and tables of the system contract (the contract will not be fully functional without the initialization). The core token symbol is provided as an argument to this `eosio::init` action.\r\n\r\nFurther updates to the system contract code do not require an `eosio::init` action; in fact it is disallowed to call `eosio::init` a second time.\r\n\r\nIf version 1.4.0 of the system contract is replacing an existing deployment of older versions of the eosio.system contract, then no `eosio::init` action is necessary. The necessary tables should already be setup to allow v1.4.0 of the eosio.system contract to dynamically retrieve the core token symbol.\r\n\r\n\r\n# Dependencies\r\n\r\nThis release depends on eosio.cdt v1.3.x and eosio v1.3.x. To compile the contracts in this release, first build and install [eosio.cdt v1.3.0](https://github.com/EOSIO/eosio.cdt/releases/tag/v1.3.0) and [eosio v1.3.2](https://github.com/EOSIO/eos/releases/tag/v1.3.2)."}}
{"actor":{"display_login":"arhag"}}