A simple module for creating, manipulating and signing Ethereum transactions.
Scrollback or #ethereumjs on freenode
npm install ethereumjs-tx
var Tx = require('ethereumjs-tx');
var privateKey = new Buffer('e331b6d69882b4cb4ea581d88e0b604039a3de5967688d3dcffdd2270c0fd109', 'hex');
var rawTx = {
nonce: '00',
gasPrice: '09184e72a000',
gasLimit: '2710',
to: '0000000000000000000000000000000000000000',
value: '00',
data: '7f7465737432000000000000000000000000000000000000000000000000000000600057'
};
var tx = new Tx(rawTx);
tx.sign(privateKey);
var serializedTx = tx.serialize();Transactionnew Transaction([data])TransactionPropertiesTransactionMethodstransaction.serialize()transaction.hash([signature])transaction.sign(privateKey)transaction.getSenderAddress()transaction.getSenderPublicKey()transaction.validate()transaction.validateSignature()transaction.getDataFee()transaction.getBaseFee()transaction.getUpfrontCost()transaction.toJSON([object])
Implements schema and functions relating to Ethereum transactions
Creates a new transaction object
data- a transaction can be initiailized with either abuffercontaining the RLP serialized transaction or anarrayof buffers relating to each of the tx Properties, listed in order below. For example.
var rawTx = {
nonce: '00',
gasPrice: '09184e72a000',
gasLimit: '2710',
to: '0000000000000000000000000000000000000000',
value: '00',
data: '7f7465737432000000000000000000000000000000000000000000000000000000600057',
v: '1c',
r: '5e1d3a76fbf824220eafc8c79ad578ad2b67d01b0c2425eb1f1347e8f50882ab',
s '5bd428537f05f9830e93792f90ea6a3e2d1ee84952dd96edbae9f658f831ab13'
};
var tx = new Transaction(rawTx);Or lastly an Object containing the Properties of the transaction like in the Usage example
For Object and Arrays each of the elements can either be a Buffer, hex String , Number, or an object with a toBuffer method such as Bignum
raw- The raw rlp decoded transaction.nonceto- the to addressvalue- the amount of ether sentdata- this will contain thedataof the message or theinitof a contract.v- EC signature parameterr- EC signature parameters- EC recovery ID
Returns the RLP serialization of the transaction
Return: 32 Byte Buffer
Returns the SHA3-256 hash of the rlp transaction
Parameters
signature- aBooleandetermining if to include the signature components of the transaction. Defaults to true.
Return: 32 Byte Buffer
Signs the transaction with the given privateKey.
Parameters
privateKey- a 32 ByteBuffer
Returns the senders address
Return: 20 Byte Buffer
returns the public key of the sender
Return: Buffer
Determines if the transaction is schematicly valid by checking its signature and gasCost.
Return: Boolean
Determines if the signature is valid
Return: Boolean
Returns the amount of gas to be paid for the data in this transaction
Return: bn.js
Returns the minimum amount of gas the tx must have (DataFee + TxFee)
Return: bn.js
The total amount needed in the account of the sender for the transaction to be valid
Return: bn.js
Returns transaction as JSON
Parameters
object- aBooleanthat defaults to false. Ifobjectis true then this will return an object else it will return anarray
Return: Object or Array
test uses mocha. To run
npm test