const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
const getBlockReceipts = async (blockNumber) => {
const receipts = await provider.send("eth_getBlockReceipts", [blockNumber]);
console.log(`Block ${blockNumber}: ${receipts.length} transactions`);
let totalGasUsed = 0n;
let successCount = 0;
let failCount = 0;
for (const receipt of receipts) {
const gasUsed = BigInt(receipt.gasUsed);
totalGasUsed += gasUsed;
if (receipt.status === "0x1") {
successCount++;
} else {
failCount++;
}
console.log(`\nTx ${receipt.transactionIndex}: ${receipt.transactionHash}`);
console.log(` Status: ${receipt.status === "0x1" ? "Success" : "Failed"}`);
console.log(` Gas Used: ${gasUsed}`);
console.log(` Logs: ${receipt.logs.length}`);
// Tempo-specific fields
if (receipt.feeToken) {
console.log(` Fee Token: ${receipt.feeToken}`);
}
if (receipt.feePayer) {
console.log(` Fee Payer: ${receipt.feePayer}`);
}
}
console.log(`\n--- Summary ---`);
console.log(`Total transactions: ${receipts.length}`);
console.log(`Successful: ${successCount}, Failed: ${failCount}`);
console.log(`Total gas used: ${totalGasUsed}`);
};
getBlockReceipts("latest");