在0.5.0前的稳固性中,如果您想散列某一组数据,您将执行keccak(a, b, c)。0.5.0keccak只使用1 arg和建议使用 keccak(abi.encodePacked(a,b,c))
但这两人是否保证返回相同的结果呢?我做了一些快速的测试,他们似乎做了,但这是我可以依赖的东西吗?
发布于 2019-03-17 03:06:19
是的他们有。测试它的最简单的方法是使用混炼并简单地为这两个版本切换编译器版本。
如果您查看一下请注意文档的0.4.24版,您会发现这是正确的,它被切换的原因只是为了更明确。
这些编码函数可以用于为函数调用创建数据,而无需实际调用函数。此外,
keccak256(abi.encodePacked(a, b))是一种更显式的计算keccak256(a, b)的方法,它将在未来的版本中被废弃。
https://ethereum.stackexchange.com/questions/68443
复制相似问题