diff --git a/src/opCodeFinder.js b/src/opCodeFinder.js index b9bb8c2..b8385c5 100644 --- a/src/opCodeFinder.js +++ b/src/opCodeFinder.js @@ -72,12 +72,18 @@ async function findContracts(startBlockNumber, endBlockNumber) { ); let block = await web3.eth.getBlock(i); if (block != null) { - if (block.transactions != null && block.transactions.length != 0) { + if (block.transactions != null) { let blockFinishedCount = block.transactions.length; - //srarch for contract address in each transaction + //search for type of "CREATE" in each transaction for (let txHash of block.transactions) { - let receipt = await web3.eth.getTransactionReceipt(txHash); - if (receipt && receipt.contractAddress) { + let traceObject = await web3.eth.currentProvider.sendAsync({ + method: "debug_traceTransaction", + params: [`${txHash}`, { tracer: "callTracer" }], + jsonrpc: "2.0", + id: "1", + }); + if (traceObject.result.type === "CREATE") { + let receipt = await web3.eth.getTransactionReceipt(txHash); getContractBytecode(receipt.contractAddress); contractCount++; }