UNPKG

noob-ethereum

Version:
39 lines (38 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.standardizeBlock = void 0; const utils_1 = require("../utils"); /** * Return gas utilisation ratio for the block * @param {number} used - gas used (cummulative gas used by txs included in block) * @param {number} limit - gas limit (according to block received) * @returns {number} - percentage-readable value by default (e.g. 97% therefore 0.97) */ function gasUsedRatio(used, limit = '0x0') { const num = (0, utils_1.decimal)(used); const den = (0, utils_1.decimal)(limit); const ratio = Math.floor((num / den) * 100); return +(ratio * 0.01).toFixed(2); } function getERC20Value(input, decimals) { const address = '0x' + input.slice(2).slice(8).slice(24, -64); const value = input.slice(2).slice(8).slice(24).slice(40); const amount = parseInt(value, 16) * Math.pow(10, -1 * decimals); return [address, JSON.stringify(amount)]; } function standardizeBlock(block, verbose = false) { const standardized = { gasLimit: (0, utils_1.decimal)(block.gasLimit), gasUsed: (0, utils_1.decimal)(block.gasUsed), nonce: (0, utils_1.decimal)(block.nonce), number: (0, utils_1.decimal)(block.number), size: (0, utils_1.decimal)(block.size), timestamp: (0, utils_1.toISO)((0, utils_1.decimal)(block.timestamp)), uncles: block.uncles, gasUtilizationRatio: gasUsedRatio(block.gasUsed, block.gasLimit), txCount: block.transactions.length, basefee: (0, utils_1.toGwei)(block.baseFeePerGas, 'wei'), }; return standardized; } exports.standardizeBlock = standardizeBlock;