Как получить bt c адрес от publi c key node js - PullRequest
0 голосов
/ 22 января 2020

Я прошу прощения за мой Engli sh!

Как декодировать шестнадцатеричный publi c ключ из скрипта подписи bt c в строковый адрес в node js?

Например, у меня есть следующий шестнадцатеричный ключ publi c:

03745AAAF364030720B2D14DE50A3310EEF521C91E36353DCA20813713535C005A

после декодирования я должен получить соответствующий bitcoin адрес как

1GNXpcYzasmmXvM4rNgkvZ5SzXgL4L9Ch6

В https://bitcoin.stackexchange.com/questions/71867/decoding-scriptsig был вопрос о декодировании ScriptSig bt c транзакций и был следующий фрагмент:

...
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
...

В соответствии с этим вопросом bt c publi c ключ, закодированный в формате ANSI X9.63.

Do nodejs есть способы декодирования формата ANSI X9.63?

Спасибо очень много!

Ответы [ 2 ]

0 голосов
/ 25 января 2020

На вашем компьютере должны быть загружены узел и npm.

npm установить bitcoinjs -lib

Загрузить bitcoinjs библиотеку с вашего терминал узла.

var bitcoin = require("bitcoinjs-lib")

Требуется bitcoinjs -lib.

var keyPair = bitcoin.ECPair.makeRandom(); or var keyPair = "03745AAAF364030720B2D14DE50A3310EEF521C91E36353DCA20813713535C005A"

Сделать переменную для keyPair.

console.log(keyPair.getAddress());

Проверить адрес по адресу регистрации утешить. Должен быть возвращен действительный адрес bitcoin.

var address = keyPair.getAddress();

Сохранить результат адреса bitcoin в переменной.

console.log(keyPair.toWif());

Проверить закрытый ключ, войдя в консоль. Должен быть возвращен действительный bitcoin закрытый ключ.

var pkey = keyPair.toWIF();

Сохранить bitcoin результат закрытого ключа в переменной.

0 голосов
/ 23 января 2020

Я нашел ответ. Для него можно использовать bitcoinjs -lib и модуль платежей:

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

const pubKey = "03745AAAF364030720B2D14DE50A3310EEF521C91E36353DCA20813713535C005A";

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

console.log(address); //1GNXpcYzasmmXvM4rNgkvZ5SzXgL4L9Ch6
...