https://github.com/ethereumjs/ethereumjs-tx
Project is in active development and has been moved to the EthereumJS VM monorepo.
https://github.com/ethereumjs/ethereumjs-tx
ethereum transactions
Last synced: 8 months ago
JSON representation
Project is in active development and has been moved to the EthereumJS VM monorepo.
- Host: GitHub
- URL: https://github.com/ethereumjs/ethereumjs-tx
- Owner: ethereumjs
- License: mpl-2.0
- Archived: true
- Created: 2015-06-05T21:57:18.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2020-04-06T12:50:10.000Z (over 5 years ago)
- Last Synced: 2024-11-22T05:07:18.609Z (8 months ago)
- Topics: ethereum, transactions
- Language: TypeScript
- Homepage: https://github.com/ethereumjs/ethereumjs-vm/tree/master/packages/tx
- Size: 1.12 MB
- Stars: 783
- Watchers: 60
- Forks: 237
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/contributing.md
- License: LICENSE
Awesome Lists containing this project
README
# SYNOPSIS
[](https://www.npmjs.org/package/ethereumjs-tx)
[](https://github.com/ethereumjs/ethereumjs-tx/actions)
[](https://coveralls.io/r/ethereumjs/ethereumjs-tx)
[](https://gitter.im/ethereum/ethereumjs-lib) or #ethereumjs on freenode# INSTALL
`npm install ethereumjs-tx`
# USAGE
- [example](https://github.com/ethereumjs/ethereumjs-tx/blob/master/examples/transactions.ts)
```javascript
const EthereumTx = require('ethereumjs-tx').Transaction
const privateKey = Buffer.from(
'e331b6d69882b4cb4ea581d88e0b604039a3de5967688d3dcffdd2270c0fd109',
'hex',
)const txParams = {
nonce: '0x00',
gasPrice: '0x09184e72a000',
gasLimit: '0x2710',
to: '0x0000000000000000000000000000000000000000',
value: '0x00',
data: '0x7f7465737432000000000000000000000000000000000000000000000000000000600057',
}// The second parameter is not necessary if these values are used
const tx = new EthereumTx(txParams, { chain: 'mainnet', hardfork: 'petersburg' })
tx.sign(privateKey)
const serializedTx = tx.serialize()
```# Chain and Hardfork Support
The `Transaction` and `FakeTransaction` constructors receives a second parameter that lets you specify the chain and hardfork
to be used. By default, `mainnet` and `petersburg` will be used.There are two ways of customizing these. The first one, as shown in the previous section, is by
using an object with `chain` and `hardfork` names. You can see en example of this in [./examples/ropsten-tx.ts](./examples/ropsten-tx.ts).The second option is by passing the option `common` set to an instance of [ethereumjs-common](https://github.com/ethereumjs/ethereumjs-common)' Common. This is specially useful for custom networks or chains/hardforks not yet supported by `ethereumjs-common`. You can see en example of this in [./examples/custom-chain-tx.ts](./examples/custom-chain-tx.ts).
## MuirGlacier Support
The `MuirGlacier` hardfork is supported by the library since the `v2.1.2` release.
## Istanbul Support
Support for reduced non-zero call data gas prices from the `Istanbul` hardfork
([EIP-2028](https://eips.ethereum.org/EIPS/eip-2028)) has been added to the library
along with the `v2.1.1` release.# EIP-155 support
`EIP-155` replay protection is activated since the `spuriousDragon` hardfork. To disable it, set the
hardfork in the `Transaction`'s constructor.# API
[./docs/](./docs/README.md)
# EthereumJS
See our organizational [documentation](https://ethereumjs.readthedocs.io) for an introduction to `EthereumJS` as well as information on current standards and best practices.
If you want to join for work or do improvements on the libraries have a look at our [contribution guidelines](https://ethereumjs.readthedocs.io/en/latest/contributing.html).
# LICENSE
[MPL-2.0]()