如何修复ethers.js中的invalid hexlify value错误
解决Ethers.js中"invalid hexlify value"私钥错误
这个错误的直接原因是你传入的私钥不符合Ethers.js的格式要求,大概率是代码里还留着占位符"PRIVATE_KEY",或者私钥本身格式不对。
核心解决步骤:
替换占位符:把代码中写死的
"PRIVATE_KEY"字符串换成你实际的以太坊私钥。私钥必须是64位十六进制字符(0-9、a-f),可以带0x前缀或不带,比如:// 正确写法示例 const privateKey = "0x7a2f...完整的64位十六进制私钥...e1b3"; // 或者不带0x前缀 const privateKey = "7a2f...完整的64位十六进制私钥...e1b3";校验私钥格式:检查私钥是否有多余的空格、换行符,长度是否正确(带
0x是66位,不带是64位)。如果是从MetaMask等钱包导出的私钥,确保复制时没有遗漏或多复制字符。安全管理私钥(推荐):不要直接在代码里硬编码私钥,用环境变量更安全。比如用
dotenv包:- 安装依赖:
npm install dotenv - 在项目根目录创建
.env文件,写入:PRIVATE_KEY=0x你的实际私钥 - 在代码中读取:
require('dotenv').config(); const privateKey = process.env.PRIVATE_KEY;
- 安装依赖:
额外排查点:
如果替换后还是报错,检查是不是把助记词当成私钥传入了——助记词和私钥是完全不同的东西,Ethers.js的Wallet构造函数只接受私钥,要用助记词的话得用ethers.Wallet.fromMnemonic(助记词)来创建钱包实例。
内容的提问来源于stack exchange,提问作者Lillian Carr
相关产品推荐
相关产品推荐

