我有methodID我有"to"..。我还需要什么?它是如何由包/客户端产生的,它是如何被广播的?我似乎发现自己身处地狱,没有人真正知道下面叫什么,这很简单.
要单击以太扫描上的Read Contract,实际上发送了哪些呼叫数据?它们是如何产生的?哪个节点发送它并为我获取它?有办法提取吗?
我一直在查看docs、其他线程,这些方法要么已有5年历史,要么只返回methodID,但是,我希望看到整个低级别的调用如火如荼地进行。
发布于 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
https://ethereum.stackexchange.com/questions/128259
复制相似问题