首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构造/获取仅由web3客户端生成的调用的调用数据?

如何构造/获取仅由web3客户端生成的调用的调用数据?
EN

Ethereum用户
提问于 2022-05-15 17:16:51
回答 1查看 385关注 0票数 0

我有methodID我有"to"..。我还需要什么?它是如何由包/客户端产生的,它是如何被广播的?我似乎发现自己身处地狱,没有人真正知道下面叫什么,这很简单.

要单击以太扫描上的Read Contract,实际上发送了哪些呼叫数据?它们是如何产生的?哪个节点发送它并为我获取它?有办法提取吗?

我一直在查看docs、其他线程,这些方法要么已有5年历史,要么只返回methodID,但是,我希望看到整个低级别的调用如火如荼地进行。

EN

回答 1

Ethereum用户

发布于 2022-05-16 04:29:17

听起来,您需要首先了解Ethereum的一些基本原理,以及一些坚实的基础。从阅读米色纸(黄纸的简化版)开始,阅读坚实的文档(https://docs.soliditylang.org/en/latest/)。

我将给您一个快速的线索:"methodID“,我假设您指的是函数签名。在稳固性中,dispatcher基于函数签名哈希的前4个字节(例如,"transfer(address,uint256)“的前4个字节)工作。这4个字节称为“选择器”。选择器和参数根据外部调用& calldata (参见Solidity )进行编码,并通过" call“指令之一提交给EVM。

像Etherscan这样的工具使用了给定合同的"ABI“的json表示(IMHO )--这有点用词不当,但无论如何.由编译器生成,并在验证合同时提交给Etherscan。如果契约部署人员已经发布了这些信息,那么所有这些信息也可以在IPFS或Swarm上获得,并且IPFS/ see地址也可以作为附加到链上合同代码的几字节元数据(同样,请参阅Solidity )。

当您使用Etherscan上的“”选项卡时,Etherscan正在做的是使用json元数据中的ABI信息来理解如何“调用”标记为视图或纯的契约的函数,以显示这些返回值。

https://stackoverflow.com/questions/69186685/argument-calldata-type-encoding-in-solidity

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/128259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档