Node.js 如何从节点js中的公钥获取btc地址

Node.js 如何从节点js中的公钥获取btc地址,node.js,bitcoin,ansi,Node.js,Bitcoin,Ansi,我为我的英语道歉 如何将十六进制公钥从btc签名脚本解码为节点js中的字符串地址 例如,我有以下十六进制公钥: 03745AAAF364030720B2D14DE50A3310EEF521C91E36353DCA208137135C005A 解码后,我应该得到相应的比特币地址 1GNxPczmxVM4RNGVGZ5SZXGL4L9CH6 关于解码btc事务的ScriptSig,存在以下问题: ... 21: OP_DATA_0x21: compressed pub key (33

我为我的英语道歉

如何将十六进制公钥从btc签名脚本解码为节点js中的字符串地址

例如,我有以下十六进制公钥:

03745AAAF364030720B2D14DE50A3310EEF521C91E36353DCA208137135C005A

解码后,我应该得到相应的比特币地址

<代码>1GNxPczmxVM4RNGVGZ5SZXGL4L9CH6

关于解码btc事务的ScriptSig,存在以下问题:

...
21: OP_DATA_0x21:        compressed pub key (33 Bytes)
    03745AAAF3640307:20B2D14DE50A3310:EEF521C91E36353D:CA20813713535C00:5A
    This is MultiSig's compressed Public Key (X9.63 form)
    corresponding bitcoin address is:    1GNXpcYzasmmXvM4rNgkvZ5SzXgL4L9Ch6
...
根据此问题,btc公钥采用ANSI X9.63格式编码

节点是否有办法解码ANSI X9.63格式?


多谢各位

我找到了答案。因为它可以使用bitcoinjs lib和支付模块:

var bitcoin = require('bitcoinjs-lib');

const pubKey = "03745AAAF364030720B2D14DE50A3310EEF521C91E36353DCA20813713535C005A";

const { address } = bitcoin.payments.p2pkh({ pubkey: new Buffer(pubKey, 'hex') });

console.log(address); //1GNXpcYzasmmXvM4rNgkvZ5SzXgL4L9Ch6

必须在计算机上下载节点和npm

npm安装bitcoinjs库

从您的节点终端下载bitcoinjs库

var bitcoin = require("bitcoinjs-lib")
需要bitcoinjs库

var keyPair = bitcoin.ECPair.makeRandom(); or var keyPair = "03745AAAF364030720B2D14DE50A3310EEF521C91E36353DCA20813713535C005A"
为键对创建变量

console.log(keyPair.getAddress());
通过将地址记录到控制台来测试地址。应返回有效的比特币地址

var address = keyPair.getAddress();
var pkey = keyPair.toWIF();
将比特币地址结果保存到变量

console.log(keyPair.toWif());
通过登录到控制台来测试私钥。应返回有效的比特币私钥

var address = keyPair.getAddress();
var pkey = keyPair.toWIF();
将比特币私钥结果保存到变量

console.log(keyPair.toWif());