Skip to content

Latest commit

 

History

History
149 lines (114 loc) · 3.71 KB

README.md

File metadata and controls

149 lines (114 loc) · 3.71 KB

tron-tx-decoder

JavaScript Style Guide npm License: 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.

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

Installation

npm i @beycan/tron-tx-decoder

Initialization

const TronTxDecoder = require('@beycan/tron-tx-decoder');

const decoder = new TronTxDecoder(node /* https://api.trongrid.io */);

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 Logs:

Decode function input parameters by passing transaction id.

async function decodeLogsByTxId(txId){
    return await decoder.decodeLogsById(txId);
}

decodeLogsByTxId("0c739761b34a891b3bbecd528302de827736660d76c62dacf8d3a9ebe7dade08");

Output:

{ 
    eventName: 'Transfer',
    logNames: [ 'from', 'to', 'value' ],
    logTypes: [ 'address', 'address', 'uint256' ],
    decodedLogs: { 
        '0': BigNumber { _hex: '0x265aa6' },
        _length: 1
    }
}

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.

Changelog

Licence

MIT