Appearance
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。这一缺点仅存在于硬编码链接的情况下。