abi.encodePacked在web3中的等效性是什么?
我正在努力产生相当于(稳固)的东西。
keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", domainHash, functionHash));
用web3测试松露。
到目前为止我知道
keccack256 = web3.utils.soliditySha3
abi.encode = web3.eth.abi.encodeParameters
abi.encodePacked =?
发布于 2021-09-29 12:01:30
如果您有合同的ABI,您可以使用encodeABI。
如果您没有合同的ABI,那么您可以使用web3.eth.abi.encodeFunctionCall,或者结合其他一些from web3.eth.abi.*
函数。
您还可以使用实现此功能的以赛亚。
发布于 2022-04-13 19:50:12
in有一个名为encodePacked
的函数,它应该做您想做的事情。我在官方文件中找不到有关它的任何信息,但在源代码中四处浏览时发现了它。你可以用web3.utils.encodePacked(...args)
来称呼它。
正如您将从源代码中看到的,您可以传递一系列对象,以便指定您想要的类型,例如:
web3.utils.encodePacked(
{value: 42, type: 'uint128'},
{value: 'trombone', type: 'string'}
);
'0x0000000000000000000000000000002a74726f6d626f6e65'
将此与未打包的encodeParameters
的返回值进行对比:
web3.eth.abi.encodeParameters(['uint128', 'string'], [42, 'trombone']);
0x000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000874726f6d626f6e65000000000000000000000000000000000000000000000000
发布于 2022-04-09 13:48:07
const ethers = require("ethers");
ethers.utils.solidityPack // nodejs equivalent of solidity's abi.encodePacked
https://ethereum.stackexchange.com/questions/110751
复制相似问题