diff --git a/class/hd-legacy-breadwallet-wallet.js b/class/hd-legacy-breadwallet-wallet.js index b39f2bb0..943746b6 100644 --- a/class/hd-legacy-breadwallet-wallet.js +++ b/class/hd-legacy-breadwallet-wallet.js @@ -1,7 +1,8 @@ import { AbstractHDWallet } from './abstract-hd-wallet'; import Frisbee from 'frisbee'; -import bitcoin from 'bitcoinjs-lib'; import bip39 from 'bip39'; +const bip32 = require('bip32'); +const bitcoinjs = require('bitcoinjs-lib'); /** * HD Wallet (BIP39). @@ -22,7 +23,7 @@ export class HDLegacyBreadwalletWallet extends AbstractHDWallet { } const mnemonic = this.secret; const seed = bip39.mnemonicToSeed(mnemonic); - const root = bitcoin.bip32.fromSeed(seed); + const root = bip32.fromSeed(seed); const path = "m/0'"; const child = root.derivePath(path).neutered(); @@ -36,12 +37,16 @@ export class HDLegacyBreadwalletWallet extends AbstractHDWallet { if (this.external_addresses_cache[index]) return this.external_addresses_cache[index]; // cache hit const mnemonic = this.secret; const seed = bip39.mnemonicToSeed(mnemonic); - const root = bitcoin.bip32.fromSeed(seed); + const root = bip32.fromSeed(seed); const path = "m/0'/0/" + index; const child = root.derivePath(path); - return (this.external_addresses_cache[index] = child.getAddress()); + const address = bitcoinjs.payments.p2pkh({ + pubkey: child.publicKey, + }).address; + + return (this.external_addresses_cache[index] = address); } _getInternalAddressByIndex(index) { @@ -49,12 +54,16 @@ export class HDLegacyBreadwalletWallet extends AbstractHDWallet { if (this.internal_addresses_cache[index]) return this.internal_addresses_cache[index]; // cache hit const mnemonic = this.secret; const seed = bip39.mnemonicToSeed(mnemonic); - const root = bitcoin.bip32.fromSeed(seed); + const root = bip32.fromSeed(seed); const path = "m/0'/1/" + index; const child = root.derivePath(path); - return (this.internal_addresses_cache[index] = child.getAddress()); + const address = bitcoinjs.payments.p2pkh({ + pubkey: child.publicKey, + }).address; + + return (this.internal_addresses_cache[index] = address); } _getExternalWIFByIndex(index) { @@ -75,7 +84,7 @@ export class HDLegacyBreadwalletWallet extends AbstractHDWallet { _getWIFByIndex(internal, index) { const mnemonic = this.secret; const seed = bip39.mnemonicToSeed(mnemonic); - const root = bitcoin.bip32.fromSeed(seed); + const root = bitcoinjs.bip32.fromSeed(seed); const path = `m/0'/${internal ? 1 : 0}/${index}`; const child = root.derivePath(path); diff --git a/class/hd-legacy-p2pkh-wallet.js b/class/hd-legacy-p2pkh-wallet.js index 6f12d5a0..3eb4b270 100644 --- a/class/hd-legacy-p2pkh-wallet.js +++ b/class/hd-legacy-p2pkh-wallet.js @@ -3,6 +3,7 @@ import bip39 from 'bip39'; import BigNumber from 'bignumber.js'; import signer from '../models/signer'; const bitcoin = require('bitcoinjs-lib'); +const HDNode = require('bip32'); /** * HD Wallet (BIP39). @@ -50,11 +51,12 @@ export class HDLegacyP2PKHWallet extends AbstractHDWallet { _getWIFByIndex(internal, index) { const mnemonic = this.secret; const seed = bip39.mnemonicToSeed(mnemonic); - const root = bitcoin.bip32.fromSeed(seed); + + const root = HDNode.fromSeed(seed); const path = `m/44'/0'/0'/${internal ? 1 : 0}/${index}`; const child = root.derivePath(path); - return child.keyPair.toWIF(); + return child.toWIF(); } _getExternalAddressByIndex(index) {