tron-tx-decoder-tronweb

Lightweight utility for decoding function parameters and function output from Tron blockchain transactions.

Usage no npm install needed!

<script type="module">
  import tronTxDecoderTronweb from 'https://cdn.skypack.dev/tron-tx-decoder-tronweb';
</script>

README

tron-tx-decoder-tronweb

JavaScript Style Guide npm npm bundle size License: MIT

Demo: https://tron-decoder.github.io

Installation

npm i tron-tx-decoder-tronweb

Initialization

const TronTxDecoder = require('tron-tx-decoder-tronweb');
const Tronweb = require('tronweb');

const tronweb = new TronWeb({
    network: 'shasta',
    fullHost: 'https://api.shasta.trongrid.io',
    apiUrl: 'https://shastapi.tronscan.org/api',
    eventServer: 'https://api.shasta.trongrid.io',
    privateKey: 'PRIVATE_HERE',
    headers: { 'TRON-PRO-API-KEY': 'API KEY FROM trongrid.io' },
});

const decoder = new TronTxDecoder({ tronweb });

Decode Input:

Decode function input parameters by passing transaction id.

async function decodeTxInput(txId){
    const decodedInput = await decoder.decodeInputById(txId);
    return decodedInput;
}

decodeTxInput("0c739761b34a891b3bbecd528302de827736660d76c62dacf8d3a9ebe7dade08");

Output:

{ 
    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 Output:

Decode function outputs by passing transaction id.

async function decodeTxOutput(txId){
    const decodedOutput = await decoder.decodeResultById(txId);
    return decodedOutput;
}

decodeTxOutput("0c739761b34a891b3bbecd528302de827736660d76c62dacf8d3a9ebe7dade08");

Output:

{ 
    methodName: 'submitTheGame',
    outputNames: [ null, null ],
    outputTypes: [ 'uint256', 'uint256' ],
    decodedOutput: { 
        '0': BigNumber { _hex: '0x265aa6' },
        '1': BigNumber { _hex: '0x0615ec20' },
        _length: 2 
    }
}

Decode Revert Message (if any):

Decode function outputs by passing transaction id.

async function decodeRevertMessage(txId){
    const decodedMessage = await decoder.decodeRevertMessage(txId);
    return decodedMessage;
}

decodeRevertMessage("5d6db71f3316a2abdf7f08f97cd42880209ee7344816d404ce865a8679bdb7ae");

Output:

{ 
    txStatus: 'REVERT',
    revertMessage: 'Plot is not currently owned' 
}

BigNumber

Contributing

  • Issues & Pull requests are welcome! Fork, branch, and submit PR.