tron-tx-decoder
Version:
Lightweight utility for decoding function parameters and function output from Tron blocklchain transactions.
127 lines (93 loc) • 3.37 kB
Markdown
<p align="center">
<img src="https://tron.network/static/images/logo.png" width=400 />
</p>
[](https://standardjs.com)   [](https://opensource.org/licenses/MIT)
Lightweight utility for decoding function parameters and function output from Tron blocklchain transactions.
- Minimal dependencies.
- Decode method name used by specific Transaction Id.
- Find the input parameter passed to function by Transaction Id.
- Find the exact output returned from the function by Transaction Id.
- _[Built with ethers.js](https://github.com/ethers-io/ethers.js/)_.
**Demo:** [https://tron-decoder.github.io](https://tron-decoder.github.io/)
```bash
npm i tron-tx-decoder
```
```js
const TronTxDecoder = require('tron-tx-decoder');
const decoder = new TronTxDecoder({ mainnet: true });
// { mainnet: false } for testnet
```
Decode function input parameters by passing transaction id.
```js
async function decodeTxInput(txId){
const decodedInput = await decoder.decodeInputById(txId);
return decodedInput;
}
decodeTxInput("0c739761b34a891b3bbecd528302de827736660d76c62dacf8d3a9ebe7dade08");
```
```js
{
methodName: 'submitTheGame',
inputNames: [ '_betId', 'freshHouseSeed', 'rollResult', '_gameOutcome' ],
inputTypes: [ 'uint256', 'address', 'uint8', 'uint8' ],
decodedInput: {
'0': BigNumber { _hex: '0x265aa6' },
'1': '0x8F476d1155E9910A885Cae1c4396BDD392c3883E',
'2': 11,
'3': 1,
_length: 4
}
}
```
Decode function outputs by passing transaction id.
```js
async function decodeTxOutput(txId){
const decodedOutput = await decoder.decodeResultById(txId);
return decodedOutput;
}
decodeTxOutput("0c739761b34a891b3bbecd528302de827736660d76c62dacf8d3a9ebe7dade08");
```
```js
{
methodName: 'submitTheGame',
outputNames: [ null, null ],
outputTypes: [ 'uint256', 'uint256' ],
decodedOutput: {
'0': BigNumber { _hex: '0x265aa6' },
'1': BigNumber { _hex: '0x0615ec20' },
_length: 2
}
}
```
Decode function outputs by passing transaction id.
```js
async function decodeRevertMessage(txId){
const decodedMessage = await decoder.decodeRevertMessage(txId);
return decodedMessage;
}
decodeRevertMessage("5d6db71f3316a2abdf7f08f97cd42880209ee7344816d404ce865a8679bdb7ae");
```
```js
{
txStatus: 'REVERT',
revertMessage: 'Plot is not currently owned'
}
```
- BigNumber can be converted to number using ***prototype*** .toNumber(). Which return a JavaScript number of the value.
- [BigNumber Documentation (ethers.js)](https://docs.ethers.io/ethers.js/html/api-utils.html#big-numbers)
## Contributing
- Issues & Pull requests are welcome! Fork, branch, and submit PR.
## Changelog
- [Changelog](https://github.com/meetsiraja/tron-tx-decoder/blob/master/CHANGELOG.md)
## Licence
[MIT](https://github.com/meetsiraja/tron-tx-decoder/blob/master/LICENCE.md)