All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
The semantic versioning guarantees cover the interface to the substrate runtime which includes this pallet as a dependency. This module will also add storage migrations whenever changes require it. Stability with regard to offchain tooling is explicitly excluded from this guarantee: For example adding a new field to an in-storage data structure will require changes to frontends to properly display it. However, those changes will still be regarded as a minor version bump.
The interface provided to smart contracts will adhere to semver with one exception: Even major version bumps will be backwards compatible with regard to already deployed contracts. In other words: Upgrading this pallet will not break pre-existing contracts.
-
Forbid calling back to contracts after switching to runtime #13443
-
Allow contracts to dispatch calls into the runtime (unstable) #9276
-
New version of
seal_call
that offers more features. #8909 -
New
instantiate
RPC that allows clients to dry-run contract instantiation. #8451 -
New version of
seal_random
which exposes additional information. #8329
-
Replaced storage rent with automatic storage deposits #9669 #10082
-
Replaced
seal_println
with theseal_debug_message
API which allows outputting debug messages to the console and RPC clients. #8773 #9550 -
Make storage and fields of
Schedule
private to the crate. #8359
- Remove pre-charging which caused wrongly estimated weights #8976
This version constitutes the first release that brings any stability guarantees (see above).
-
Emit an event when a contract terminates (self-destructs). #8014
-
Charge rent for code stored on the chain in addition to the already existing rent that is paid for data storage. #7935
-
Allow the runtime to configure per storage item costs in addition to the already existing per byte costs. #7819
-
Contracts are now deleted lazily so that the user who removes a contract does not need to pay for the deletion of the contract storage. #7740
-
Allow runtime authors to define chain extensions in order to provide custom functionality to contracts. #7548 #8003
-
Proper weights which are fully automated by benchmarking. #6715 #7017 #7361
-
Collect the rent for one block during instantiation. #7847
-
Instantiation takes a
salt
argument to allow for easier instantion of the same code by the same sender. #7482 -
Improve the information returned by the
contracts_call
RPC. #7468 -
Simplify the node configuration necessary to add this module. #7409