@atomicfinance/bitcoin-wallet-provider 3.4.7 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- @atomicfinance/bitcoin-wallet-provider:build: cache hit, replaying output 22d04dd569ee734e
1
+
@@ -0,0 +1 @@
1
+
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @atomicfinance/bitcoin-wallet-provider
2
2
 
3
+ ## 3.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 9aa93d3: Fix types for bitcoin-rpc-provider
8
+ - Updated dependencies [9aa93d3]
9
+ - @atomicfinance/bitcoin-utils@3.5.1
10
+ - @atomicfinance/provider@3.5.1
11
+ - @atomicfinance/types@3.5.1
12
+
13
+ ## 3.5.0
14
+
15
+ ### Minor Changes
16
+
17
+ - fb279b7: Update dependencies for Node LTS and fix payout index edge cases
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies [fb279b7]
22
+ - @atomicfinance/bitcoin-utils@3.5.0
23
+ - @atomicfinance/provider@3.5.0
24
+ - @atomicfinance/types@3.5.0
25
+
3
26
  ## 3.4.7
4
27
 
5
28
  ### Patch Changes
@@ -5,7 +5,7 @@ import { Address, bitcoin as bT, SendOptions, Transaction } from '@atomicfinance
5
5
  import { BitcoinNetwork } from 'bitcoin-networks';
6
6
  import * as bitcoin from 'bitcoinjs-lib';
7
7
  import { BIP32Interface } from 'bitcoinjs-lib';
