@atomicfinance/bitcoin-wallet-provider 3.5.3 → 3.6.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 +0,0 @@
1
-
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @atomicfinance/bitcoin-wallet-provider
2
2
 
3
+ ## 3.6.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 3c85279: Upgrade bitcoinjs-lib v6 with ECPair migration
8
+ - Updated dependencies [3c85279]
9
+ - @atomicfinance/bitcoin-utils@3.6.1
10
+ - @atomicfinance/provider@3.6.1
11
+ - @atomicfinance/types@3.6.1
12
+
13
+ ## 3.6.0
14
+
15
+ ### Minor Changes
16
+
17
+ - cbf35c5: - **BREAKING CHANGE**: Migrated from `@node-lightning` packages to `@node-dlc` packages
18
+ - Updated all imports from `@node-lightning/*` to `@node-dlc/*`
19
+ - Update @node-dlc 0.24.0 and Node 18+
20
+ - Upgraded Node.js requirement to v18+
21
+ - Updated cfd-dlc-js to v0.0.51 and cfd-js to v0.3.13
22
+ - Removed unused dependencies: lerna, mocha-webpack
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [cbf35c5]
27
+ - @atomicfinance/types@3.6.0
28
+ - @atomicfinance/bitcoin-utils@3.6.0
29
+ - @atomicfinance/provider@3.6.0
30
+
3
31
  ## 3.5.3
4
32
 
5
33
  ### Patch Changes
@@ -2,9 +2,9 @@
2
2
  import { CoinSelectTarget } from '@atomicfinance/bitcoin-utils';
3
3
  import Provider from '@atomicfinance/provider';
4
4
  import { Address, bitcoin as bT, SendOptions, Transaction } from '@atomicfinance/types';
5
+ import { BIP32Interface } from 'bip32';
5
6
  import { BitcoinNetwork } from 'bitcoin-networks';
6
7
  import * as bitcoin from 'bitcoinjs-lib';
7
- import { BIP32Interface } from 'bitcoinjs-lib';
8
8
  type UnusedAddressesBlacklist = {
9
9
  [address: string]: true;
10
10
  };
@@ -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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"}
@@ -17,9 +17,9 @@ import {
17
17
  } from '@atomicfinance/types';
18
18
  import { addressToString } from '@atomicfinance/utils';
19
19
  import { dualFundingCoinSelect } from '@node-dlc/core';
20
+ import { BIP32Interface } from 'bip32';
20
21
  import { BitcoinNetwork } from 'bitcoin-networks';
21
22
  import * as bitcoin from 'bitcoinjs-lib';
22
- import { BIP32Interface } from 'bitcoinjs-lib';
23
23
  import memoize from 'memoizee';
24
24
 
25
25
  const ADDRESS_GAP = 30;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@atomicfinance/bitcoin-wallet-provider",
3
3
  "umdName": "BitcoinWalletProvider",
4
- "version": "3.5.3",
4
+ "version": "3.6.1",
5
5
  "description": "Bitcoin Abstraction Layer Wallet Provider",
6
6
  "author": "Atomic Finance <info@atomic.finance>",
7
7
  "homepage": "",
@@ -15,12 +15,13 @@
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.5.3",
19
- "@atomicfinance/provider": "^3.5.3",
20
- "@atomicfinance/types": "^3.5.3",
21
- "@node-dlc/core": "0.23.6",
18
+ "@atomicfinance/bitcoin-utils": "^3.6.1",
19
+ "@atomicfinance/provider": "^3.6.1",
20
+ "@atomicfinance/types": "^3.6.1",
21
+ "@node-dlc/core": "0.24.0",
22
+ "bip32": "^2.0.6",
22
23
  "bitcoin-networks": "^1.0.0",
23
- "bitcoinjs-lib": "5.2.0",
24
+ "bitcoinjs-lib": "6.1.7",
24
25
  "lodash": "^4.17.20",
25
26
  "memoizee": "^0.4.15"
26
27
  },
@@ -1,596 +0,0 @@
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 DELETED
@@ -1,9 +0,0 @@
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