Releases: ethereumjs/ethereumjs-tx
v2.1.2 - MuirGlacier Support
v2.1.1 - Istanbul Support (EIP-2028)
v2.1.0 - Testnet + Custom/Private Network Support
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 (https://github.com/ethereumjs/ethereumjs-common/blob/9e624f86107cea904d8171524130d92c99bf9302/src/index.ts).
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.
v2.0.0 - TypeScript / HF Support / EIP-155
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 (https://github.com/ethereumjs/ethereumjs-tx/blob/master/docs/interfaces/transactionoptions.md) for information on instantiation and default values (current hardfork default: petersburg
).
API Changes:
- Removal of the
data.chainId
parameter, use theopts.chain
parameter or a customCommon
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 instantiation or changed on runtime are handled:
- The constructor throws if the
v
value is present, indicates thatEIP-155
was enabled, and the chain id it indicates doesn't match the one of the internalcommon
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.
v1.3.7 - Bugfix Release
- Fix bug causing
FakeTransaction.from
to not retrieve sender address from tx signature, see PR #118
v1.3.6 - Bugfix Release
- Fixes issue #108 with the
FakeTransaction.hash()
function by reverting the introduced signature handling changes in Fake transaction hash creation from PR #94 introduced inv1.3.5
. The signature is now again only created and added to the hash whenfrom
address is set andfrom
is not defaulting to the zero adress any more, see PR #110 - Added additional tests to cover issue described above
v1.3.5 - Bug Fix Release
v1.3.4 - Bug Fix Release
v1.3.3 - Bugfix/Maintenance Release
- Allow zeros in
v
,r
,s
signature values - Dropped
browserify
transform frompackage.json
- (combined v1.3.3 and v1.3.2 release notes)