Lightweight utility for decoding function parameters from Ethereum transactions.
-
Minimal dependencies.
-
Find the exact function parameters that triggered an event.
npm i ethereum-tx-decoder
Decode raw transactions into an Object.
var txDecoder = require('ethereum-tx-decoder');
// transaction.raw = '0x...'
var decodedTx = txDecoder.decodeTx(transaction.raw);
// {
// nonce: Number
// gasPrice: BigNumber
// gasLimit: BigNumber
// to: string (hex)
// value: BigNumber
// data: string (hex)
// v: Number
// r: string (hex)
// s: string (hex)
// }
Need to know from
or chainId
? Use ethers.Wallet.parseTransaction()
instead.
Decode function call data into the original parameter values.
New instance with ethers.Contract
:
// contract = new Contract(address, abi, provider)
var fnDecoder = new txDecoder.FunctionDecoder(contract.interface);
// Internally creates an ethers.Interface object.
var fnDecoder = new txDecoder.FunctionDecoder(abi);
fnDecoder.decodeFn(decodedTx.data);
// Result {
// ...All function parameters indexed by both name and position...
// }
Note: decodeFn()
returns an Arrayish
.
Shortcut for decoding a function from transaction.
fnDecoder.decodeFnFromTx(transaction.raw);