首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Etherscan中支持合约接口调用

如何在Etherscan中支持合约接口调用

作者头像
lambeta
发布2019-04-14 17:14:26
1.3K0
发布2019-04-14 17:14:26
举报
文章被收录于专栏:编舟记编舟记编舟记

期待结果

默认情况下,etherscan只能查看合约上发生的tx,无法调用合约方法。不过,etherscan提供verify contract功能,完成验证之后,可以读取和写入合约,即下图中Tab页签Read ContractWrite Contract

Contract Code

实现步骤

  1. 合并合约:将所有import导入的合约和库(library)都写到一个文件中
  2. 验证合约:进入verify contract页面,指定已部署合约地址和名称
  3. 编译合约:选择Compiler版本和优化方案

第一步比较繁琐,如果你使用了open-zeppelin之类的通用库,需要翻翻好多个目录才能把依赖的合约凑齐并放置在一个文件当中,而且特别要注意加上版本宏定义pragma solidity ^0.5.0;

第二步填入合约地址和名称,注意名称必须和源文件中的合约名称一致。etherscan会扫描出代码中所有的合约和库名称。可以说这里的名称就是寻常程序的main函数。

第三步是有一定窍门的,也是不好把握的地方。我的做法是先去查看truffle compile之后的json文件,比如此处的CacContract.json文件,搜索version关键字,定位到compiler处:

  "compiler": {
    "name": "solc",
    "version": "0.5.0+commit.1d4f565a.Emscripten.clang"
  }

这样大概就知道了编译器的版本。Optimization建议不要开启,否则编译好的二进制和部署上链的二进制有差异,源码验证就不能通过。

verify contract

最终方法验证

通过Read Contract扫描出来的方法,通过证书编号查询出证书内容:

Read Contract - Query certifications


于 2019-04-02

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 期待结果
  • 实现步骤
  • 最终方法验证
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档