首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以太事务RangeError:私钥长度无效

以太事务RangeError:私钥长度无效
EN

Ethereum用户
提问于 2018-07-24 14:36:20
回答 2查看 2.9K关注 0票数 1

我正在运行一个教程,介绍如何以编程的方式对ethereum事务进行签名,并得到以下错误:

代码语言:javascript
复制
RangeError: private key length is invalid

这是代码:

代码语言:javascript
复制
var Web3 = require('web3');
var web3 = new Web3(new 
Web3.providers.HttpProvider('https://ropsten.infura.io/'));
var util = require('ethereumjs-util');
var tx = require('ethereumjs-tx');

var privateKey = '0x...';
var publicKey = util.bufferToHex(util.privateToPublic(privateKey));

错误出现在最后一行,试图从私钥中获取公钥。

我的私钥是一个字母数字字符串,长度为64个字符。从我看来,这是正确的长度。

我遗漏了什么?

EN

回答 2

Ethereum用户

回答已采纳

发布于 2018-07-24 21:21:32

根据docs,util.privateToPublic()需要一个缓冲区。试着给它喂食,更像是:

new Buffer(privateKey.substring(2,66), 'hex')

票数 3
EN

Ethereum用户

发布于 2018-07-24 16:36:01

尝试从私钥中删除0x

privKey = privKey.substring(2)

我没有把握。不同的词组有不同的关键规则。

例如,EthersJS在其他人可能无法执行的情况下,全面强制执行0x。

票数 3
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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