我想找一个已部署但未验证的合约ABI~有api可以找到已验证的合约ABI,但不支持未验证的。有没有办法找到已部署但未验证的合约ABI~比如BSC上的这个合约0x9447e3eD2A23572F7Be359216321f7e67B364BaC
您可以循环遍历开采的区块及其交易,并搜索没有
to
值和具有 contractAddress
值的交易收据。
for (let blockNumber = 13188112; blockNumber < 13188113; blockNumber++) {
const block = await web3.eth.getBlock(blockNumber);
for (let txHash of block.transactions) {
const receipt = await web3.eth.getTransactionReceipt(txHash);
if (receipt.to === null && receipt.contractAddress !== undefined) {
// found a contract-creating transaction
console.log(receipt.contractAddress);
}
}
}
您可以扩展此代码来查询 BSCScan API,以查明合约地址是否在其网站上经过验证。
ContractCompanion 项目使用不同的包和库从原始字节码对未经验证的合约的 ABI 进行逆向工程。该项目还具有一个前端界面,用于与未经验证的合约进行交互。