如何获取ETH或BSC未验证合约ABI

问题描述 投票:0回答:2

我想找一个已部署但未验证的合约ABI~有api可以找到已验证的合约ABI,但不支持未验证的。有没有办法找到已部署但未验证的合约ABI~比如BSC上的这个合约0x9447e3eD2A23572F7Be359216321f7e67B364BaC

ethereum solidity web3js bep20
2个回答
0
投票

您可以循环遍历开采的区块及其交易,并搜索没有

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,以查明合约地址是否在其网站上经过验证。


0
投票

ContractCompanion 项目使用不同的包和库从原始字节码对未经验证的合约的 ABI 进行逆向工程。该项目还具有一个前端界面,用于与未经验证的合约进行交互。

https://github.com/DOBEN/ContractCompanion

https://deployment-vercel-dqhc.vercel.app/

© www.soinside.com 2019 - 2024. All rights reserved.