SuperAPI AI 工具集

contract

智能体与模型

查看项目

更新于 10-30 07:59

技能介绍

用途 该技能旨在让 Claude 帮助用户在 EVM 兼容网络上读写智能合约。它面向需要查看链上合约数据、调用只读函数、发送状态变更交易,或确认某地址是否为合约的场景。

主要能力

  • 地址类型判断:通过读取字节码区分合约与外部账户(EOA)。
  • 读取合约数据:调用 view/pure 只读函数,例如读取 ERC20 的 name、symbol、decimals、totalSupply。
  • 写入合约:调用会修改链上状态的函数,需要 gas,发送后等待交易回执确认。
  • MCP 工具:提供 is_contract(判断地址类型)、read_contract(调用只读函数)、write_contract(调用状态变更函数)三个工具。
  • 批量读取:使用 multicall 在一次调用中读取多个值。
  • 交易模拟:发送前用 simulateContract 检查交易是否会成功。
  • 数据编解码:使用 encodeFunctionData 编码函数调用、decodeFunctionData 解码交易输入数据。
  • ABI 处理:支持最小 ABI 和人类可读 ABI(parseAbi)。

使用方式 资料中的示例基于 viem 库,网络以 bsc 为例。读取数据使用 createPublicClient 与 readContract;写入使用 createWalletClient 与 writeContract,并用 publicClient.waitForTransactionReceipt 等待确认。ABI 可以只包含所需函数,或以人类可读字符串形式传入。

安全提醒 资料建议在交互前到区块浏览器验证合约源码,仔细审查要签名的函数调用,先在测试网测试,谨慎处理无限授权,并注意代理合约的实现可能与表面不同。错误处理部分区分了 execution reverted(检查输入)与 ABI 不匹配等情况。

适用场景与限制 适用于 ERC20 类代币信息读取、自定义合约函数调用、交易数据解析与编码等。限制方面:资料仅基于 viem 演示,未提供其他语言或库的用法;未说明支持的完整网络清单、收费、价格或性能数据;实际使用需自行准备 RPC 与私钥等配置。