@atomicfinance/bitcoin-wallet-provider 3.3.1 → 3.4.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.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +1 -1
- package/CHANGELOG.md +23 -0
- package/dist/BitcoinWalletProvider.d.ts +5 -1
- package/dist/BitcoinWalletProvider.js +88 -0
- package/dist/BitcoinWalletProvider.js.map +1 -1
- package/lib/BitcoinWalletProvider.ts +130 -0
- package/package.json +5 -4
package/.turbo/turbo-build.log
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@atomicfinance/bitcoin-wallet-provider:build: cache hit, replaying output [
|
|
1
|
+
@atomicfinance/bitcoin-wallet-provider:build: cache hit, replaying output [2m9b1e5ef12757ea29[0m
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@atomicfinance/bitcoin-wallet-provider:test: cache hit, replaying output [
|
|
1
|
+
@atomicfinance/bitcoin-wallet-provider:test: cache hit, replaying output [2m8e90e2b2b7a1831f[0m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @atomicfinance/bitcoin-wallet-provider
|
|
2
2
|
|
|
3
|
+
## 3.4.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 9781efe: Add getInputsForDualFunding functionality and bump @node-dlc
|
|
8
|
+
- Updated dependencies [9781efe]
|
|
9
|
+
- @atomicfinance/bitcoin-utils@3.4.1
|
|
10
|
+
- @atomicfinance/types@3.4.1
|
|
11
|
+
- @atomicfinance/provider@3.4.1
|
|
12
|
+
|
|
13
|
+
## 3.4.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- 314d7d7: Add batch dlc funding transactions
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies [314d7d7]
|
|
22
|
+
- @atomicfinance/types@3.4.0
|
|
23
|
+
- @atomicfinance/bitcoin-utils@3.4.0
|
|
24
|
+
- @atomicfinance/provider@3.4.0
|
|
25
|
+
|
|
3
26
|
## 3.3.1
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
|
@@ -110,10 +110,14 @@ declare const _default: <T extends Constructor<Provider>>(superclass: T) => {
|
|
|
110
110
|
getTotalFees(transactions: SendOptions[], max: boolean): Promise<any>;
|
|
111
111
|
getInputsForAmount(_targets: bT.OutputTarget[], feePerByte?: number, fixedInputs?: bT.Input[], numAddressPerCall?: number, sweep?: boolean): Promise<{
|
|
112
112
|
inputs: bT.UTXO[];
|
|
113
|
-
change:
|
|
113
|
+
change: CoinSelectTarget;
|
|
114
114
|
outputs: CoinSelectTarget[];
|
|
115
115
|
fee: number;
|
|
116
116
|
}>;
|
|
117
|
+
getInputsForDualFunding(collaterals: number[], feePerByte?: number, fixedInputs?: bT.Input[], numAddressPerCall?: number): Promise<{
|
|
118
|
+
inputs: import("@node-dlc/core").UTXO[];
|
|
119
|
+
fee: bigint;
|
|
120
|
+
}>;
|
|
117
121
|
client: import("@atomicfinance/types").IClient;
|
|
118
122
|
setClient(client?: import("@atomicfinance/types").IClient): void;
|
|
119
123
|
getMethod(method: string, requestor?: any): (...args: any[]) => any;
|
|
@@ -27,6 +27,7 @@ const bitcoin_utils_1 = require("@atomicfinance/bitcoin-utils");
|
|
|
27
27
|
const errors_1 = require("@atomicfinance/errors");
|
|
28
28
|
const types_1 = require("@atomicfinance/types");
|
|
29
29
|
const utils_1 = require("@atomicfinance/utils");
|
|
30
|
+
const core_1 = require("@node-dlc/core");
|
|
30
31
|
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
31
32
|
const memoizee_1 = __importDefault(require("memoizee"));
|
|
32
33
|
const ADDRESS_GAP = 30;
|
|
@@ -498,6 +499,93 @@ exports.default = (superclass) => {
|
|
|
498
499
|
}
|
|
499
500
|
throw new errors_1.InsufficientBalanceError('Not enough balance');
|
|
500
501
|
}
|
|
502
|
+
async getInputsForDualFunding(collaterals, feePerByte, fixedInputs = [], numAddressPerCall = 100) {
|
|
503
|
+
let addressIndex = 0;
|
|
504
|
+
let changeAddresses = [];
|
|
505
|
+
let externalAddresses = [];
|
|
506
|
+
const addressCountMap = {
|
|
507
|
+
change: 0,
|
|
508
|
+
nonChange: 0,
|
|
509
|
+
};
|
|
510
|
+
const feePerBytePromise = this.getMethod('getFeePerByte')();
|
|
511
|
+
let utxos = [];
|
|
512
|
+
while (addressCountMap.change < ADDRESS_GAP ||
|
|
513
|
+
addressCountMap.nonChange < ADDRESS_GAP) {
|
|
514
|
+
let addrList = [];
|
|
515
|
+
if (addressCountMap.change < ADDRESS_GAP) {
|
|
516
|
+
// Scanning for change addr
|
|
517
|
+
changeAddresses = await this.getAddresses(addressIndex, numAddressPerCall, true);
|
|
518
|
+
addrList = addrList.concat(changeAddresses);
|
|
519
|
+
}
|
|
520
|
+
else {
|
|
521
|
+
changeAddresses = [];
|
|
522
|
+
}
|
|
523
|
+
if (addressCountMap.nonChange < ADDRESS_GAP) {
|
|
524
|
+
// Scanning for non change addr
|
|
525
|
+
externalAddresses = await this.getAddresses(addressIndex, numAddressPerCall, false);
|
|
526
|
+
addrList = addrList.concat(externalAddresses);
|
|
527
|
+
}
|
|
528
|
+
const fixedUtxos = [];
|
|
529
|
+
if (fixedInputs.length > 0) {
|
|
530
|
+
for (const input of fixedInputs) {
|
|
531
|
+
const txHex = await this.getMethod('getRawTransactionByHash')(input.txid);
|
|
532
|
+
const tx = bitcoin_utils_1.decodeRawTransaction(txHex, this._network);
|
|
533
|
+
const value = new types_1.BigNumber(tx.vout[input.vout].value)
|
|
534
|
+
.times(1e8)
|
|
535
|
+
.toNumber();
|
|
536
|
+
const address = tx.vout[input.vout].scriptPubKey.addresses[0];
|
|
537
|
+
const walletAddress = await this.getWalletAddress(address);
|
|
538
|
+
const utxo = {
|
|
539
|
+
...input,
|
|
540
|
+
value,
|
|
541
|
+
address,
|
|
542
|
+
derivationPath: walletAddress.derivationPath,
|
|
543
|
+
};
|
|
544
|
+
fixedUtxos.push(utxo);
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
if (fixedUtxos.length === 0) {
|
|
548
|
+
const _utxos = await this.getMethod('getUnspentTransactions')(addrList);
|
|
549
|
+
utxos.push(..._utxos.map((utxo) => {
|
|
550
|
+
const addr = addrList.find((a) => a.address === utxo.address);
|
|
551
|
+
return {
|
|
552
|
+
...utxo,
|
|
553
|
+
derivationPath: addr.derivationPath,
|
|
554
|
+
};
|
|
555
|
+
}));
|
|
556
|
+
}
|
|
557
|
+
else {
|
|
558
|
+
utxos = fixedUtxos;
|
|
559
|
+
}
|
|
560
|
+
const transactionCounts = await this.getMethod('getAddressTransactionCounts')(addrList);
|
|
561
|
+
if (!feePerByte)
|
|
562
|
+
feePerByte = await feePerBytePromise;
|
|
563
|
+
const minRelayFee = await this.getMethod('getMinRelayFee')();
|
|
564
|
+
if (feePerByte < minRelayFee) {
|
|
565
|
+
throw new Error(`Fee supplied (${feePerByte} sat/b) too low. Minimum relay fee is ${minRelayFee} sat/b`);
|
|
566
|
+
}
|
|
567
|
+
const { fee, inputs } = core_1.dualFundingCoinSelect(utxos, collaterals.map((c) => BigInt(c)), BigInt(feePerByte));
|
|
568
|
+
if (inputs.length > 0) {
|
|
569
|
+
return {
|
|
570
|
+
inputs,
|
|
571
|
+
fee,
|
|
572
|
+
};
|
|
573
|
+
}
|
|
574
|
+
for (const address of addrList) {
|
|
575
|
+
const isUsed = transactionCounts[address.address];
|
|
576
|
+
const isChangeAddress = changeAddresses.find((a) => address.address === a.address);
|
|
577
|
+
const key = isChangeAddress ? 'change' : 'nonChange';
|
|
578
|
+
if (isUsed) {
|
|
579
|
+
addressCountMap[key] = 0;
|
|
580
|
+
}
|
|
581
|
+
else {
|
|
582
|
+
addressCountMap[key]++;
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
addressIndex += numAddressPerCall;
|
|
586
|
+
}
|
|
587
|
+
throw new errors_1.InsufficientBalanceError('Not enough balance for dual funding');
|
|
588
|
+
}
|
|
501
589
|
}
|
|
502
590
|
return BitcoinWalletProvider;
|
|
503
591
|
};
|
|
@@ -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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"}
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
WalletProvider,
|
|
17
17
|
} from '@atomicfinance/types';
|
|
18
18
|
import { addressToString } from '@atomicfinance/utils';
|
|
19
|
+
import { dualFundingCoinSelect } from '@node-dlc/core';
|
|
19
20
|
import { BitcoinNetwork } from 'bitcoin-networks';
|
|
20
21
|
import * as bitcoin from 'bitcoinjs-lib';
|
|
21
22
|
import { BIP32Interface } from 'bitcoinjs-lib';
|
|
@@ -765,6 +766,135 @@ export default <T extends Constructor<Provider>>(superclass: T) => {
|
|
|
765
766
|
|
|
766
767
|
throw new InsufficientBalanceError('Not enough balance');
|
|
767
768
|
}
|
|
769
|
+
|
|
770
|
+
async getInputsForDualFunding(
|
|
771
|
+
collaterals: number[],
|
|
772
|
+
feePerByte?: number,
|
|
773
|
+
fixedInputs: bT.Input[] = [],
|
|
774
|
+
numAddressPerCall = 100,
|
|
775
|
+
) {
|
|
776
|
+
let addressIndex = 0;
|
|
777
|
+
let changeAddresses: Address[] = [];
|
|
778
|
+
let externalAddresses: Address[] = [];
|
|
779
|
+
const addressCountMap = {
|
|
780
|
+
change: 0,
|
|
781
|
+
nonChange: 0,
|
|
782
|
+
};
|
|
783
|
+
|
|
784
|
+
const feePerBytePromise = this.getMethod('getFeePerByte')();
|
|
785
|
+
let utxos: bT.UTXO[] = [];
|
|
786
|
+
|
|
787
|
+
while (
|
|
788
|
+
addressCountMap.change < ADDRESS_GAP ||
|
|
789
|
+
addressCountMap.nonChange < ADDRESS_GAP
|
|
790
|
+
) {
|
|
791
|
+
let addrList: Address[] = [];
|
|
792
|
+
|
|
793
|
+
if (addressCountMap.change < ADDRESS_GAP) {
|
|
794
|
+
// Scanning for change addr
|
|
795
|
+
changeAddresses = await this.getAddresses(
|
|
796
|
+
addressIndex,
|
|
797
|
+
numAddressPerCall,
|
|
798
|
+
true,
|
|
799
|
+
);
|
|
800
|
+
addrList = addrList.concat(changeAddresses);
|
|
801
|
+
} else {
|
|
802
|
+
changeAddresses = [];
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
if (addressCountMap.nonChange < ADDRESS_GAP) {
|
|
806
|
+
// Scanning for non change addr
|
|
807
|
+
externalAddresses = await this.getAddresses(
|
|
808
|
+
addressIndex,
|
|
809
|
+
numAddressPerCall,
|
|
810
|
+
false,
|
|
811
|
+
);
|
|
812
|
+
addrList = addrList.concat(externalAddresses);
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
const fixedUtxos: bT.UTXO[] = [];
|
|
816
|
+
if (fixedInputs.length > 0) {
|
|
817
|
+
for (const input of fixedInputs) {
|
|
818
|
+
const txHex = await this.getMethod('getRawTransactionByHash')(
|
|
819
|
+
input.txid,
|
|
820
|
+
);
|
|
821
|
+
const tx = decodeRawTransaction(txHex, this._network);
|
|
822
|
+
const value = new BigNumber(tx.vout[input.vout].value)
|
|
823
|
+
.times(1e8)
|
|
824
|
+
.toNumber();
|
|
825
|
+
const address = tx.vout[input.vout].scriptPubKey.addresses[0];
|
|
826
|
+
const walletAddress = await this.getWalletAddress(address);
|
|
827
|
+
const utxo = {
|
|
828
|
+
...input,
|
|
829
|
+
value,
|
|
830
|
+
address,
|
|
831
|
+
derivationPath: walletAddress.derivationPath,
|
|
832
|
+
};
|
|
833
|
+
fixedUtxos.push(utxo);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
if (fixedUtxos.length === 0) {
|
|
838
|
+
const _utxos: bT.UTXO[] = await this.getMethod(
|
|
839
|
+
'getUnspentTransactions',
|
|
840
|
+
)(addrList);
|
|
841
|
+
utxos.push(
|
|
842
|
+
..._utxos.map((utxo) => {
|
|
843
|
+
const addr = addrList.find((a) => a.address === utxo.address);
|
|
844
|
+
return {
|
|
845
|
+
...utxo,
|
|
846
|
+
derivationPath: addr.derivationPath,
|
|
847
|
+
};
|
|
848
|
+
}),
|
|
849
|
+
);
|
|
850
|
+
} else {
|
|
851
|
+
utxos = fixedUtxos;
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
const transactionCounts: bT.AddressTxCounts = await this.getMethod(
|
|
855
|
+
'getAddressTransactionCounts',
|
|
856
|
+
)(addrList);
|
|
857
|
+
|
|
858
|
+
if (!feePerByte) feePerByte = await feePerBytePromise;
|
|
859
|
+
const minRelayFee = await this.getMethod('getMinRelayFee')();
|
|
860
|
+
if (feePerByte < minRelayFee) {
|
|
861
|
+
throw new Error(
|
|
862
|
+
`Fee supplied (${feePerByte} sat/b) too low. Minimum relay fee is ${minRelayFee} sat/b`,
|
|
863
|
+
);
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
const { fee, inputs } = dualFundingCoinSelect(
|
|
867
|
+
utxos,
|
|
868
|
+
collaterals.map((c) => BigInt(c)),
|
|
869
|
+
BigInt(feePerByte),
|
|
870
|
+
);
|
|
871
|
+
|
|
872
|
+
if (inputs.length > 0) {
|
|
873
|
+
return {
|
|
874
|
+
inputs,
|
|
875
|
+
fee,
|
|
876
|
+
};
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
for (const address of addrList) {
|
|
880
|
+
const isUsed = transactionCounts[address.address];
|
|
881
|
+
const isChangeAddress = changeAddresses.find(
|
|
882
|
+
(a) => address.address === a.address,
|
|
883
|
+
);
|
|
884
|
+
const key = isChangeAddress ? 'change' : 'nonChange';
|
|
885
|
+
|
|
886
|
+
if (isUsed) {
|
|
887
|
+
addressCountMap[key] = 0;
|
|
888
|
+
} else {
|
|
889
|
+
addressCountMap[key]++;
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
addressIndex += numAddressPerCall;
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
throw new InsufficientBalanceError('Not enough balance for dual funding');
|
|
897
|
+
}
|
|
768
898
|
}
|
|
769
899
|
return BitcoinWalletProvider;
|
|
770
900
|
};
|
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
|
+
"version": "3.4.1",
|
|
5
5
|
"description": "Bitcoin Abstraction Layer Wallet Provider",
|
|
6
6
|
"author": "Atomic Finance <info@atomic.finance>",
|
|
7
7
|
"homepage": "",
|
|
@@ -15,9 +15,10 @@
|
|
|
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.
|
|
19
|
-
"@atomicfinance/provider": "^3.
|
|
20
|
-
"@atomicfinance/types": "^3.
|
|
18
|
+
"@atomicfinance/bitcoin-utils": "^3.4.1",
|
|
19
|
+
"@atomicfinance/provider": "^3.4.1",
|
|
20
|
+
"@atomicfinance/types": "^3.4.1",
|
|
21
|
+
"@node-dlc/core": "0.23.0",
|
|
21
22
|
"bitcoin-networks": "^1.0.0",
|
|
22
23
|
"bitcoinjs-lib": "5.2.0",
|
|
23
24
|
"lodash": "^4.17.20",
|