Skip to content
This repository has been archived by the owner on Apr 6, 2020. It is now read-only.

Latest commit

 

History

History
192 lines (127 loc) · 8.42 KB

CHANGELOG.md

File metadata and controls

192 lines (127 loc) · 8.42 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.1.2 - 2019-12-19

  • Added support for the MuirGlacier HF by updating the ethereumjs-common dependency to v1.5.0

2.1.1 - 2019-08-30

  • Added support for Istanbul reduced non-zero call data gas prices (EIP-2028), PR #171

2.1.0 - 2019-06-28

Using testnets and custom/private networks is now easier

This release is focused on making this library easier to use in chains other than mainnet.

Using standard testnets can be as easy as passing their names to the Transaction constructor. For example, new Transaction(rawTx, {chain: 'ropsten', hardfork: 'byzantium'}) is enough to use this library with Ropsten on Byzantium.

If you are using a custom network, you can take advantage of ethereumjs-common, which contains all the network parameters. In this version of ethereumjs-tx you can use its new Common.forCustomNetwork to create a Common instance based on a standard network with some parameters changed. You can see an example of how to do this here.

List of changes:

  • Upgraded ethereumjs-common to ^1.3.0
  • Added more documentation and examples on how to create transactions for public testnets and custom networks.

2.0.0 - 2019-06-03

TypeScript / Module Import / Node Support

First TypeScript based release of the library, see PR #145 for details.

This comes along with some changes on the API, Node import of the exposed classes now goes like this:

const EthereumTx = require('ethereumjs-transaction').Transaction
const FakeEthereumTx = require('ethereumjs-transaction').FakeTransaction

The library now also comes with a type declaration file distributed along with the package published.

Along with this release we drop official support for Node versions 4,5 and 6. Officially tested versions are now Node 8, 10 and 11 (see PRs #138 and #146).

Hardfork Support / Official Test Updates

Along with a long overdue update of the official Ethereum Transaction tests (see PRs #131 and #138 for FakeTransaction) and an introduction of setting chain and hardfork by using our shared ethereumjs-common class (see PR #131) the transaction library now supports all HFs up to the Petersburg hardfork, see constructor option docs for information on instantiation and default values (current hardfork default: petersburg).

API Changes:

  • Removal of the data.chainId parameter, use the opts.chain parameter or a custom Common instance

Default EIP-155 Support

Along with defaulting to a post-Spurious Dragon HF replay protection from EIP-155 is now activated by default. Transactions are subsequently also by default signed with EIP-155 replay protection, see PRs #153, #147 and #143.

This comes with some changes in how different v values passed on instantation or changed on runtime are handled:

  • The constructor throws if the v value is present, indicates that EIP-155 was enabled, and the chain id it indicates doesn't match the one of the internal common object
  • No default v is set. If a transaction isn't signed, it would be an empty buffer
  • If v is changed after construction its value is validated in its setter

For activating non-EIP-155 behavior instantiate the transaction with a pre-Spurious Dragon hardfork option.

1.3.7 - 2018-07-25

  • Fix bug causing FakeTransaction.from to not retrieve sender address from tx signature, see PR #118

1.3.6 - 2018-07-02

  • Fixes issue #108 with the FakeTransaction.hash() function by reverting the introduced signature handling changes in Fake transaction hash creation from PR #94 introduced in v1.3.5. The signature is now again only created and added to the hash when from address is set and from is not defaulting to the zero adress any more, see PR #110
  • Added additional tests to cover issue described above

1.3.5 - 2018-06-22

  • Include signature by default in FakeTransaction.hash, PR #97
  • Fix FakeTransaction signature failure bug, PR #94

1.3.4 - 2018-03-06

  • Fix a bug producing hash collisions on FakeTransaction for different senders, PR #81
  • Switched from deprecated es2015 to env babel preset, PR #86
  • Dropped Node 4 support

1.3.3 - 2017-07-12

  • Allow zeros in v,r,s signature values
  • Dropped browserify transform from package.json
  • (combined v1.3.3 and v1.3.2 release notes)

1.3.1 - 2017-05-13

  • Added ES5 build

1.3.0 - 2017-04-24

  • EIP155: allow v value to be greater than one byte (replay attack protection)
  • Added browserify ES2015 transform to package.json
  • Improved documentation
  • (combined v1.3.0, v1.2.5 and v1.2.4 release notes)

1.2.3 - 2017-01-30

  • EIP155 hash implementation
  • README example and doc fixes

1.2.2 - 2016-12-15

  • Moved chainId param to txParams, parse sig for chainId (EIP155 refactor)
  • Test improvements
  • (combined v1.2.2 and v1.2.1 release notes)

1.2.0 - 2016-12-14

  • Added EIP155 changes
  • Renamed chain_id to chainId
  • Node 4/5 compatibility
  • ES6 standards

Older releases: