原先以为部署合约会自动把 abi 也部署上去,后来发现两者是可以分开的。那部署 abi 与否的目的是什么呢?
现在我直观的感受上是在 microscope 的 contract 页面会出现 contract panel,然后在里面可以 call 方法。
abi 是不是都应该部署到链上?
我能想到的有:
-
作为在链上提供智能合适库的用户,他除了发布合约地址之外,还将其合约对应的 ABI 部署上去;那么对于他的用户来说,就可以直接从链上获得合约提供的 ABI 进行调用。
-
在 Microscope 上的 Data 区可以看到交易参数解析后的结果。你可以看一下下面的这个 talk:
上链数据怎么在浏览器显示 -
放到链上,不容易丢失或者所发布的 ABI 与所部署智能合能不对应的情况。