给定一个函数setXY(uint256 x, uint256 y),如何将数据参数x和y编码到一个bytes data数组中,然后输入到abi.encodeWithSignature('setXY(uint256,uint256)', data)中?
醚有一个ABI编码器,允许根据数组类型编码数组值。这允许通过abiCoder.encode(['uint256', 'uint256'], ['1', '2'])将参数编码到bytes数组中。
但是,当data输入abi.encodeWithSignature或abi.encodeWithSelector时,会导致data被错误地读取,这可能是因为abi.encode为每个参数保留了前导零。
有什么办法能正确地做到这一点吗?
发布于 2021-11-01 16:04:16
您不能使用bytes data,因为它将被编码为一个数组,并且您希望对两个uint256进行编码。
uint256 x = 1324;
uint256 y = 4444;
abi.encodeWithSignature('setXY(uint256,uint256)', x, y);https://ethereum.stackexchange.com/questions/112562
复制相似问题