WhatsABI简介从EVM字节码中猜测出ABI(和其他元数据),即使没有源代码
从 EVM 字节码中猜测出 ABI(和其他元数据),即使没有源代码。Github
WhatsABI 在一些重要方面与其他 EVM 分析工具不同:
yarn add @shazow/whatsabi ethers
import { ethers } from "ethers";
import { whatsabi } from "@shazow/whatsabi";
// Or your fav contract address
const address = "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"; // USDC
let result = await whatsabi.autoload(address, {
provider: new ethers.getDefaultProvider(),
// * Optional loaders:
abiLoader: whatsabi.loaders.defaultABILoader,
signatureLoader: whatsabi.loaders.defaultSignatureLookup,
// * Optional hooks:
// onProgress: (phase: string) => { ... }
// onError: (phase: string, context: any) => { ... }
// * Optional settings:
followProxies: true,
// enableExperimentalMetadata: false,
});
console.log(result);
控制台将打印合约地址、abi 等数据
(完整项目见 whatsabi)
selectorsFromBytecode
: 从合约字节码中获取函数选择器abiFromBytecode
: 从合约字节码中获取 ABIloadFunctions
: 获取函数选择器匹配的函数签名loadEvents
: 获取函数选择器匹配的函数签名如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!