Skip to content

Latest commit

 

History

History
151 lines (112 loc) · 9.47 KB

CHANGELOG.md

File metadata and controls

151 lines (112 loc) · 9.47 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog (modification: no type change headlines) and this project adheres to Semantic Versioning.

2.4.0 - 2018-07-27

With the 2.4.x release series we now start to gradually add Constantinople features with the bitwise shifting instructions from EIP 145 making the start being introduced in the v2.4.0 release.

Since both the scope of the Constantinople hardfork as well as the state of at least some of the EIPs to be included are not yet finalized, this is only meant for EXPERIMENTAL purposes, e.g. for developer tools to give users early access and make themself familiar with dedicated features.

Once scope and EIPs from Constantinople are final we will target a v2.5.0 release which will officially introduce Constantinople support with all the changes bundled together.

Note that from this release on we also introduce new chain (default: mainnet) and hardfork (default: byzantium) initialization parameters, which make use of our new ethereumjs-common library and in the future will allow for parallel hardfork support from Byzantium onwards.

Since hardfork default might be changed or dropped in future releases, you might want to explicitly set this to byzantium on your next update to avoid future unexpected behavior.

All the changes from this release:

FEATURES/FUNCTIONALITY

  • Improved chain and fork support, see PR #304
  • Support for the Constantinople bitwise shifiting instructions SHL, SHR and SAR, see PR #251
  • New newContract event which can be used to do interrupting tasks on contract/address creation, see PR #306
  • Alignment of behavior of bloom filter hashing to go along with mainnet compatible clients BREAKING, see PR #295

UPDATES/TESTING

  • Usage of the latest rustbn.js API, see PR #312
  • Some cleanup in precompile error handling, see PR #318
  • Some cleanup for StateManager, see PR #266
  • Renaming of util.sha3 usages to util.keccak256 and bump ethereumjs-util to v5.2.0 (you should do to if you use ethereumjs-util)
  • Parallel testing of theByzantium and Constantinople state tests, see PR #317
  • For lower build times our CI configuration now runs solely on CircleCI and support for Travis have been dropped, see PR #316

BUG FIXES

  • Programmatic runtime errors in the VM execution context (within an opcode) are no longer absorbed and displayed as a VMError but explicitly thrown, allowing for easier discovery of implementation bugs, see PR #307
  • Fix of the Bloom.check() method not working properly, see PR #311
  • Fix a bug when REVERT is used within a CREATE context, see PR #297
  • Fix a bug in FakeBlockChain error handing, see PR #320

2.3.5 - 2018-04-25

  • Fixed BYTE opcode return value bug, PR #293
  • Clean up touched-accounts management in StateManager, PR #287
  • New stateManager.copy() function, PR #276
  • Updated Circle CI configuration to 2.0 format, PR #292

2.3.4 - 2018-04-06

  • Support of external statemanager in VM constructor (experimental), PR #264
  • ES5 distribution on npm for better toolchain compatibility, PR #281
  • allowUnlimitedContractSize VM option for debugging purposes, PR #282
  • Added gasRefund to transaction results, PR #284
  • Test coverage / coveralls support for the library, PR #270
  • Properly calculate totalgas for large return values, PR #275
  • Improve iterateVm check output after step hook, PR #279

2.3.3 - 2018-02-02

  • Reworked memory expansion/access for opcodes, PR #174 (fixes consensus bugs on large numbers >= 53 bit for opcodes using memory location)
  • Keep stack items as bn.js instances (arithmetic performance increases), PRs #159, #254 and #256
  • More consistent VM error handling, PR #219
  • Validate stack items after operations, PR #222
  • Updated ethereumjs-util dependency from 4.5.0 to 5.1.x, PR #241
  • Fixed child contract deletion bug, PR #246
  • Fixed a bug associated with direct stack usage, PR #240
  • Fix error on large return fees, PR #235
  • Various bug fixes

2.3.2 - 2017-10-29

  • Better handling of rustbn.js exceptions
  • Fake (default if non-provided) blockchain fixes
  • Testing improvements (separate skip lists)
  • Minor optimizations and bug fixes

2.3.1 - 2017-10-11

  • Byzantium compatible
  • New opcodes REVERT, RETURNDATA and STATICCALL
  • Precompiles for curve operations and bigint mod exp
  • Transaction return data in receipts
  • For detailed list of changes see PR #161
  • For a Spurious Dragon/EIP 150 compatible version of this library install latest version of 2.2.x

[2.3.0] - Version Skipped due to faulty npm release

2.2.2 - 2017-09-19

  • Fixed JS number issues and certain edge cases
  • Fixed various smaller bugs and improved code consistency
  • Some VM speedups
  • Testing improvements
  • Narrowed down dependencies for library not to break after Byzantium release

2.2.1 - 2017-08-04

  • Fixed bug prevent the library to be used in the browser

2.2.0 - 2017-07-28

  • Spurious Dragon & EIP 150 compatible
  • Detailed list of changes in pull requests #147 and #143
  • Removed enableHomestead option when creating a new VM object (pre-Homestead fork rules not supported any more)

2.1.0 - 2017-06-28

  • Homestead compatible
  • update state test runner for General State Tests

Older releases: