如何在Solidity静态调用中硬编码bytes类型数据?
Solidity静态调用硬编码bytes数据的正确写法
你之前的两种写法都存在问题:
bytes memory data = "0xfeaf968c";:这种写法会将字符串的每个字符单独编码为字节,最终得到的是0x30786665616639363863,和你实际需要的0xfeaf968c字节序列完全不符。bytes memory data = \xfeaf968c";:这属于语法错误,Solidity不支持这种转义格式。
正确的硬编码方式是使用hex前缀直接指定十六进制字节数据:
bytes memory data = hex"feaf968c";
这样初始化得到的data就是你需要的0xfeaf968c字节序列,用于静态调用时即可正常运行。
内容的提问来源于stack exchange,提问作者Matt Jaf
相关产品推荐
相关产品推荐

