Как отправлять и получать биткойны, используя bitcoinjs-lib?

Сначала я создаю HD Wallet, используя BIP32, используя мнемонику.

Теперь я хочу сгенерировать новые дочерние адреса с закрытым ключом, используя xpub & xpriv для каждого получения.

Затем, например, я получил BTC по 2 дочерним адресам, то есть 3 BTC и 2 BTC.

Теперь я должен отправить 4 BTC кому-то, затем Как я могу отправить его, так как у меня есть 3 BTC, но на отдельном счете с utxo.

Как я могу управлять этими счетами и транзакциями, а также как показать общий баланс пользователю?

Итак, я не знаю, как реализовать это с помощью bitcoinjs-lib, BIP32.

1 ответ

Чтобы создать 2 адреса, например:

const path = "m/0'/0/0"
const mnemonic = 'praise you muffin lion enable neck grocery crumble super myself license ghost'
const seed = bip39.mnemonicToSeed(mnemonic)
const root = bip32.fromSeed(seed)

const child1 = root.derivePath("m/0'/0")
const child2 = root.derivePath("m/0'/1")

const child1Address = bitcoin.payments.p2pkh({ pubkey: child1.publicKey }).address
const child2Address = bitcoin.payments.p2pkh({ pubkey: child2.publicKey }).address

Далее, чтобы управлять этими учетными записями и показывать баланс пользователю, вы должны создать базу данных каждой транзакции, которая происходит с использованием их адресов. Это означает, что вы должны сканировать каждый блок на наличие транзакций, которые используют их адрес, и отслеживать, была ли проведена эта транзакция, так же, как и при построении проводника блоков. Bitcoinjs-lib не делает этого за вас, она предоставляет примитивные строительные блоки для создания собственного приложения кошелька.

Чтобы использовать выходные данные с обоих адресов, вы должны получить неизрасходованные выходные данные из своей базы данных, а также создать транзакцию и подписать ее, используя созданные вами ключи. Смотрите README для большего количества примеров.

Другие вопросы по тегам