首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混合IDE: Calldata和Transact Tab的用途是什么?

混合IDE: Calldata和Transact Tab的用途是什么?
EN

Ethereum用户
提问于 2020-02-11 00:09:56
回答 1查看 3.3K关注 0票数 5

我试图在Remix上执行以下代码。

代码语言:javascript
复制
pragma solidity ^0.5.4;
contract GuessTheNumberChallenge {
    constructor() public payable {
        require(msg.value == 1 ether);
    }
    function () external payable {}

}

它显示了Calldata框和Transact选项卡,如图中所示。如果我在call data框中键入10并单击transact,则得到以下事务收据:

vmfrom:0xca3...a733cto:GuessTheNumberChallenge.(fallback) 0x692.77b3value:0 weidata: 0x10 log:0xe19.310b7状态0x1事务挖掘和执行成功事务散列0xe199a02ea06f556f01175fb3e5726c60a30aee092b86f92ca72e6429fdf310b7从0xca35b7d715458ef540ade6068dfe2f44e8fa733c到GuessTheNumberChallenge(回退)0x692a70d2e424a56d2c6c27a97d1a86395877b3a天然气事务费用21086气体执行成本18 gas 0xe199a02ea06f556f01175fb3e5726c60a30aee092b86f92ca72e6429fdf310b7输入0x10解码输出-日志[]

我不明白以下几点:

vmfrom:0xca3...a733cto:GuessTheNumberChallenge.(fallback) 0x692.77b3value:0 weidata:0x10:0散列:0xe 19.310b7

如果我键入"10以太“,我将得到消息”十六进制值所需“--0的意思是:0x10日志:0是用于传输以太的Calldata和Transact吗?还是和地址有关?

谁来指点我。

祖尔菲。

EN

回答 1

Ethereum用户

回答已采纳

发布于 2020-02-11 00:48:08

以太交易遵循一定的低层次结构:

  • 出发地:地址(由此签名)
  • 地址:地址
  • 价值: uint (乙醚)
  • 数据:消息数据字节

data的前四个字节是一个函数选择器,其中选择器来自函数名(源代码)和参数的散列,截断为四个字节。在那之后,出现了争论。当EVM到达时,所有这些都是解压缩的,因此EVM知道要运行哪个函数和输入参数。

Remix是使用源代码计算出友好的函数界面,上面列出了每个函数的名称,参数被接受并方便地打包到调用数据中。

还可以自己创建消息数据(通过其他方法),并使用calldata发送原始事务数据。

希望能帮上忙。

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

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

复制
相关文章

相似问题

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