首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >web3等价于abi.encodePacked

web3等价于abi.encodePacked
EN

Ethereum用户
提问于 2021-09-29 11:01:32
回答 3查看 4.4K关注 0票数 3

abi.encodePacked在web3中的等效性是什么?

我正在努力产生相当于(稳固)的东西。

代码语言:javascript
运行
复制
keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", domainHash, functionHash));

用web3测试松露。

到目前为止我知道

keccack256 = web3.utils.soliditySha3

abi.encode = web3.eth.abi.encodeParameters

abi.encodePacked =?

EN

回答 3

Ethereum用户

发布于 2021-09-29 12:01:30

如果您有合同的ABI,您可以使用encodeABI

如果您没有合同的ABI,那么您可以使用web3.eth.abi.encodeFunctionCall,或者结合其他一些from web3.eth.abi.*函数。

您还可以使用实现此功能的以赛亚

票数 1
EN

Ethereum用户

发布于 2022-04-13 19:50:12

in有一个名为encodePacked的函数,它应该做您想做的事情。我在官方文件中找不到有关它的任何信息,但在源代码中四处浏览时发现了它。你可以用web3.utils.encodePacked(...args)来称呼它。

正如您将从源代码中看到的,您可以传递一系列对象,以便指定您想要的类型,例如:

代码语言:javascript
运行
复制
web3.utils.encodePacked(
  {value: 42, type: 'uint128'},
  {value: 'trombone', type: 'string'}
);
'0x0000000000000000000000000000002a74726f6d626f6e65'

将此与未打包的encodeParameters的返回值进行对比:

代码语言:javascript
运行
复制
web3.eth.abi.encodeParameters(['uint128', 'string'], [42, 'trombone']);
0x000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000874726f6d626f6e65000000000000000000000000000000000000000000000000
票数 1
EN

Ethereum用户

发布于 2022-04-09 13:48:07

代码语言:javascript
运行
复制
const ethers = require("ethers");
ethers.utils.solidityPack // nodejs equivalent of solidity's abi.encodePacked
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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