Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Latest commit

 

History

History
116 lines (80 loc) · 4.57 KB

CHANGELOG.md

File metadata and controls

116 lines (80 loc) · 4.57 KB

Changelog

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.

[Unreleased]

Added

  • 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

Changed

  • Replaced storage rent with automatic storage deposits #9669 #10082

  • Replaced seal_println with the seal_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

Fixed

  • Remove pre-charging which caused wrongly estimated weights #8976

[v3.0.0] 2021-02-25

This version constitutes the first release that brings any stability guarantees (see above).

Added

  • 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

Changed

  • 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

Fixed

  • Consider the code size of a contract in the weight that is charged for loading a contract from storage. #8086

  • Fix possible overflow in storage size calculation #7885

  • Cap the surcharge reward that can be claimed. #7870

  • Fix a possible DoS vector where contracts could allocate too large buffers. #7818