风险提示:央行等十部委发布《关于进一步防范和处置虚拟货币交易炒作风险的通知》, 请读者提高风险意识。

长推:半开源合约的 Web3 调用

某些智能合约没有在 etherscan 验证源代码,也就无法轻易获取其 ABI,针对这样的“半开源”合约,可以有一些简单的方法,实现 Web3 调用

gm365
gm365
热度 ...

原文作者:gm365

原文来源:twitter

注:本文来自@gm365 推特,CHAINLOOK整理如下:

半开源合约的 Web3 调用

某些智能合约没有在 etherscan 验证源代码,也就无法轻易获取其 ABI

但“诡异”的是,调用某些合约函数,却可以在网页上完整显示调用的函数名、参数名、具体参数值

针对这样的“半开源”合约,可以有一些简单的方法,实现 Web3 调用

前言

之前写过一个,关于《未开源智能合约的调用》,方法主要是在网站前端扒拉 JS 代码,定位到 ABI 代码,然后实现调用

https://twitter.com/gm365/status/1521058983838380032

这个方法当然可以用来实现“半开源”合约调用,但这个方法实在有些反人类,疯狂扒拉JS代码也很费眼神,我们暂时先跳过

etherscan

etherscan 显示机制

没有开源的合约,为何可以在 etherscan 显示详细的调用参数信息(小狐狸钱包也能显示)?

其实秘密都在这个 4 bytes signature 上

如果其他已开源合约有相同的“签名”,那么面对一个未开源合约,但签名相同的函数,etherscan和小狐狸会直接判定为同一函数并尝试解析

etherscan

解决方案

关于【长推:半开源合约的 Web3 调用】的延伸阅读

针对这类能被正常显示的函数,其实有一个相对简单的方法:

通过函数信息反向生成 ABI 代码

15行代码,代码出自人类好帮手:chatGPT 4

经过测试与对照,和原始 ABI 一字不差(当然,output 可能有区别,但不影响使用)

etherscan

etherscan

etherscan

签名库

如果 etherscan 上未显示,还可以先去这个签名库碰碰运气

https://4byte.directory/signatures/

注意:这个4四节签名是有可能重名的!某些小狐狸钓鱼合约,使用的就是这个“漏洞”。

同一个签名,可能对应多个函数,正常使用还得自行判断

etherscan

免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:gm365,如有侵权请联系删除。转载或引用请注明文章出处!

标签:

分享至
https://www.chainlook.cn/toutiao/1691125396.html

下一篇:

再质押:不怕它们失败,就怕它们成功

以太坊的长期挑战不是让更多人去质押,而是让更少人去质押。

免责声明:
链观CHAINLOOK作为区块链技术应用与Web3行业研究的智库媒体,旨在为中国区块链专家、学者们提供最新的行业资讯信息与数据样本,用于区块链技术研究与创新。本站所发布的文章仅代表作者的个人观点,不代表链观CHAINLOOK官方立场,本站所发布的区块链行业研究报告与数据分析成果是通过人工智能算法对数据内容进行分析与归纳生成,不代表任何投资暗示与建议,链观CHAINLOOK不承担法律责任。

风险提示:
虚拟货币不具有法定货币等同的法律地位,参与虚拟货币投资交易存在法律风险,链观CHAINLOOK坚决反对各类代币炒作,请读者提高风险意识,理性看待区块链技术应用及市场风险。

© 链观CHAINLOOK All Rights Reserved. 京ICP备18054193号-5