首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ABI编码的参数作为单个字节对象传递给abi.encodeWithSignature / abi.encodeWithSelector?

如何将ABI编码的参数作为单个字节对象传递给abi.encodeWithSignature / abi.encodeWithSelector?
EN

Ethereum用户
提问于 2021-10-30 22:43:25
回答 1查看 5.4K关注 0票数 4

给定一个函数setXY(uint256 x, uint256 y),如何将数据参数xy编码到一个bytes data数组中,然后输入到abi.encodeWithSignature('setXY(uint256,uint256)', data)中?

醚有一个ABI编码器,允许根据数组类型编码数组值。这允许通过abiCoder.encode(['uint256', 'uint256'], ['1', '2'])将参数编码到bytes数组中。

但是,当data输入abi.encodeWithSignatureabi.encodeWithSelector时,会导致data被错误地读取,这可能是因为abi.encode为每个参数保留了前导零。

有什么办法能正确地做到这一点吗?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2021-11-01 16:04:16

您不能使用bytes data,因为它将被编码为一个数组,并且您希望对两个uint256进行编码。

代码语言:javascript
复制
uint256 x = 1324;
uint256 y = 4444;
abi.encodeWithSignature('setXY(uint256,uint256)', x, y);
票数 10
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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