ethereum-tx-decoder
Version:
Lightweight utility for decoding function parameters from Ethereum transactions.
81 lines (54 loc) • 2.2 kB
Markdown
//badge.fury.io/js/ethereum-tx-decoder.svg)](https://badge.fury.io/js/ethereum-tx-decoder)[](https://travis-ci.org/GFJHogue/ethereum-tx-decoder)
Lightweight utility for decoding function parameters from Ethereum transactions.
- Minimal dependencies.
- Find the exact function parameters that triggered an event.
- _[Built with ethers.js by ricmoo](https://github.com/ethers-io/ethers.js/)_.
`npm i ethereum-tx-decoder`
Decode raw transactions into an Object.
```js
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()`](https://docs.ethers.io/ethers.js/html/api-wallet.html#parsing-transactions) instead.
Decode function call data into the original parameter values.
```js
// contract = new Contract(address, abi, provider)
var fnDecoder = new txDecoder.FunctionDecoder(contract.interface);
```
```js
// Internally creates an ethers.Interface object.
var fnDecoder = new txDecoder.FunctionDecoder(abi);
```
```js
fnDecoder.decodeFn(decodedTx.data);
// Result {
// ...All function parameters indexed by both name and position...
// }
```
Note: `decodeFn()` returns an [`Arrayish`](https://docs.ethers.io/ethers.js/html/api-utils.html#api-arrayish).
Shortcut for decoding a function from transaction.
```js
fnDecoder.decodeFnFromTx(transaction.raw);
```
[ ](https://docs.ethers.io/ethers.js/html/api-utils.html#big-numbers)
[![npm version](https: