Skip to content

OTP-003: 自我 ABI 报告

该提案定义了如何使用 IPFS 链接报告合约的 ABI。

动机

通常,ABI 是通过第三方服务或 GitHub 上的某个仓库单独提供的。该提案建议使用指向 IPFS 的链接添加新的合约自我报告 ABI 的方法。这将使我们避免任何第三方依赖,并允许任何人构建依赖 ABI 的工具,如浏览器、钱包等。

规范

为了支持该提案,合约应实现 OTP-001 并报告接口 org.ton.abi.ipfs.v0。然后实现一个 get_abi_ipfs 的 get 方法,该方法返回一个包含 IPFS 链接的字符串。该链接应为 ipfs://<hash> 格式。

示例:

solidity
(string) get_abi_ipfs() {
    return "ipfs://<hash>";
}

缺点

没有办法在不更新合约的情况下升级 ABI。这一缺点仅存在于硬编码链接的情况下。