8
- declare type UnusedAddressesBlacklist = {
8
+ type UnusedAddressesBlacklist = {
9
9
  [address: string]: true;
10
10
  };
11
11
  export declare enum AddressSearchType {
@@ -13,114 +13,112 @@ export declare enum AddressSearchType {
13
13
  CHANGE = 1,
14
14
  EXTERNAL_OR_CHANGE = 2
15
15
  }
16
- declare type DerivationCache = {
16
+ type DerivationCache = {
17
17
  [index: string]: Address;
18
18
  };
19
- declare type Constructor<T = unknown> = new (...args: any[]) => T;
20
- declare const _default: <T extends Constructor<Provider>>(superclass: T) => {
21
- new (...args: any[]): {
22
- _network: BitcoinNetwork;
23
- _unusedAddressesBlacklist: UnusedAddressesBlacklist;
24
- _maxAddressesToDerive: number;
25
- _baseDerivationPath: string;
26
- _addressType: bT.AddressType;
27
- _addressIndex: number;
28
- _changeAddressIndex: number;
29
- _derivationCache: DerivationCache;
30
- baseDerivationNode(): Promise<BIP32Interface>;
31
- _buildTransaction(targets: bT.OutputTarget[], feePerByte?: number, fixedInputs?: bT.Input[]): Promise<{
32
- hex: string;
33
- fee: number;
34
- }>;
35
- _buildSweepTransaction(externalChangeAddress: string, feePerByte?: number): Promise<{
36
- hex: string;
37
- fee: number;
38
- }>;
39
- signPSBT(data: string, inputs: bT.PsbtInputTarget[]): Promise<string>;
40
- signBatchP2SHTransaction(inputs: [
41
- {
42
- inputTxHex: string;
43
- index: number;
44
- vout: any;
45
- outputScript: Buffer;
46
- }
47
- ], addresses: string, tx: any, lockTime?: number, segwit?: boolean): Promise<Buffer[]>;
48
- getDerivationCache(): DerivationCache;
49
- setDerivationCache(derivationCache: DerivationCache): Promise<void>;
50
- sendOptionsToOutputs(transactions: SendOptions[]): bT.OutputTarget[];
51
- buildTransaction(output: bT.OutputTarget, feePerByte: number): Promise<{
52
- hex: string;
53
- fee: number;
54
- }>;
55
- buildBatchTransaction(outputs: bT.OutputTarget[]): Promise<{
56
- hex: string;
57
- fee: number;
58
- }>;
59
- _sendTransaction(transactions: bT.OutputTarget[], feePerByte?: number): Promise<Transaction<bT.Transaction>>;
60
- sendTransaction(options: SendOptions): Promise<Transaction<bT.Transaction>>;
61
- sendBatchTransaction(transactions: SendOptions[]): Promise<Transaction<bT.Transaction>>;
62
- buildSweepTransaction(externalChangeAddress: string, feePerByte: number): Promise<{
63
- hex: string;
64
- fee: number;
65
- }>;
66
- sendSweepTransaction(externalChangeAddress: Address | string, feePerByte: number): Promise<Transaction<bT.Transaction>>;
67
- getUnusedAddressesBlacklist(): UnusedAddressesBlacklist;
68
- setUnusedAddressesBlacklist(unusedAddressesBlacklist: UnusedAddressesBlacklist): void;
69
- setMaxAddressesToDerive(maxAddressesToDerive: number): void;
70
- getMaxAddressesToDerive(): number;
71
- updateTransactionFee(tx: Transaction<bitcoin.Transaction> | string, newFeePerByte: number): Promise<Transaction<bT.Transaction>>;
72
- getUnusedAddress(change?: boolean, numAddressPerCall?: number): Promise<any>;
73
- _getUsedUnusedAddresses(numAddressPerCall: number, addressType: any): Promise<{
74
- usedAddresses: any[];
75
- unusedAddress: {
76
- change: any;
77
- nonChange: any;
78
- };
79
- firstUnusedAddress: any;
80
- }>;
81
- getWalletAddress(address: string): Promise<Address>;
82
- getAddressFromPublicKey(publicKey: Buffer): string;
83
- getPaymentVariantFromPublicKey(publicKey: Buffer): bitcoin.payments.Payment;
84
- getDerivationPathAddress(path: string): Promise<Address>;
85
- /**
86
- * getAddresses is an optimized version of upstream CAL's getAddresses.
87
- * It removes the call to `asyncSetImmediate()`, speeding up the function by a factor of 6x.
88
- *
89
- * @param startingIndex
90
- * @param numAddresses
91
- * @param change
92
- * @returns {Promise<Address[]>}
93
- */
94
- getAddresses(startingIndex?: number, numAddresses?: number, change?: boolean): Promise<Address[]>;
95
- /**
96
- * findAddress is an optimized version of upstream CAL's findAddress.
97
- *
98
- * It searches through both change and non-change addresses (if change arg is not provided) each iteration.
99
- *
100
- * This is in contrast to the original findAddress function which searches
101
- * through all non-change addresses before moving on to change addresses.
102
- *
103
- * @param addresses
104
- * @returns {Promise<Address>}
105
- */
106
- findAddress(addresses: string[], change?: boolean | null): Promise<Address>;
107
- getUsedAddresses(numAddressPerCall?: number): Promise<any[]>;
108
- withCachedUtxos(func: () => any): Promise<any>;
109
- getTotalFee(opts: SendOptions, max: boolean): Promise<number>;
110
- getTotalFees(transactions: SendOptions[], max: boolean): Promise<any>;
111
- getInputsForAmount(_targets: bT.OutputTarget[], feePerByte?: number, fixedInputs?: bT.Input[], numAddressPerCall?: number, sweep?: boolean): Promise<{
112
- inputs: bT.UTXO[];
113
- change: CoinSelectTarget;
114
- outputs: CoinSelectTarget[];
115
- fee: number;
116
- }>;
117
- getInputsForDualFunding(collaterals: number[], feePerByte?: number, fixedInputs?: bT.Input[], numAddressPerCall?: number): Promise<{
118
- inputs: import("@node-dlc/core").UTXO[];
119
- fee: bigint;
120
- }>;
121
- client: import("@atomicfinance/types").IClient;
122
- setClient(client?: import("@atomicfinance/types").IClient): void;
123
- getMethod(method: string, requestor?: any): (...args: any[]) => any;
124
- };
125
- } & T;
19
+ type Constructor<T = unknown> = new (...args: any[]) => T;
20
+ declare const _default: <T extends Constructor<Provider>>(superclass: T) => (abstract new (...args: any[]) => {
21
+ _network: BitcoinNetwork;
22
+ _unusedAddressesBlacklist: UnusedAddressesBlacklist;
23
+ _maxAddressesToDerive: number;
24
+ _baseDerivationPath: string;
25
+ _addressType: bT.AddressType;
26
+ _addressIndex: number;
27
+ _changeAddressIndex: number;
28
+ _derivationCache: DerivationCache;
29
+ baseDerivationNode(): Promise<BIP32Interface>;
30
+ _buildTransaction(targets: bT.OutputTarget[], feePerByte?: number, fixedInputs?: bT.Input[]): Promise<{
31
+ hex: string;
32
+ fee: number;
33
+ }>;
34
+ _buildSweepTransaction(externalChangeAddress: string, feePerByte?: number): Promise<{
35
+ hex: string;
36
+ fee: number;
37
+ }>;
38
+ signPSBT(data: string, inputs: bT.PsbtInputTarget[]): Promise<string>;
39
+ signBatchP2SHTransaction(inputs: [
40
+ {
41
+ inputTxHex: string;
42
+ index: number;
43
+ vout: any;
44
+ outputScript: Buffer;
45
+ }
46
+ ], addresses: string, tx: any, lockTime?: number, segwit?: boolean): Promise<Buffer[]>;
47
+ getDerivationCache(): DerivationCache;
48
+ setDerivationCache(derivationCache: DerivationCache): Promise<void>;
49
+ sendOptionsToOutputs(transactions: SendOptions[]): bT.OutputTarget[];
50
+ buildTransaction(output: bT.OutputTarget, feePerByte: number): Promise<{
51
+ hex: string;
52
+ fee: number;
53
+ }>;
54
+ buildBatchTransaction(outputs: bT.OutputTarget[]): Promise<{
55
+ hex: string;
56
+ fee: number;
57
+ }>;
58
+ _sendTransaction(transactions: bT.OutputTarget[], feePerByte?: number): Promise<Transaction<bT.Transaction>>;
59
+ sendTransaction(options: SendOptions): Promise<Transaction<bT.Transaction>>;
60
+ sendBatchTransaction(transactions: SendOptions[]): Promise<Transaction<bT.Transaction>>;
61
+ buildSweepTransaction(externalChangeAddress: string, feePerByte: number): Promise<{
62
+ hex: string;
63
+ fee: number;
64
+ }>;
65
+ sendSweepTransaction(externalChangeAddress: Address | string, feePerByte: number): Promise<Transaction<bT.Transaction>>;
66
+ getUnusedAddressesBlacklist(): UnusedAddressesBlacklist;
67
+ setUnusedAddressesBlacklist(unusedAddressesBlacklist: UnusedAddressesBlacklist): void;
68
+ setMaxAddressesToDerive(maxAddressesToDerive: number): void;
69
+ getMaxAddressesToDerive(): number;
70
+ updateTransactionFee(tx: Transaction<bitcoin.Transaction> | string, newFeePerByte: number): Promise<Transaction<bT.Transaction>>;
71
+ getUnusedAddress(change?: boolean, numAddressPerCall?: number): Promise<any>;
72
+ _getUsedUnusedAddresses(numAddressPerCall: number, addressType: any): Promise<{
73
+ usedAddresses: any[];
74
+ unusedAddress: {
75
+ change: any;
76
+ nonChange: any;
77
+ };
78
+ firstUnusedAddress: any;
79
+ }>;
80
+ getWalletAddress(address: string): Promise<Address>;
81
+ getAddressFromPublicKey(publicKey: Buffer): string;
82
+ getPaymentVariantFromPublicKey(publicKey: Buffer): bitcoin.payments.Payment;
83
+ getDerivationPathAddress(path: string): Promise<Address>;
84
+ /**
85
+ * getAddresses is an optimized version of upstream CAL's getAddresses.
86
+ * It removes the call to `asyncSetImmediate()`, speeding up the function by a factor of 6x.
87
+ *
88
+ * @param startingIndex
89
+ * @param numAddresses
90
+ * @param change
91
+ * @returns {Promise<Address[]>}
92
+ */
93
+ getAddresses(startingIndex?: number, numAddresses?: number, change?: boolean): Promise<Address[]>;
94
+ /**
95
+ * findAddress is an optimized version of upstream CAL's findAddress.
96
+ *
97
+ * It searches through both change and non-change addresses (if change arg is not provided) each iteration.
98
+ *
99
+ * This is in contrast to the original findAddress function which searches
100
+ * through all non-change addresses before moving on to change addresses.
101
+ *
102
+ * @param addresses
103
+ * @returns {Promise<Address>}
104
+ */
105
+ findAddress(addresses: string[], change?: boolean | null): Promise<Address>;
106
+ getUsedAddresses(numAddressPerCall?: number): Promise<any[]>;
107
+ withCachedUtxos(func: () => any): Promise<any>;
108
+ getTotalFee(opts: SendOptions, max: boolean): Promise<number>;
109
+ getTotalFees(transactions: SendOptions[], max: boolean): Promise<any>;
110
+ getInputsForAmount(_targets: bT.OutputTarget[], feePerByte?: number, fixedInputs?: bT.Input[], numAddressPerCall?: number, sweep?: boolean): Promise<{
111
+ inputs: bT.UTXO[];
112
+ change: CoinSelectTarget;
113
+ outputs: CoinSelectTarget[];
114
+ fee: number;
115
+ }>;
116
+ getInputsForDualFunding(collaterals: number[], feePerByte?: number, fixedInputs?: bT.Input[], numAddressPerCall?: number): Promise<{
117
+ inputs: import("@node-dlc/core").UTXO[];
118
+ fee: bigint;
119
+ }>;
120
+ client: import("@atomicfinance/types").IClient;
121
+ setClient(client?: import("@atomicfinance/types").IClient): void;
122
+ getMethod(method: string, requestor?: any): (...args: any[]) => any;
123
+ }) & T;
126
124
  export default _default;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -74,7 +78,7 @@ exports.default = (superclass) => {
74
78
  transactions.forEach((tx) => {
75
79
  if (tx.to && tx.value && tx.value.gt(0)) {
76
80
  targets.push({
77
- address: utils_1.addressToString(tx.to),
81
+ address: (0, utils_1.addressToString)(tx.to),
78
82
  value: tx.value.toNumber(),
79
83
  });
80
84
  }
@@ -100,7 +104,7 @@ exports.default = (superclass) => {
100
104
  async _sendTransaction(transactions, feePerByte) {
101
105
  const { hex, fee } = await this._buildTransaction(transactions, feePerByte);
102
106
  await this.getMethod('sendRawTransaction')(hex);
103
- return bitcoin_utils_1.normalizeTransactionObject(bitcoin_utils_1.decodeRawTransaction(hex, this._network), fee);
107
+ return (0, bitcoin_utils_1.normalizeTransactionObject)((0, bitcoin_utils_1.decodeRawTransaction)(hex, this._network), fee);
104
108
  }
105
109
  async sendTransaction(options) {
106
110
  return this._sendTransaction(this.sendOptionsToOutputs([options]), options.fee);
@@ -112,9 +116,9 @@ exports.default = (superclass) => {
112
116
  return this._buildSweepTransaction(externalChangeAddress, feePerByte);
113
117
  }
114
118
  async sendSweepTransaction(externalChangeAddress, feePerByte) {
115
- const { hex, fee } = await this._buildSweepTransaction(utils_1.addressToString(externalChangeAddress), feePerByte);
119
+ const { hex, fee } = await this._buildSweepTransaction((0, utils_1.addressToString)(externalChangeAddress), feePerByte);
116
120
  await this.getMethod('sendRawTransaction')(hex);
117
- return bitcoin_utils_1.normalizeTransactionObject(bitcoin_utils_1.decodeRawTransaction(hex, this._network), fee);
121
+ return (0, bitcoin_utils_1.normalizeTransactionObject)((0, bitcoin_utils_1.decodeRawTransaction)(hex, this._network), fee);
118
122
  }
119
123
  getUnusedAddressesBlacklist() {
120
124
  return this._unusedAddressesBlacklist;
@@ -147,7 +151,7 @@ exports.default = (superclass) => {
147
151
  }));
148
152
  const { hex, fee } = await this._buildTransaction(transactions, newFeePerByte, fixedInputs);
149
153
  await this.getMethod('sendRawTransaction')(hex);
150
- return bitcoin_utils_1.normalizeTransactionObject(bitcoin_utils_1.decodeRawTransaction(hex, this._network), fee);
154
+ return (0, bitcoin_utils_1.normalizeTransactionObject)((0, bitcoin_utils_1.decodeRawTransaction)(hex, this._network), fee);
151
155
  }
152
156
  async getUnusedAddress(change = false, numAddressPerCall = 100) {
153
157
  const addressType = change ? CHANGE_ADDRESS : NONCHANGE_ADDRESS;
@@ -337,11 +341,11 @@ exports.default = (superclass) => {
337
341
  }
338
342
  async withCachedUtxos(func) {
339
343
  const originalGetMethod = this.getMethod;
340
- const memoizedGetFeePerByte = memoizee_1.default(this.getMethod('getFeePerByte'), {
344
+ const memoizedGetFeePerByte = (0, memoizee_1.default)(this.getMethod('getFeePerByte'), {
341
345
  primitive: true,
342
346
  });
343
- const memoizedGetUnspentTransactions = memoizee_1.default(this.getMethod('getUnspentTransactions'), { primitive: true });
344
- const memoizedGetAddressTransactionCounts = memoizee_1.default(this.getMethod('getAddressTransactionCounts'), {
347
+ const memoizedGetUnspentTransactions = (0, memoizee_1.default)(this.getMethod('getUnspentTransactions'), { primitive: true });
348
+ const memoizedGetAddressTransactionCounts = (0, memoizee_1.default)(this.getMethod('getAddressTransactionCounts'), {
345
349
  primitive: true,
346
350
  });
347
351
  this.getMethod = (method, requestor = this) => {
@@ -410,7 +414,7 @@ exports.default = (superclass) => {
410
414
  if (fixedInputs.length > 0) {
411
415
  for (const input of fixedInputs) {
412
416
  const txHex = await this.getMethod('getRawTransactionByHash')(input.txid);
413
- const tx = bitcoin_utils_1.decodeRawTransaction(txHex, this._network);
417
+ const tx = (0, bitcoin_utils_1.decodeRawTransaction)(txHex, this._network);
414
418
  const value = new types_1.BigNumber(tx.vout[input.vout].value)
415
419
  .times(1e8)
416
420
  .toNumber();
@@ -475,7 +479,7 @@ exports.default = (superclass) => {
475
479
  script: target.script,
476
480
  }));
477
481
  }
478
- const { inputs, outputs, change, fee } = bitcoin_utils_1.selectCoins(utxos, targets, Math.ceil(feePerByte), fixedUtxos);
482
+ const { inputs, outputs, change, fee } = (0, bitcoin_utils_1.selectCoins)(utxos, targets, Math.ceil(feePerByte), fixedUtxos);
479
483
  if (inputs && outputs) {
480
484
  return {
481
485
  inputs,
@@ -529,7 +533,7 @@ exports.default = (superclass) => {
529
533
  if (fixedInputs.length > 0) {
530
534
  for (const input of fixedInputs) {
531
535
  const txHex = await this.getMethod('getRawTransactionByHash')(input.txid);
532
- const tx = bitcoin_utils_1.decodeRawTransaction(txHex, this._network);
536
+ const tx = (0, bitcoin_utils_1.decodeRawTransaction)(txHex, this._network);
533
537
  const value = new types_1.BigNumber(tx.vout[input.vout].value)
534
538
  .times(1e8)
535
539
  .toNumber();
@@ -564,7 +568,7 @@ exports.default = (superclass) => {
564
568
  if (feePerByte < minRelayFee) {
565
569
  throw new Error(`Fee supplied (${feePerByte} sat/b) too low. Minimum relay fee is ${minRelayFee} sat/b`);
566
570
  }
567
- const { fee, inputs } = core_1.dualFundingCoinSelect(utxos, collaterals.map((c) => BigInt(c)), BigInt(feePerByte));
571
+ const { fee, inputs } = (0, core_1.dualFundingCoinSelect)(utxos, collaterals.map((c) => BigInt(c)), BigInt(feePerByte));
568
572
  if (inputs.length > 0) {
569
573
  return {
570
574
  inputs,
@@ -1 +1 @@
1
- {"version":3,"file":"BitcoinWalletProvider.js","sourceRoot":"","sources":["../lib/BitcoinWalletProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BitcoinWalletProvider.js","sourceRoot":"","sources":["../lib/BitcoinWalletProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,596 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.AddressSearchType = void 0;
30
+ const bitcoin_utils_1 = require("@atomicfinance/bitcoin-utils");
31
+ const errors_1 = require("@atomicfinance/errors");
32
+ const types_1 = require("@atomicfinance/types");
33
+ const utils_1 = require("@atomicfinance/utils");
34
+ const core_1 = require("@node-dlc/core");
35
+ const bitcoin = __importStar(require("bitcoinjs-lib"));
36
+ const memoizee_1 = __importDefault(require("memoizee"));
37
+ const ADDRESS_GAP = 30;
38
+ const NONCHANGE_ADDRESS = 0;
39
+ const CHANGE_ADDRESS = 1;
40
+ const NONCHANGE_OR_CHANGE_ADDRESS = 2;
41
+ var AddressSearchType;
42
+ (function (AddressSearchType) {
43
+ AddressSearchType[AddressSearchType["EXTERNAL"] = 0] = "EXTERNAL";
44
+ AddressSearchType[AddressSearchType["CHANGE"] = 1] = "CHANGE";
45
+ AddressSearchType[AddressSearchType["EXTERNAL_OR_CHANGE"] = 2] = "EXTERNAL_OR_CHANGE";
46
+ })(AddressSearchType = exports.AddressSearchType || (exports.AddressSearchType = {}));
47
+ exports.default = (superclass) => {
48
+ class BitcoinWalletProvider extends superclass {
49
+ constructor(...args) {
50
+ const options = args[0];
51
+ const { network, baseDerivationPath, addressType = types_1.bitcoin.AddressType.BECH32, addressIndex = 0, changeAddressIndex = 0, } = options;
52
+ const addressTypes = Object.values(types_1.bitcoin.AddressType);
53
+ if (!addressTypes.includes(addressType)) {
54
+ throw new Error(`addressType must be one of ${addressTypes.join(',')}`);
55
+ }
56
+ super(options);
57
+ this._baseDerivationPath = baseDerivationPath;
58
+ this._network = network;
59
+ this._addressType = addressType;
60
+ this._addressIndex = addressIndex;
61
+ this._changeAddressIndex = changeAddressIndex;
62
+ this._derivationCache = {};
63
+ this._unusedAddressesBlacklist = {};
64
+ this._maxAddressesToDerive = 5000;
65
+ }
66
+ getDerivationCache() {
67
+ return this._derivationCache;
68
+ }
69
+ async setDerivationCache(derivationCache) {
70
+ const address = await this.getDerivationPathAddress(Object.keys(derivationCache)[0]);
71
+ if (derivationCache[address.derivationPath].address !== address.address) {
72
+ throw new Error(`derivationCache at ${address.derivationPath} does not match`);
73
+ }
74
+ this._derivationCache = derivationCache;
75
+ }
76
+ sendOptionsToOutputs(transactions) {
77
+ const targets = [];
78
+ transactions.forEach((tx) => {
79
+ if (tx.to && tx.value && tx.value.gt(0)) {
80
+ targets.push({
81
+ address: (0, utils_1.addressToString)(tx.to),
82
+ value: tx.value.toNumber(),
83
+ });
84
+ }
85
+ if (tx.data) {
86
+ const scriptBuffer = bitcoin.script.compile([
87
+ bitcoin.script.OPS.OP_RETURN,
88
+ Buffer.from(tx.data, 'hex'),
89
+ ]);
90
+ targets.push({
91
+ value: 0,
92
+ script: scriptBuffer,
93
+ });
94
+ }
95
+ });
96
+ return targets;
97
+ }
98
+ async buildTransaction(output, feePerByte) {
99
+ return this._buildTransaction([output], feePerByte);
100
+ }
101
+ async buildBatchTransaction(outputs) {
102
+ return this._buildTransaction(outputs);
103
+ }
104
+ async _sendTransaction(transactions, feePerByte) {
105
+ const { hex, fee } = await this._buildTransaction(transactions, feePerByte);
106
+ await this.getMethod('sendRawTransaction')(hex);
107
+ return (0, bitcoin_utils_1.normalizeTransactionObject)((0, bitcoin_utils_1.decodeRawTransaction)(hex, this._network), fee);
108
+ }
109
+ async sendTransaction(options) {
110
+ return this._sendTransaction(this.sendOptionsToOutputs([options]), options.fee);
111
+ }
112
+ async sendBatchTransaction(transactions) {
113
+ return this._sendTransaction(this.sendOptionsToOutputs(transactions));
114
+ }
115
+ async buildSweepTransaction(externalChangeAddress, feePerByte) {
116
+ return this._buildSweepTransaction(externalChangeAddress, feePerByte);
117
+ }
118
+ async sendSweepTransaction(externalChangeAddress, feePerByte) {
119
+ const { hex, fee } = await this._buildSweepTransaction((0, utils_1.addressToString)(externalChangeAddress), feePerByte);
120
+ await this.getMethod('sendRawTransaction')(hex);
121
+ return (0, bitcoin_utils_1.normalizeTransactionObject)((0, bitcoin_utils_1.decodeRawTransaction)(hex, this._network), fee);
122
+ }
123
+ getUnusedAddressesBlacklist() {
124
+ return this._unusedAddressesBlacklist;
125
+ }
126
+ setUnusedAddressesBlacklist(unusedAddressesBlacklist) {
127
+ this._unusedAddressesBlacklist = unusedAddressesBlacklist;
128
+ }
129
+ setMaxAddressesToDerive(maxAddressesToDerive) {
130
+ this._maxAddressesToDerive = maxAddressesToDerive;
131
+ }
132
+ getMaxAddressesToDerive() {
133
+ return this._maxAddressesToDerive;
134
+ }
135
+ async updateTransactionFee(tx, newFeePerByte) {
136
+ const txHash = typeof tx === 'string' ? tx : tx.hash;
137
+ const transaction = (await this.getMethod('getTransactionByHash')(txHash))._raw;
138
+ const fixedInputs = [transaction.vin[0]]; // TODO: should this pick more than 1 input? RBF doesn't mandate it
139
+ const lookupAddresses = transaction.vout.map((vout) => vout.scriptPubKey.addresses[0]);
140
+ const changeAddress = await this.findAddress(lookupAddresses, true);
141
+ const changeOutput = transaction.vout.find((vout) => vout.scriptPubKey.addresses[0] === changeAddress.address);
142
+ let outputs = transaction.vout;
143
+ if (changeOutput) {
144
+ outputs = outputs.filter((vout) => vout.scriptPubKey.addresses[0] !==
145
+ changeOutput.scriptPubKey.addresses[0]);
146
+ }
147
+ // TODO more checks?
148
+ const transactions = outputs.map((output) => ({
149
+ address: output.scriptPubKey.addresses[0],
150
+ value: new types_1.BigNumber(output.value).times(1e8).toNumber(),
151
+ }));
152
+ const { hex, fee } = await this._buildTransaction(transactions, newFeePerByte, fixedInputs);
153
+ await this.getMethod('sendRawTransaction')(hex);
154
+ return (0, bitcoin_utils_1.normalizeTransactionObject)((0, bitcoin_utils_1.decodeRawTransaction)(hex, this._network), fee);
155
+ }
156
+ async getUnusedAddress(change = false, numAddressPerCall = 100) {
157
+ const addressType = change ? CHANGE_ADDRESS : NONCHANGE_ADDRESS;
158
+ const key = change ? 'change' : 'nonChange';
159
+ const address = await this._getUsedUnusedAddresses(numAddressPerCall, addressType).then(({ unusedAddress }) => unusedAddress[key]);
160
+ this._unusedAddressesBlacklist[address.address] = true;
161
+ return address;
162
+ }
163
+ async _getUsedUnusedAddresses(numAddressPerCall = 100, addressType) {
164
+ const usedAddresses = [];
165
+ const addressCountMap = { change: 0, nonChange: 0 };
166
+ const unusedAddressMap = { change: null, nonChange: null };
167
+ let addrList;
168
+ let addressIndex = this._addressIndex;
169
+ let changeAddressIndex = this._changeAddressIndex;
170
+ let changeAddresses = [];
171
+ let nonChangeAddresses = [];
172
+ /* eslint-disable no-unmodified-loop-condition */
173
+ while ((addressType === NONCHANGE_OR_CHANGE_ADDRESS &&
174
+ (addressCountMap.change < ADDRESS_GAP ||
175
+ addressCountMap.nonChange < ADDRESS_GAP)) ||
176
+ (addressType === NONCHANGE_ADDRESS &&
177
+ addressCountMap.nonChange < ADDRESS_GAP) ||
178
+ (addressType === CHANGE_ADDRESS && addressCountMap.change < ADDRESS_GAP)) {
179
+ /* eslint-enable no-unmodified-loop-condition */
180
+ addrList = [];
181
+ if ((addressType === NONCHANGE_OR_CHANGE_ADDRESS ||
182
+ addressType === CHANGE_ADDRESS) &&
183
+ addressCountMap.change < ADDRESS_GAP) {
184
+ // Scanning for change addr
185
+ changeAddresses = await this.client.wallet.getAddresses(changeAddressIndex, numAddressPerCall, true);
186
+ addrList = addrList.concat(changeAddresses);
187
+ }
188
+ else {
189
+ changeAddresses = [];
190
+ }
191
+ if ((addressType === NONCHANGE_OR_CHANGE_ADDRESS ||
192
+ addressType === NONCHANGE_ADDRESS) &&
193
+ addressCountMap.nonChange < ADDRESS_GAP) {
194
+ // Scanning for non change addr
195
+ nonChangeAddresses = await this.getAddresses(addressIndex, numAddressPerCall, false);
196
+ addrList = addrList.concat(nonChangeAddresses);
197
+ }
198
+ const transactionCounts = await this.getMethod('getAddressTransactionCounts')(addrList);
199
+ for (const address of addrList) {
200
+ const isUsed = transactionCounts[address.address] > 0 ||
201
+ this._unusedAddressesBlacklist[address.address];
202
+ const isChangeAddress = changeAddresses.find((a) => address.address === a.address);
203
+ const key = isChangeAddress ? 'change' : 'nonChange';
204
+ if (isUsed) {
205
+ usedAddresses.push(address);
206
+ addressCountMap[key] = 0;
207
+ unusedAddressMap[key] = null;
208
+ }
209
+ else {
210
+ addressCountMap[key]++;
211
+ if (!unusedAddressMap[key]) {
212
+ unusedAddressMap[key] = address;
213
+ }
214
+ }
215
+ }
216
+ addressIndex += numAddressPerCall;
217
+ changeAddressIndex += numAddressPerCall;
218
+ }
219
+ let firstUnusedAddress;
220
+ const indexNonChange = unusedAddressMap.nonChange
221
+ ? unusedAddressMap.nonChange.index
222
+ : Infinity;
223
+ const indexChange = unusedAddressMap.change
224
+ ? unusedAddressMap.change.index
225
+ : Infinity;
226
+ if (indexNonChange <= indexChange)
227
+ firstUnusedAddress = unusedAddressMap.nonChange;
228
+ else
229
+ firstUnusedAddress = unusedAddressMap.change;
230
+ return {
231
+ usedAddresses,
232
+ unusedAddress: unusedAddressMap,
233
+ firstUnusedAddress,
234
+ };
235
+ }
236
+ async getWalletAddress(address) {
237
+ const foundAddress = await this.findAddress([address]);
238
+ if (foundAddress)
239
+ return foundAddress;
240
+ throw new Error('Wallet does not contain address');
241
+ }
242
+ getAddressFromPublicKey(publicKey) {
243
+ return this.getPaymentVariantFromPublicKey(publicKey).address;
244
+ }
245
+ getPaymentVariantFromPublicKey(publicKey) {
246
+ if (this._addressType === types_1.bitcoin.AddressType.LEGACY) {
247
+ return bitcoin.payments.p2pkh({
248
+ pubkey: publicKey,
249
+ network: this._network,
250
+ });
251
+ }
252
+ else if (this._addressType === types_1.bitcoin.AddressType.P2SH_SEGWIT) {
253
+ return bitcoin.payments.p2sh({
254
+ redeem: bitcoin.payments.p2wpkh({
255
+ pubkey: publicKey,
256
+ network: this._network,
257
+ }),
258
+ network: this._network,
259
+ });
260
+ }
261
+ else if (this._addressType === types_1.bitcoin.AddressType.BECH32) {
262
+ return bitcoin.payments.p2wpkh({
263
+ pubkey: publicKey,
264
+ network: this._network,
265
+ });
266
+ }
267
+ }
268
+ async getDerivationPathAddress(path) {
269
+ if (path in this._derivationCache) {
270
+ return this._derivationCache[path];
271
+ }
272
+ const baseDerivationNode = await this.baseDerivationNode();
273
+ const subPath = path.replace(this._baseDerivationPath + '/', '');
274
+ const publicKey = baseDerivationNode.derivePath(subPath).publicKey;
275
+ const address = this.getAddressFromPublicKey(publicKey);
276
+ const addressObject = new types_1.Address({
277
+ address,
278
+ publicKey: publicKey.toString('hex'),
279
+ derivationPath: path,
280
+ });
281
+ this._derivationCache[path] = addressObject;
282
+ return addressObject;
283
+ }
284
+ /**
285
+ * getAddresses is an optimized version of upstream CAL's getAddresses.
286
+ * It removes the call to `asyncSetImmediate()`, speeding up the function by a factor of 6x.
287
+ *
288
+ * @param startingIndex
289
+ * @param numAddresses
290
+ * @param change
291
+ * @returns {Promise<Address[]>}
292
+ */
293
+ async getAddresses(startingIndex = 0, numAddresses = 1, change = false) {
294
+ if (numAddresses < 1) {
295
+ throw new Error('You must return at least one address');
296
+ }
297
+ const addresses = [];
298
+ const lastIndex = startingIndex + numAddresses;
299
+ const changeVal = change ? '1' : '0';
300
+ for (let currentIndex = startingIndex; currentIndex < lastIndex; currentIndex++) {
301
+ const subPath = changeVal + '/' + currentIndex;
302
+ const path = this._baseDerivationPath + '/' + subPath;
303
+ const addressObject = await this.getDerivationPathAddress(path);
304
+ addresses.push(addressObject);
305
+ }
306
+ return addresses;
307
+ }
308
+ /**
309
+ * findAddress is an optimized version of upstream CAL's findAddress.
310
+ *
311
+ * It searches through both change and non-change addresses (if change arg is not provided) each iteration.
312
+ *
313
+ * This is in contrast to the original findAddress function which searches
314
+ * through all non-change addresses before moving on to change addresses.
315
+ *
316
+ * @param addresses
317
+ * @returns {Promise<Address>}
318
+ */
319
+ async findAddress(addresses, change = null) {
320
+ const addressesPerCall = 20;
321
+ let index = 0;
322
+ while (index < this._maxAddressesToDerive) {
323
+ const walletAddresses = [];
324
+ if (change === null || change === false) {
325
+ walletAddresses.push(...(await this.getAddresses(index, addressesPerCall, false)));
326
+ }
327
+ if (change === null || change === true) {
328
+ walletAddresses.push(...(await this.getAddresses(index, addressesPerCall, true)));
329
+ }
330
+ const walletAddress = walletAddresses.find((walletAddr) => addresses.find((addr) => walletAddr.address === addr));
331
+ if (walletAddress) {
332
+ // Increment max addresses to derive by 100 if found within 100 addresses of maxAddressesToDerive
333
+ this._maxAddressesToDerive = Math.max(this._maxAddressesToDerive, index + 100);
334
+ return walletAddress;
335
+ }
336
+ index += addressesPerCall;
337
+ }
338
+ }
339
+ async getUsedAddresses(numAddressPerCall = 100) {
340
+ return this._getUsedUnusedAddresses(numAddressPerCall, AddressSearchType.EXTERNAL_OR_CHANGE).then(({ usedAddresses }) => usedAddresses);
341
+ }
342
+ async withCachedUtxos(func) {
343
+ const originalGetMethod = this.getMethod;
344
+ const memoizedGetFeePerByte = (0, memoizee_1.default)(this.getMethod('getFeePerByte'), {
345
+ primitive: true,
346
+ });
347
+ const memoizedGetUnspentTransactions = (0, memoizee_1.default)(this.getMethod('getUnspentTransactions'), { primitive: true });
348
+ const memoizedGetAddressTransactionCounts = (0, memoizee_1.default)(this.getMethod('getAddressTransactionCounts'), {
349
+ primitive: true,
350
+ });
351
+ this.getMethod = (method, requestor = this) => {
352
+ if (method === 'getFeePerByte')
353
+ return memoizedGetFeePerByte;
354
+ if (method === 'getUnspentTransactions')
355
+ return memoizedGetUnspentTransactions;
356
+ else if (method === 'getAddressTransactionCounts')
357
+ return memoizedGetAddressTransactionCounts;
358
+ else
359
+ return originalGetMethod.bind(this)(method, requestor);
360
+ };
361
+ const result = await func.bind(this)();
362
+ this.getMethod = originalGetMethod;
363
+ return result;
364
+ }
365
+ async getTotalFee(opts, max) {
366
+ const targets = this.sendOptionsToOutputs([opts]);
367
+ if (!max) {
368
+ const { fee } = await this.getInputsForAmount(targets, opts.fee);
369
+ return fee;
370
+ }
371
+ else {
372
+ const { fee } = await this.getInputsForAmount(targets.filter((t) => !t.value), opts.fee, [], 100, true);
373
+ return fee;
374
+ }
375
+ }
376
+ async getTotalFees(transactions, max) {
377
+ const fees = await this.withCachedUtxos(async () => {
378
+ const fees = {};
379
+ for (const tx of transactions) {
380
+ const fee = await this.getTotalFee(tx, max);
381
+ fees[tx.fee] = new types_1.BigNumber(fee);
382
+ }
383
+ return fees;
384
+ });
385
+ return fees;
386
+ }
387
+ async getInputsForAmount(_targets, feePerByte, fixedInputs = [], numAddressPerCall = 100, sweep = false) {
388
+ let addressIndex = 0;
389
+ let changeAddresses = [];
390
+ let externalAddresses = [];
391
+ const addressCountMap = {
392
+ change: 0,
393
+ nonChange: 0,
394
+ };
395
+ const feePerBytePromise = this.getMethod('getFeePerByte')();
396
+ let utxos = [];
397
+ while (addressCountMap.change < ADDRESS_GAP ||
398
+ addressCountMap.nonChange < ADDRESS_GAP) {
399
+ let addrList = [];
400
+ if (addressCountMap.change < ADDRESS_GAP) {
401
+ // Scanning for change addr
402
+ changeAddresses = await this.getAddresses(addressIndex, numAddressPerCall, true);
403
+ addrList = addrList.concat(changeAddresses);
404
+ }
405
+ else {
406
+ changeAddresses = [];
407
+ }
408
+ if (addressCountMap.nonChange < ADDRESS_GAP) {
409
+ // Scanning for non change addr
410
+ externalAddresses = await this.getAddresses(addressIndex, numAddressPerCall, false);
411
+ addrList = addrList.concat(externalAddresses);
412
+ }
413
+ const fixedUtxos = [];
414
+ if (fixedInputs.length > 0) {
415
+ for (const input of fixedInputs) {
416
+ const txHex = await this.getMethod('getRawTransactionByHash')(input.txid);
417
+ const tx = (0, bitcoin_utils_1.decodeRawTransaction)(txHex, this._network);
418
+ const value = new types_1.BigNumber(tx.vout[input.vout].value)
419
+ .times(1e8)
420
+ .toNumber();
421
+ const address = tx.vout[input.vout].scriptPubKey.addresses[0];
422
+ const walletAddress = await this.getWalletAddress(address);
423
+ const utxo = {
424
+ ...input,
425
+ value,
426
+ address,
427
+ derivationPath: walletAddress.derivationPath,
428
+ };
429
+ fixedUtxos.push(utxo);
430
+ }
431
+ }
432
+ if (!sweep || fixedUtxos.length === 0) {
433
+ const _utxos = await this.getMethod('getUnspentTransactions')(addrList);
434
+ utxos.push(..._utxos.map((utxo) => {
435
+ const addr = addrList.find((a) => a.address === utxo.address);
436
+ return {
437
+ ...utxo,
438
+ derivationPath: addr.derivationPath,
439
+ };
440
+ }));
441
+ }
442
+ else {
443
+ utxos = fixedUtxos;
444
+ }
445
+ const utxoBalance = utxos.reduce((a, b) => a + (b.value || 0), 0);
446
+ const transactionCounts = await this.getMethod('getAddressTransactionCounts')(addrList);
447
+ if (!feePerByte)
448
+ feePerByte = await feePerBytePromise;
449
+ const minRelayFee = await this.getMethod('getMinRelayFee')();
450
+ if (feePerByte < minRelayFee) {
451
+ throw new Error(`Fee supplied (${feePerByte} sat/b) too low. Minimum relay fee is ${minRelayFee} sat/b`);
452
+ }
453
+ let targets;
454
+ if (sweep) {
455
+ const outputBalance = _targets.reduce((a, b) => a + (b['value'] || 0), 0);
456
+ const sweepOutputSize = 39;
457
+ const paymentOutputSize = _targets.filter((t) => t.value && t.address).length * 39;
458
+ const scriptOutputSize = _targets
459
+ .filter((t) => !t.value && t.script)
460
+ .reduce((size, t) => size + 39 + t.script.byteLength, 0);
461
+ const outputSize = sweepOutputSize + paymentOutputSize + scriptOutputSize;
462
+ const inputSize = utxos.length * 153;
463
+ const sweepFee = feePerByte * (inputSize + outputSize);
464
+ const amountToSend = new types_1.BigNumber(utxoBalance).minus(sweepFee);
465
+ targets = _targets.map((target) => ({
466
+ id: 'main',
467
+ value: target.value,
468
+ script: target.script,
469
+ }));
470
+ targets.push({
471
+ id: 'main',
472
+ value: amountToSend.minus(outputBalance).toNumber(),
473
+ });
474
+ }
475
+ else {
476
+ targets = _targets.map((target) => ({
477
+ id: 'main',
478
+ value: target.value,
479
+ script: target.script,
480
+ }));
481
+ }
482
+ const { inputs, outputs, change, fee } = (0, bitcoin_utils_1.selectCoins)(utxos, targets, Math.ceil(feePerByte), fixedUtxos);
483
+ if (inputs && outputs) {
484
+ return {
485
+ inputs,
486
+ change,
487
+ outputs,
488
+ fee,
489
+ };
490
+ }
491
+ for (const address of addrList) {
492
+ const isUsed = transactionCounts[address.address];
493
+ const isChangeAddress = changeAddresses.find((a) => address.address === a.address);
494
+ const key = isChangeAddress ? 'change' : 'nonChange';
495
+ if (isUsed) {
496
+ addressCountMap[key] = 0;
497
+ }
498
+ else {
499
+ addressCountMap[key]++;
500
+ }
501
+ }
502
+ addressIndex += numAddressPerCall;
503
+ }
504
+ throw new errors_1.InsufficientBalanceError('Not enough balance');
505
+ }
506
+ async getInputsForDualFunding(collaterals, feePerByte, fixedInputs = [], numAddressPerCall = 100) {
507
+ let addressIndex = 0;
508
+ let changeAddresses = [];
509
+ let externalAddresses = [];
510
+ const addressCountMap = {
511
+ change: 0,
512
+ nonChange: 0,
513
+ };
514
+ const feePerBytePromise = this.getMethod('getFeePerByte')();
515
+ let utxos = [];
516
+ while (addressCountMap.change < ADDRESS_GAP ||
517
+ addressCountMap.nonChange < ADDRESS_GAP) {
518
+ let addrList = [];
519
+ if (addressCountMap.change < ADDRESS_GAP) {
520
+ // Scanning for change addr
521
+ changeAddresses = await this.getAddresses(addressIndex, numAddressPerCall, true);
522
+ addrList = addrList.concat(changeAddresses);
523
+ }
524
+ else {
525
+ changeAddresses = [];
526
+ }
527
+ if (addressCountMap.nonChange < ADDRESS_GAP) {
528
+ // Scanning for non change addr
529
+ externalAddresses = await this.getAddresses(addressIndex, numAddressPerCall, false);
530
+ addrList = addrList.concat(externalAddresses);
531
+ }
532
+ const fixedUtxos = [];
533
+ if (fixedInputs.length > 0) {
534
+ for (const input of fixedInputs) {
535
+ const txHex = await this.getMethod('getRawTransactionByHash')(input.txid);
536
+ const tx = (0, bitcoin_utils_1.decodeRawTransaction)(txHex, this._network);
537
+ const value = new types_1.BigNumber(tx.vout[input.vout].value)
538
+ .times(1e8)
539
+ .toNumber();
540
+ const address = tx.vout[input.vout].scriptPubKey.addresses[0];
541
+ const walletAddress = await this.getWalletAddress(address);
542
+ const utxo = {
543
+ ...input,
544
+ value,
545
+ address,
546
+ derivationPath: walletAddress.derivationPath,
547
+ };
548
+ fixedUtxos.push(utxo);
549
+ }
550
+ }
551
+ if (fixedUtxos.length === 0) {
552
+ const _utxos = await this.getMethod('getUnspentTransactions')(addrList);
553
+ utxos.push(..._utxos.map((utxo) => {
554
+ const addr = addrList.find((a) => a.address === utxo.address);
555
+ return {
556
+ ...utxo,
557
+ derivationPath: addr.derivationPath,
558
+ };
559
+ }));
560
+ }
561
+ else {
562
+ utxos = fixedUtxos;
563
+ }
564
+ const transactionCounts = await this.getMethod('getAddressTransactionCounts')(addrList);
565
+ if (!feePerByte)
566
+ feePerByte = await feePerBytePromise;
567
+ const minRelayFee = await this.getMethod('getMinRelayFee')();
568
+ if (feePerByte < minRelayFee) {
569
+ throw new Error(`Fee supplied (${feePerByte} sat/b) too low. Minimum relay fee is ${minRelayFee} sat/b`);
570
+ }
571
+ const { fee, inputs } = (0, core_1.dualFundingCoinSelect)(utxos, collaterals.map((c) => BigInt(c)), BigInt(feePerByte));
572
+ if (inputs.length > 0) {
573
+ return {
574
+ inputs,
575
+ fee,
576
+ };
577
+ }
578
+ for (const address of addrList) {
579
+ const isUsed = transactionCounts[address.address];
580
+ const isChangeAddress = changeAddresses.find((a) => address.address === a.address);
581
+ const key = isChangeAddress ? 'change' : 'nonChange';
582
+ if (isUsed) {
583
+ addressCountMap[key] = 0;
584
+ }
585
+ else {
586
+ addressCountMap[key]++;
587
+ }
588
+ }
589
+ addressIndex += numAddressPerCall;
590
+ }
591
+ throw new errors_1.InsufficientBalanceError('Not enough balance for dual funding');
592
+ }
593
+ }
594
+ return BitcoinWalletProvider;
595
+ };
596
+ //# sourceMappingURL=BitcoinWalletProvider.js.map
package/lib/index.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = void 0;
7
+ var BitcoinWalletProvider_1 = require("./BitcoinWalletProvider");
8
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(BitcoinWalletProvider_1).default; } });
9
+ //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@atomicfinance/bitcoin-wallet-provider",
3
3
  "umdName": "BitcoinWalletProvider",
4
- "version": "3.4.7",
4
+ "version": "3.5.1",
5
5
  "description": "Bitcoin Abstraction Layer Wallet Provider",
6
6
  "author": "Atomic Finance <info@atomic.finance>",
7
7
  "homepage": "",
@@ -15,9 +15,9 @@
15
15
  "lint:fix": "../../node_modules/.bin/eslint --fix --ignore-path ../../.eslintignore -c ../../.eslintrc.js ."
16
16
  },
17
17
  "dependencies": {
18
- "@atomicfinance/bitcoin-utils": "^3.4.7",
19
- "@atomicfinance/provider": "^3.4.7",
20
- "@atomicfinance/types": "^3.4.7",
18
+ "@atomicfinance/bitcoin-utils": "^3.5.1",
19
+ "@atomicfinance/provider": "^3.5.1",
20
+ "@atomicfinance/types": "^3.5.1",
21
21
  "@node-dlc/core": "0.23.6",
22
22
  "bitcoin-networks": "^1.0.0",
23
23
  "bitcoinjs-lib": "5.2.0",