ethereum - 获取/猜测未验证合约的外部方法

标签 ethereum solidity web3js

如果未验证,是否有办法获取或猜测智能合约的外部(或公共(public))函数?

我使用事务历史记录来获取至少一次被调用的函数,但这非常慢。也许有办法从字节码或其他东西猜测?

最佳答案

您正在寻找的是字节码反编译器,以便您可以检索合约的 ABI。

由于字节码仅包含函数签名哈希 - 特别是函数签名哈希的最后 4 个字节 - 检索字节码的 ABI 是一个尝试和猜测的游戏。

幸运的是,有一些工具结合了不同的技术(交易历史、反编译、已知函数签名数据库等)来从字节码和地址“猜测”合约的 ABI。例如,看看 porosity , JEB Decompiler , mythril , Ethervm.io ,和whatsabi .

函数签名数据库:https://www.4byte.directory/signatures/

关于ethereum - 获取/猜测未验证合约的外部方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76324666/

相关文章:

java - 如何使用java从solidity合约中获取值(value)

javascript - Web3/元掩码 : Error: Contract has not been deployed to detected network (network/artifact mismatch) on Kovan network

blockchain - ERC721 - tokenURI 中提到的元数据 Assets 的真实性

ethereum - 获取错误 "creation of HelloWorld errored: TypeError: Cannot convert undefined or null to object"

javascript - 无法访问 Vue3JS Vite 项目中的流程变量

blockchain - Chainlink - 工作没有完成

mapping - 有没有办法重新初始化映射

javascript - Web3.js - 选项 http://localhost:8545/net::ERR_CONNECTION_REFUSED

node.js - 尝试过 npm install -g truffle 但出现此 gyp 错误