一、说明
在ether.js中,可以使用ethers.utils.solidityKeccak256
方法对多个变量的值进行哈希,该方法接受一个字符串数组作为参数,数组中每个字符串对应一个变量的值,它们将按照顺序连接在一起进行哈希计算。
二、代码示例
const ethers = require('ethers'); const var1 = '0x1234'; const var2 = '0x5678'; const hash = ethers.utils.solidityKeccak256(['bytes32', 'bytes32'], [var1, var2]); console.log(hash);
上述代码中,var1
和var2
分别为两个变量的值,ethers.utils.solidityKeccak256
方法接受一个字符串数组作为第一个参数,其中每个字符串对应一个变量的类型,如bytes32
代表32字节的字节串。第二个参数是一个与第一个参数对应的数组,包含了变量的具体值。hash
为最终的哈希值。
对于一个32字节的哈希值,可以使用ethers.utils.arrayify()方法将其转换为一个字节数组,然后使用ethers.utils.keccak256()方法对该字节数组进行Keccak-256哈希运算,最后使用ethers.utils.hexlify()方法将结果转换为以太坊格式的哈希字符串,即追加以太坊前缀”0x”。
const ethers = require('ethers'); const hash = "226xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe52"; const messageHash = ethers.utils.hexlify(ethers.utils.keccak256(ethers.utils.arrayify(hash))); console.log(messageHash); // "0x30xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcfd6"
至此,完成ether.js中对多个变量产生hash值的方式,并添加以太坊前缀的所有操作流程。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册