我有以下内容:
static combinedHash(first: Buffer, second: Buffer): Buffer {
if (!first) {
return second
}
if (!second) {
return first
}
return keccak256(MerkleTree.sortAndConcat(first, second))
}
keccak256
是从ethereumjs-utils
导入的
似乎keccak256
返回Buffer
。
我想做的是我想改变keccak256
从ethereumjs-utils
到ethers/lib/utils
,但新的keccak256
不返回缓冲区。我尝试了很多东西,但结果都不一样。有什么想法吗?最后的结果应该是combinedHash
函数返回相同的东西,所以它应该返回Buffer
。
有什么想法吗?
ethers/lib/utils
functionkeccak256()
返回以0x
为前缀的十六进制字符串表示的哈希值
所以你需要从这个十六进制中创建一个没有0x
前缀的缓冲区。
const keccakString = keccak256(MerkleTree.sortAndConcat(first, second))
return Buffer.from(keccakString.slice('0x'.length), 'hex')