blockchain - 如何以编程方式部署和验证(公共源代码)以太坊智能合约?
问题描述
我想部署一个以太坊智能合约并验证(揭示)它的源代码。我可以以编程方式进行吗?
通常我会部署一个智能合约并在 etherscan.io 上进行验证。验证后会显示源代码。任务是我需要部署很多智能合约,但我无法手动验证它们。有没有办法或 API 上传 Solidity 代码以向公众展示智能合约代码?
虽然我猜答案是“不”,但仍然想听听任何想法。
提前致谢
解决方案
事实上,在撰写本文时,似乎没有公共端点可以执行此操作。在此处https://etherscan.io/apis或此处https://hexdocs.pm/etherscan/的 Etherscan 文档中没有提及此类合同验证端点
大约一个月前,有人在他们的subreddit上问同样的问题,但没有取得多大成功
EtherscanAre you a robot?
在验证时使用复选框 CAPTCHA。那个很难欺骗,不值得尝试。但是,您可以做的是使用 Selenium 对合同验证进行部分自动化。
假设您想以最少的努力验证 20 份合同。应该可以编写一个脚本,在浏览器中打开 20 个选项卡,每个选项卡都会转到 Etherscan,为其中一个合约输入适当的合约详细信息,然后让人工处理带有Are you a robot?
验证码的页面。
推荐阅读
- java - 如何使用 JPA 管理多个实体?
- sql - 为什么将工作查询限制为 WHERE ROWNUM <=10 会导致 EXPLAIN PLAN “ORA-12899: value too large for column”出错?
- javascript - Chrome 扩展:在 URL 更新时调用后台
- c# - 带有 MySQL 的 Windows 窗体 C# 实体框架 6
- java - 找不到 GlideApp
- android - React Native 0.57.7 - Android 构建在任务中失败:app:mergeReleaseResources
- javascript - 在 ReactJS 中,使用 Reactstrap,我希望我的警报保持在它开始的屏幕上的同一个位置
- java - 定制肥皂响应
- symfony - Symfony 4.2.3 - 用户注册电子邮件域时设置 ManyToOne Id
- spring-boot - 如何以编程方式获得 Start-Class?