分类
Uncategorized

使用bitcoinjs lib从base58根密钥生成zprv

var bitcoin=require(’bitcoinjs-lib’);
设bip32=require(’bip32’);
让rootKey=’xprv9s21zrqh143k32cfqocqhtbkieb5bqfazxx6jctncnuty3gujxs4csxwi9rcnyhdjdvpic6p1bnyezr2oourq56h6hadweetty1bssetl’
const node=bip32.fromBase58(rootKey,bitcoin.networks.bitcoin);
//旧帐户扩展私钥
console.log(“遗留:”+node.derivePath(“m/44’/0’/0”).toBase58())
//xprv9y7nl2k2dilda9bmop94k8pec2wdl998pldvtraxj5jiq36gnlmhvjg4by8fzgqzpabm5hdbi9sgrk1zci14n5j4pk1o6d3j4y6ns4na6
(按预期工作)
//segwit帐户扩展私钥
//尝试使用与上述相同的输入获取segwit扩展私钥(zprv)。
我想得到一个segwit/bech32扩展私钥,使用与上面相同的根密钥。如何使用bitcoinjs lib实现这一点?BIP84只适用于记忆IIRC。
隔离证人
javascript语言
分享
改进这个问题
跟随
17小时前问的
无疑问
311青铜徽章
新贡献者
添加评论
1个答案
0
您的xprv已经有了派生路径“baked-in”,所以即使您只是转换为zprv,它仍然位于旧的m44/deriv路径下。你也不能从xprv到hdseed。因此,要从xprv更改为zprv或yprv,您需要从HD seed开始,然后声明您的derivePath(“m84’/…”,“m49/”/。。。等等),然后您可以创建一个扩展公钥。然后你必须转换成yprv,zprv,ypub,等等。。。
示例使用bitcoinjs lib v3.3.2
函数seedToXpub(seed、deriv、account){
var root=bitcoin.HDNode.fromSeedHex(种子);
var acct=root.derivePath(“m/”+deriv+“’/0’/”+account+“’”);
var xpub=acct.neuted().toBase58();
返回{
xpub公司
}
}
函数seedToXprv(seed、deriv、account){
var root=bitcoin.HDNode.fromSeedHex(种子);
var acct=root.derivePath(“m/”+deriv+“’/0’/”+account+“’”);
var xprv=账户toBase58();
返回{
xprv公司
}
}
函数convertXpub(xpub,target){
//转换器的源脚本https://github.com/jlopp/xpub-converter/blob/master/js/xpubConvert.js
const prefixes=新地图(
[
[‘xpub’,’0488b21e’],
[‘ypub’,’049d7cb2’],
[‘Ypub’,’0295b43f’],
[‘zpub’,’04b24746’],
[‘Zpub’,’02aa7ed3’],
[‘xprv’,’04884’],
[‘yprv’,’049d7878’],
[‘zprv’,’04b2430c’]
]
);
xpub=xpub.trim();
试试看{
var data=b58.解码(xpub);
data=data.slice(4);
data=Buffer.concat([Buffer.from(prefixes.get(target),’hex’),data]);
返回b58.编码(数据);
}捕捉(错误){
return“扩展公钥无效!请仔细检查是否意外粘贴了额外数据。“;
}   
}
var mySeed=“114259550292e14ca462e5202875f987fa3c93300306417c8b62de591710e4b34340a9bcdf8241ebbe83cf3cdf428c2f32973c9db68e247ce623fd73b9bd1fb2”;
var extPriv=seedToXprv(mySeed,84,0);
var zprv=convertXpub(extPriv,“zprv”);
//Zprvacihk1ernzufx6zh3v8wemvw5s8y2xkmjdefef3v9x2jbdf9ij4vs5t4po6jhwsjkzjz1tddtenc5dpvsvffymzpzwz8kskci6wkysmuhup
分享
改进这个答案
跟随

时光素材-香车美女  (1206)blockchainBTC比特币区块链www.qkl91.com

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注