小编Aas*_*ali的帖子

在发送到以太坊网络之前,智能合约函数的输入数据如何打包成十六进制字符串

我想了解这一点以解析来自私有链交易的数据并获取为特定交易发送的输入数据,我尝试了许多解码器,但在某些时候,它们失败了。这是我尝试使用 remix 的简单智能合约

   contract simple{

     uint256 deliveryID;
     string status;
     function stringAndUint(string _status,uint256 _deliveryID){
               status=_status;
               deliveryID=_deliveryID;
     }

    } 
Run Code Online (Sandbox Code Playgroud)

产生的输入数据: - 0x3c38b7fd0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000067374617475730000000000000000000000000000000000000000000000000000

我可以从上面解释以下内容。

  • 函数签名:0x3c38b7fd
  • _状态值:737461747573,
  • _deliveryID:0c 但我不知道为什么 737461747573 之前有 4 个和额外的 6 个。
  • 函数“stringAndUint”的输入是:“status”,12有人能帮我理解输入数据是如何生成的,并以一个长的十六进制字符串分组

ethereum

1
推荐指数
1
解决办法
1455
查看次数

标签 统计

ethereum ×1