UNPKG

deth

Version:

Ethereum node focused on Developer Experience

63 lines (62 loc) 2.59 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const primitives_1 = require("../primitives"); const bn_js_1 = __importDefault(require("bn.js")); function getReceiptsAndResponses(block, transactions, results) { const blockHash = primitives_1.bufferToHash(block.hash()); const blockNumber = primitives_1.bufferToQuantity(block.header.number); let cumulativeGasUsed = new bn_js_1.default(0); const responses = []; const receipts = []; for (let i = 0; i < transactions.length; i++) { const tx = transactions[i]; const result = results[i]; const hash = primitives_1.bufferToHash(tx.hash()); const from = primitives_1.bufferToAddress(tx.getSenderAddress()); const to = primitives_1.bufferToMaybeAddress(tx.to); const created = primitives_1.bufferToMaybeAddress(result.createdAddress); const gasUsed = new bn_js_1.default(result.gasUsed); cumulativeGasUsed = cumulativeGasUsed.add(gasUsed); const transactionIndex = primitives_1.numberToQuantity(i); responses.push({ hash, blockHash, blockNumber, transactionIndex, from, gasPrice: primitives_1.bufferToQuantity(tx.gasPrice), gas: primitives_1.bufferToQuantity(tx.gasLimit), to, value: primitives_1.bufferToQuantity(tx.value), nonce: primitives_1.bufferToQuantity(tx.nonce), input: primitives_1.bufferToHexData(tx.data), r: primitives_1.bufferToQuantity(tx.r), s: primitives_1.bufferToQuantity(tx.s), v: primitives_1.bufferToQuantity(tx.v), }); // result.execResult.logs // TODO: correct format const logs = []; receipts.push({ blockHash, blockNumber, cumulativeGasUsed: primitives_1.bnToQuantity(cumulativeGasUsed), gasUsed: primitives_1.bnToQuantity(gasUsed), logs, transactionHash: hash, transactionIndex, contractAddress: created, from, to, logsBloom: primitives_1.bufferToHexData(result.bloom.bitvector), status: primitives_1.numberToQuantity(result.execResult.exceptionError ? 0 : 1), }); } return { receipts, responses, }; } exports.getReceiptsAndResponses = getReceiptsAndResponses;