@yaswap/bitcoin 3.3.7 → 3.4.0
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/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +3 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/types.d.ts +32 -3
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/wallet/BitcoinBaseWallet.d.ts +32 -21
- package/dist/lib/wallet/BitcoinBaseWallet.js +179 -51
- package/dist/lib/wallet/BitcoinBaseWallet.js.map +1 -1
- package/dist/lib/wallet/BitcoinHDWallet.d.ts +23 -7
- package/dist/lib/wallet/BitcoinHDWallet.js +117 -20
- package/dist/lib/wallet/BitcoinHDWallet.js.map +1 -1
- package/dist/lib/wallet/BitcoinNodeWallet.d.ts +11 -7
- package/dist/lib/wallet/BitcoinNodeWallet.js +23 -3
- package/dist/lib/wallet/BitcoinNodeWallet.js.map +1 -1
- package/dist/lib/wallet/BitcoinSingleWallet.d.ts +14 -12
- package/dist/lib/wallet/BitcoinSingleWallet.js +13 -5
- package/dist/lib/wallet/BitcoinSingleWallet.js.map +1 -1
- package/dist/lib/wallet/IBitcoinWallet.d.ts +9 -3
- package/package.json +36 -36
- package/CHANGELOG.md +0 -666
|
@@ -3,24 +3,31 @@ import { Chain } from '@yaswap/client';
|
|
|
3
3
|
import { AddressType, Asset, BigNumber } from '@yaswap/types';
|
|
4
4
|
import { BIP32Interface } from 'bip32';
|
|
5
5
|
import { BitcoinBaseChainProvider } from '../chain/BitcoinBaseChainProvider';
|
|
6
|
-
import { BitcoinHDWalletProviderOptions,
|
|
6
|
+
import { BitcoinHDWalletProviderOptions, OutputTarget, PsbtInputTarget, RawExtendedPrivateKey, RawExtendedPublicKey, UTXO } from '../types';
|
|
7
7
|
import { BitcoinBaseWalletProvider } from './BitcoinBaseWallet';
|
|
8
8
|
import { IBitcoinWallet } from './IBitcoinWallet';
|
|
9
9
|
export declare class BitcoinHDWalletProvider extends BitcoinBaseWalletProvider implements IBitcoinWallet<BitcoinBaseChainProvider> {
|
|
10
|
-
private _mnemonic
|
|
11
|
-
private
|
|
12
|
-
private
|
|
10
|
+
private _mnemonic?;
|
|
11
|
+
private _extendedPublicKey?;
|
|
12
|
+
private _extendedPrivateKey?;
|
|
13
|
+
private _seedNode?;
|
|
14
|
+
private _baseDerivationNode?;
|
|
13
15
|
constructor(options: BitcoinHDWalletProviderOptions, chainProvider?: Chain<BitcoinBaseChainProvider>);
|
|
14
16
|
canUpdateFee(): boolean;
|
|
15
17
|
getSigner(): Promise<null>;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Get the first receiving (external) or change address.
|
|
20
|
+
*
|
|
21
|
+
* @param change - When true, returns the first change address; otherwise the first receiving address.
|
|
22
|
+
*/
|
|
23
|
+
getAddress(change?: boolean): Promise<AddressType>;
|
|
24
|
+
getBalance(_assets: Asset[], change?: boolean, addressLimit?: number): Promise<BigNumber[]>;
|
|
18
25
|
signMessage(message: string, from: string): Promise<string>;
|
|
19
26
|
exportPrivateKey(): Promise<string>;
|
|
20
27
|
getConnectedNetwork(): Promise<import("../types").BitcoinNetwork>;
|
|
21
28
|
isWalletAvailable(): Promise<boolean>;
|
|
22
29
|
protected baseDerivationNode(): Promise<BIP32Interface>;
|
|
23
|
-
protected buildTransaction(targets: OutputTarget[], feePerByte?: number,
|
|
30
|
+
protected buildTransaction(targets: OutputTarget[], feePerByte?: number, fixedUtxos?: UTXO[], change?: boolean, addressLimit?: number): Promise<{
|
|
24
31
|
hex: string;
|
|
25
32
|
fee: number;
|
|
26
33
|
}>;
|
|
@@ -36,7 +43,16 @@ export declare class BitcoinHDWalletProvider extends BitcoinBaseWalletProvider i
|
|
|
36
43
|
outputScript: Buffer;
|
|
37
44
|
txInputIndex?: number;
|
|
38
45
|
}], addresses: string, tx: any, lockTime?: number, segwit?: boolean): Promise<Buffer[]>;
|
|
46
|
+
setMnemonic(mnemonic: string | undefined): void;
|
|
47
|
+
setExtendedPublicKey(extendedPublicKey: RawExtendedPublicKey | undefined): void;
|
|
48
|
+
setExtendedPrivateKey(extendedPrivateKey: RawExtendedPrivateKey | undefined): void;
|
|
49
|
+
isWatchOnly(): boolean;
|
|
50
|
+
private ensureHasCredentials;
|
|
51
|
+
private ensureCanSign;
|
|
39
52
|
private keyPair;
|
|
40
53
|
private _toWIF;
|
|
41
54
|
private seedNode;
|
|
55
|
+
private assertExtendedPublicKey;
|
|
56
|
+
private assertExtendedPrivateKey;
|
|
57
|
+
private resetDerivedState;
|
|
42
58
|
}
|
|
@@ -18,12 +18,19 @@ const types_1 = require("../types");
|
|
|
18
18
|
const BitcoinBaseWallet_1 = require("./BitcoinBaseWallet");
|
|
19
19
|
class BitcoinHDWalletProvider extends BitcoinBaseWallet_1.BitcoinBaseWalletProvider {
|
|
20
20
|
constructor(options, chainProvider) {
|
|
21
|
-
const { mnemonic, baseDerivationPath, addressType = types_1.AddressType.BECH32, network } = options;
|
|
21
|
+
const { mnemonic, extendedPublicKey, extendedPrivateKey, baseDerivationPath, addressType = types_1.AddressType.BECH32, network } = options;
|
|
22
22
|
super({ baseDerivationPath, addressType, network }, chainProvider);
|
|
23
|
-
if (
|
|
24
|
-
|
|
23
|
+
if (mnemonic !== undefined && mnemonic !== '') {
|
|
24
|
+
this._mnemonic = mnemonic;
|
|
25
|
+
}
|
|
26
|
+
if (extendedPublicKey !== undefined) {
|
|
27
|
+
this.assertExtendedPublicKey(extendedPublicKey);
|
|
28
|
+
this._extendedPublicKey = extendedPublicKey;
|
|
29
|
+
}
|
|
30
|
+
if (extendedPrivateKey !== undefined) {
|
|
31
|
+
this.assertExtendedPrivateKey(extendedPrivateKey);
|
|
32
|
+
this._extendedPrivateKey = extendedPrivateKey;
|
|
25
33
|
}
|
|
26
|
-
this._mnemonic = mnemonic;
|
|
27
34
|
}
|
|
28
35
|
canUpdateFee() {
|
|
29
36
|
return true;
|
|
@@ -33,20 +40,27 @@ class BitcoinHDWalletProvider extends BitcoinBaseWallet_1.BitcoinBaseWalletProvi
|
|
|
33
40
|
return null;
|
|
34
41
|
});
|
|
35
42
|
}
|
|
36
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Get the first receiving (external) or change address.
|
|
45
|
+
*
|
|
46
|
+
* @param change - When true, returns the first change address; otherwise the first receiving address.
|
|
47
|
+
*/
|
|
48
|
+
getAddress(change = false) {
|
|
37
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
const addresses = yield this.getAddresses();
|
|
50
|
+
const addresses = yield this.getAddresses(0, 1, change);
|
|
39
51
|
return addresses[0];
|
|
40
52
|
});
|
|
41
53
|
}
|
|
42
|
-
getBalance(_assets) {
|
|
54
|
+
getBalance(_assets, change = false, addressLimit = BitcoinBaseWallet_1.NUMBER_ADDRESS_LIMIT) {
|
|
43
55
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
const
|
|
56
|
+
const addressType = change ? BitcoinBaseWallet_1.AddressSearchType.EXTERNAL_OR_CHANGE : BitcoinBaseWallet_1.AddressSearchType.EXTERNAL;
|
|
57
|
+
const addresses = yield this.getUsedAddresses(addressType, addressLimit);
|
|
45
58
|
return yield this.chainProvider.getBalance(addresses, _assets);
|
|
46
59
|
});
|
|
47
60
|
}
|
|
48
61
|
signMessage(message, from) {
|
|
49
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
this.ensureCanSign();
|
|
50
64
|
const address = yield this.getWalletAddress(from);
|
|
51
65
|
const keyPair = yield this.keyPair(address.derivationPath);
|
|
52
66
|
const signature = yield (0, bitcoinjs_message_1.signAsync)(message, keyPair.privateKey, keyPair.compressed);
|
|
@@ -55,6 +69,7 @@ class BitcoinHDWalletProvider extends BitcoinBaseWallet_1.BitcoinBaseWalletProvi
|
|
|
55
69
|
}
|
|
56
70
|
exportPrivateKey() {
|
|
57
71
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
this.ensureCanSign();
|
|
58
73
|
return this._toWIF(this._baseDerivationPath);
|
|
59
74
|
});
|
|
60
75
|
}
|
|
@@ -73,20 +88,34 @@ class BitcoinHDWalletProvider extends BitcoinBaseWallet_1.BitcoinBaseWalletProvi
|
|
|
73
88
|
if (this._baseDerivationNode) {
|
|
74
89
|
return this._baseDerivationNode;
|
|
75
90
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
91
|
+
this.ensureHasCredentials();
|
|
92
|
+
// Priority: mnemonic -> extended private key -> extended public key
|
|
93
|
+
if (this._mnemonic) {
|
|
94
|
+
const baseNode = yield this.seedNode();
|
|
95
|
+
this._baseDerivationNode = baseNode.derivePath(this._baseDerivationPath);
|
|
96
|
+
return this._baseDerivationNode;
|
|
97
|
+
}
|
|
98
|
+
if (this._extendedPrivateKey) {
|
|
99
|
+
this._baseDerivationNode = (0, bip32_1.fromPrivateKey)(this._extendedPrivateKey.privateKey, this._extendedPrivateKey.chainCode, this._network);
|
|
100
|
+
return this._baseDerivationNode;
|
|
101
|
+
}
|
|
102
|
+
if (this._extendedPublicKey) {
|
|
103
|
+
this._baseDerivationNode = (0, bip32_1.fromPublicKey)(this._extendedPublicKey.publicKey, this._extendedPublicKey.chainCode, this._network);
|
|
104
|
+
return this._baseDerivationNode;
|
|
105
|
+
}
|
|
106
|
+
throw new Error('No credentials available');
|
|
79
107
|
});
|
|
80
108
|
}
|
|
81
|
-
buildTransaction(targets, feePerByte,
|
|
109
|
+
buildTransaction(targets, feePerByte, fixedUtxos, change = false, addressLimit = BitcoinBaseWallet_1.NUMBER_ADDRESS_LIMIT) {
|
|
82
110
|
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
this.ensureCanSign();
|
|
83
112
|
const network = this._network;
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
113
|
+
const { inputs, change: changeOutput, fee } = yield this.getInputsForAmount(targets, feePerByte, fixedUtxos, false, addressLimit, change);
|
|
114
|
+
if (changeOutput) {
|
|
115
|
+
const unusedAddress = yield this.getUnusedAddress(change, addressLimit);
|
|
87
116
|
targets.push({
|
|
88
117
|
address: unusedAddress.address,
|
|
89
|
-
value:
|
|
118
|
+
value: changeOutput.value,
|
|
90
119
|
});
|
|
91
120
|
}
|
|
92
121
|
const psbt = new bitcoinjs_lib_1.Psbt({ network });
|
|
@@ -141,21 +170,23 @@ class BitcoinHDWalletProvider extends BitcoinBaseWallet_1.BitcoinBaseWalletProvi
|
|
|
141
170
|
}
|
|
142
171
|
buildSweepTransaction(externalChangeAddress, feePerByte) {
|
|
143
172
|
return __awaiter(this, void 0, void 0, function* () {
|
|
173
|
+
this.ensureCanSign();
|
|
144
174
|
let _feePerByte = feePerByte || null; // TODO: fix me
|
|
145
175
|
if (!_feePerByte) {
|
|
146
176
|
_feePerByte = yield this.chainProvider.getProvider().getFeePerByte();
|
|
147
177
|
}
|
|
148
|
-
const { inputs, outputs, change } = yield this.getInputsForAmount([], _feePerByte, [], true);
|
|
178
|
+
const { inputs, outputs, change } = yield this.getInputsForAmount([], _feePerByte, [], true, BitcoinBaseWallet_1.NUMBER_ADDRESS_LIMIT, true);
|
|
149
179
|
if (change) {
|
|
150
180
|
throw new Error('There should not be any change for sweeping transaction');
|
|
151
181
|
}
|
|
152
182
|
const _outputs = [{ address: externalChangeAddress, value: outputs[0].value }];
|
|
153
183
|
// TODO: fix the inherited legacy code
|
|
154
|
-
return this.buildTransaction(_outputs, feePerByte, inputs);
|
|
184
|
+
return this.buildTransaction(_outputs, feePerByte, inputs, false, BitcoinBaseWallet_1.NUMBER_ADDRESS_LIMIT);
|
|
155
185
|
});
|
|
156
186
|
}
|
|
157
187
|
signPSBT(data, inputs) {
|
|
158
188
|
return __awaiter(this, void 0, void 0, function* () {
|
|
189
|
+
this.ensureCanSign();
|
|
159
190
|
const psbt = bitcoinjs_lib_1.Psbt.fromBase64(data, { network: this._network });
|
|
160
191
|
for (const input of inputs) {
|
|
161
192
|
const keyPair = yield this.keyPair(input.derivationPath);
|
|
@@ -166,6 +197,7 @@ class BitcoinHDWalletProvider extends BitcoinBaseWallet_1.BitcoinBaseWalletProvi
|
|
|
166
197
|
}
|
|
167
198
|
signBatchP2SHTransaction(inputs, addresses, tx, lockTime, segwit) {
|
|
168
199
|
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
+
this.ensureCanSign();
|
|
169
201
|
const keyPairs = [];
|
|
170
202
|
for (const address of addresses) {
|
|
171
203
|
const wallet = yield this.getWalletAddress(address);
|
|
@@ -188,6 +220,40 @@ class BitcoinHDWalletProvider extends BitcoinBaseWallet_1.BitcoinBaseWalletProvi
|
|
|
188
220
|
return sigs;
|
|
189
221
|
});
|
|
190
222
|
}
|
|
223
|
+
setMnemonic(mnemonic) {
|
|
224
|
+
if (mnemonic !== undefined && mnemonic === '') {
|
|
225
|
+
throw new Error('Mnemonic should not be empty');
|
|
226
|
+
}
|
|
227
|
+
this._mnemonic = mnemonic;
|
|
228
|
+
this.resetDerivedState();
|
|
229
|
+
}
|
|
230
|
+
setExtendedPublicKey(extendedPublicKey) {
|
|
231
|
+
if (extendedPublicKey !== undefined) {
|
|
232
|
+
this.assertExtendedPublicKey(extendedPublicKey);
|
|
233
|
+
}
|
|
234
|
+
this._extendedPublicKey = extendedPublicKey;
|
|
235
|
+
this.resetDerivedState();
|
|
236
|
+
}
|
|
237
|
+
setExtendedPrivateKey(extendedPrivateKey) {
|
|
238
|
+
if (extendedPrivateKey !== undefined) {
|
|
239
|
+
this.assertExtendedPrivateKey(extendedPrivateKey);
|
|
240
|
+
}
|
|
241
|
+
this._extendedPrivateKey = extendedPrivateKey;
|
|
242
|
+
this.resetDerivedState();
|
|
243
|
+
}
|
|
244
|
+
isWatchOnly() {
|
|
245
|
+
return !this._mnemonic && !this._extendedPrivateKey;
|
|
246
|
+
}
|
|
247
|
+
ensureHasCredentials() {
|
|
248
|
+
if (!this._mnemonic && !this._extendedPublicKey && !this._extendedPrivateKey) {
|
|
249
|
+
throw new Error('Wallet has no credentials. Provide a mnemonic seed phrase, extended public key or extended private key using setMnemonic(), setExtendedPublicKey() or setExtendedPrivateKey().');
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
ensureCanSign() {
|
|
253
|
+
if (!this._mnemonic && !this._extendedPrivateKey) {
|
|
254
|
+
throw new Error('Wallet is watch-only. Signing operations require a mnemonic or extended private key.');
|
|
255
|
+
}
|
|
256
|
+
}
|
|
191
257
|
keyPair(derivationPath) {
|
|
192
258
|
return __awaiter(this, void 0, void 0, function* () {
|
|
193
259
|
const wif = yield this._toWIF(derivationPath);
|
|
@@ -196,8 +262,11 @@ class BitcoinHDWalletProvider extends BitcoinBaseWallet_1.BitcoinBaseWalletProvi
|
|
|
196
262
|
}
|
|
197
263
|
_toWIF(derivationPath) {
|
|
198
264
|
return __awaiter(this, void 0, void 0, function* () {
|
|
199
|
-
|
|
200
|
-
|
|
265
|
+
this.ensureCanSign();
|
|
266
|
+
const baseNode = yield this.baseDerivationNode();
|
|
267
|
+
const subPath = derivationPath === this._baseDerivationPath ? '' : derivationPath.replace(this._baseDerivationPath + '/', '');
|
|
268
|
+
const node = subPath === '' ? baseNode : baseNode.derivePath(subPath);
|
|
269
|
+
return node.toWIF();
|
|
201
270
|
});
|
|
202
271
|
}
|
|
203
272
|
seedNode() {
|
|
@@ -205,11 +274,39 @@ class BitcoinHDWalletProvider extends BitcoinBaseWallet_1.BitcoinBaseWalletProvi
|
|
|
205
274
|
if (this._seedNode) {
|
|
206
275
|
return this._seedNode;
|
|
207
276
|
}
|
|
277
|
+
this.ensureCanSign();
|
|
208
278
|
const seed = yield (0, bip39_1.mnemonicToSeed)(this._mnemonic);
|
|
209
279
|
this._seedNode = (0, bip32_1.fromSeed)(seed, this._network);
|
|
210
280
|
return this._seedNode;
|
|
211
281
|
});
|
|
212
282
|
}
|
|
283
|
+
assertExtendedPublicKey(extendedPublicKey) {
|
|
284
|
+
if (!(extendedPublicKey === null || extendedPublicKey === void 0 ? void 0 : extendedPublicKey.publicKey) || !(extendedPublicKey === null || extendedPublicKey === void 0 ? void 0 : extendedPublicKey.chainCode)) {
|
|
285
|
+
throw new Error('extendedPublicKey requires both publicKey and chainCode buffers');
|
|
286
|
+
}
|
|
287
|
+
if (!(extendedPublicKey.publicKey instanceof Buffer) || extendedPublicKey.publicKey.length !== 33) {
|
|
288
|
+
throw new Error('extendedPublicKey.publicKey must be a 33-byte Buffer');
|
|
289
|
+
}
|
|
290
|
+
if (!(extendedPublicKey.chainCode instanceof Buffer) || extendedPublicKey.chainCode.length !== 32) {
|
|
291
|
+
throw new Error('extendedPublicKey.chainCode must be a 32-byte Buffer');
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
assertExtendedPrivateKey(extendedPrivateKey) {
|
|
295
|
+
if (!(extendedPrivateKey === null || extendedPrivateKey === void 0 ? void 0 : extendedPrivateKey.privateKey) || !(extendedPrivateKey === null || extendedPrivateKey === void 0 ? void 0 : extendedPrivateKey.chainCode)) {
|
|
296
|
+
throw new Error('extendedPrivateKey requires both privateKey and chainCode buffers');
|
|
297
|
+
}
|
|
298
|
+
if (!(extendedPrivateKey.privateKey instanceof Buffer) || extendedPrivateKey.privateKey.length !== 32) {
|
|
299
|
+
throw new Error('extendedPrivateKey.privateKey must be a 32-byte Buffer');
|
|
300
|
+
}
|
|
301
|
+
if (!(extendedPrivateKey.chainCode instanceof Buffer) || extendedPrivateKey.chainCode.length !== 32) {
|
|
302
|
+
throw new Error('extendedPrivateKey.chainCode must be a 32-byte Buffer');
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
resetDerivedState() {
|
|
306
|
+
this._seedNode = undefined;
|
|
307
|
+
this._baseDerivationNode = undefined;
|
|
308
|
+
this._derivationCache = {};
|
|
309
|
+
}
|
|
213
310
|
}
|
|
214
311
|
exports.BitcoinHDWalletProvider = BitcoinHDWalletProvider;
|
|
215
312
|
//# sourceMappingURL=BitcoinHDWallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitcoinHDWallet.js","sourceRoot":"","sources":["../../../lib/wallet/BitcoinHDWallet.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BitcoinHDWallet.js","sourceRoot":"","sources":["../../../lib/wallet/BitcoinHDWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Chain, Wallet } from '@yaswap/client';
|
|
3
|
-
import { Address, AddressType, Asset, BigNumber, FeeType, Network, Transaction,
|
|
3
|
+
import { Address, AddressType, Asset, BigNumber, FeeType, Network, Transaction, CreateTokenTransaction } from '@yaswap/types';
|
|
4
4
|
import { BitcoinBaseChainProvider } from '../chain/BitcoinBaseChainProvider';
|
|
5
|
-
import { BitcoinNodeWalletOptions, PsbtInputTarget, Transaction as BitcoinTransaction } from '../types';
|
|
5
|
+
import { BitcoinNodeWalletOptions, BitcoinSendTransactionOptions, PsbtInputTarget, Transaction as BitcoinTransaction, UsedUnusedAddressesResult } from '../types';
|
|
6
|
+
import { AddressSearchType } from './BitcoinBaseWallet';
|
|
6
7
|
import { IBitcoinWallet } from './IBitcoinWallet';
|
|
7
8
|
export declare class BitcoinNodeWalletProvider extends Wallet<any, any> implements IBitcoinWallet<BitcoinBaseChainProvider> {
|
|
8
9
|
private _addressType;
|
|
9
10
|
private _network;
|
|
10
11
|
private _addressInfoCache;
|
|
11
12
|
constructor(options?: BitcoinNodeWalletOptions, chainProvider?: Chain<BitcoinBaseChainProvider>);
|
|
12
|
-
getUnusedAddress(): Promise<Address>;
|
|
13
|
-
getUsedAddresses(): Promise<Address[]>;
|
|
13
|
+
getUnusedAddress(_change?: boolean, _addressLimit?: number): Promise<Address>;
|
|
14
|
+
getUsedAddresses(_addressType?: AddressSearchType, _addressLimit?: number): Promise<Address[]>;
|
|
14
15
|
getAddresses(): Promise<Address[]>;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
getUsedUnusedAddresses(_addressType: AddressSearchType, _addressLimit?: number, _gapLimit?: number): Promise<UsedUnusedAddressesResult>;
|
|
17
|
+
createToken(_txRequest: CreateTokenTransaction): Promise<null>;
|
|
18
|
+
sendTransactionFixedInputs(_options: BitcoinSendTransactionOptions): Promise<Transaction>;
|
|
19
|
+
getTotalFeeFixedInputs(_opts: BitcoinSendTransactionOptions, _max: boolean): Promise<number>;
|
|
20
|
+
sendTransaction(txRequest: BitcoinSendTransactionOptions): Promise<Transaction<BitcoinTransaction>>;
|
|
21
|
+
sendBatchTransaction(transactions: BitcoinSendTransactionOptions[]): Promise<Transaction<BitcoinTransaction>[]>;
|
|
18
22
|
sendSweepTransaction(_address: AddressType, _asset: Asset, _fee?: FeeType): Promise<Transaction<any>>;
|
|
19
23
|
updateTransactionFee(tx: string | Transaction<any>, newFee: number): Promise<Transaction<any>>;
|
|
20
24
|
getConnectedNetwork(): Promise<Network>;
|
|
@@ -30,12 +30,12 @@ class BitcoinNodeWalletProvider extends client_1.Wallet {
|
|
|
30
30
|
this._network = chainProvider ? chainProvider.getNetwork() : options === null || options === void 0 ? void 0 : options.network;
|
|
31
31
|
this._addressInfoCache = {};
|
|
32
32
|
}
|
|
33
|
-
getUnusedAddress() {
|
|
33
|
+
getUnusedAddress(_change, _addressLimit) {
|
|
34
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
35
|
return this.getNewAddress(this._addressType);
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
getUsedAddresses() {
|
|
38
|
+
getUsedAddresses(_addressType, _addressLimit) {
|
|
39
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
40
|
const usedAddresses = yield this.chainProvider.sendRpcRequest('listaddressgroupings', []);
|
|
41
41
|
const emptyAddresses = yield this.chainProvider.sendRpcRequest('listreceivedbyaddress', [0, true, false]);
|
|
@@ -49,11 +49,31 @@ class BitcoinNodeWalletProvider extends client_1.Wallet {
|
|
|
49
49
|
return this.getUsedAddresses();
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
getUsedUnusedAddresses(_addressType, _addressLimit, _gapLimit) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
const used = yield this.getUsedAddresses();
|
|
55
|
+
const unused = yield this.getUnusedAddress();
|
|
56
|
+
return {
|
|
57
|
+
usedAddresses: { change: [], external: used },
|
|
58
|
+
unusedAddress: { change: null, external: unused },
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
createToken(_txRequest) {
|
|
53
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
64
|
return null;
|
|
55
65
|
});
|
|
56
66
|
}
|
|
67
|
+
sendTransactionFixedInputs(_options) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
throw new errors_1.UnimplementedMethodError('Method not implemented.');
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
getTotalFeeFixedInputs(_opts, _max) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
throw new errors_1.UnimplementedMethodError('Method not implemented.');
|
|
75
|
+
});
|
|
76
|
+
}
|
|
57
77
|
sendTransaction(txRequest) {
|
|
58
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
79
|
return txRequest.fee
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitcoinNodeWallet.js","sourceRoot":"","sources":["../../../lib/wallet/BitcoinNodeWallet.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+C;AAC/C,2CAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"BitcoinNodeWallet.js","sourceRoot":"","sources":["../../../lib/wallet/BitcoinNodeWallet.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+C;AAC/C,2CAA0D;AAC1D,yCAA8H;AAC9H,iDAA0F;AAC1F,mCAAiD;AAGjD,0CAA8C;AAC9C,oCAQkB;AAClB,oCAA4E;AAI5E,MAAM,sBAAsB,GAAwC;IAChE,IAAI,EAAE,0BAAe,CAAC,OAAO;IAC7B,IAAI,EAAE,0BAAe,CAAC,eAAe;IACrC,OAAO,EAAE,0BAAe,CAAC,eAAe;CAC3C,CAAC;AAEF,MAAa,yBAA0B,SAAQ,eAAgB;IAK3D,YAAY,OAAkC,EAAE,aAA+C;QAC3F,KAAK,CAAC,aAAa,CAAC,CAAC;QAErB,IAAI,CAAC,YAAY,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,mBAAkB,CAAC,MAAM,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAE,aAAa,CAAC,UAAU,EAAqB,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC;QAClG,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAChC,CAAC;IAEY,gBAAgB,CAAC,OAAiB,EAAE,aAAsB;;YACnE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,CAAC;KAAA;IAEY,gBAAgB,CAAC,YAAgC,EAAE,aAAsB;;YAClF,MAAM,aAAa,GAAsB,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YAC7G,MAAM,cAAc,GAAwB,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/H,MAAM,KAAK,GAAG,IAAA,aAAI,EAAC,CAAC,GAAG,IAAA,gBAAO,EAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChH,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/F,OAAO,cAAc,CAAC;QAC1B,CAAC;KAAA;IAEY,YAAY;;YACrB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnC,CAAC;KAAA;IAEY,sBAAsB,CAC/B,YAA+B,EAC/B,aAAsB,EACtB,SAAkB;;YAElB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,OAAO;gBACH,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC7C,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;aACpD,CAAC;QACN,CAAC;KAAA;IAEY,WAAW,CAAC,UAAkC;;YACvD,OAAO,IAAI,CAAA;QACf,CAAC;KAAA;IAEY,0BAA0B,CAAC,QAAuC;;YAC3E,MAAM,IAAI,iCAAwB,CAAC,yBAAyB,CAAC,CAAC;QAClE,CAAC;KAAA;IAEY,sBAAsB,CAAC,KAAoC,EAAE,IAAa;;YACnF,MAAM,IAAI,iCAAwB,CAAC,yBAAyB,CAAC,CAAC;QAClE,CAAC;KAAA;IAEY,eAAe,CAAC,SAAwC;;YACjE,OAAO,SAAS,CAAC,GAAG;gBAChB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAS,EAAE,gDAAC,OAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA,GAAA,EAAE,SAAS,CAAC,GAAa,CAAC;gBACvF,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEY,oBAAoB,CAAC,YAA6C;;YAC3E,MAAM,OAAO,GAAgC,EAAE,CAAC;YAChD,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE;gBAC3B,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,iBAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;aACjF;YACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,sBAAsB,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YACpG,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;YAClG,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,8BAA8B,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAE/G,MAAM,GAAG,GAAG,IAAI,iBAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YACjE,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAA,kCAA0B,EAAC,IAAA,4BAAoB,EAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACnG,CAAC;KAAA;IAEY,oBAAoB,CAAC,QAAqB,EAAE,MAAa,EAAE,IAAc;;YAClF,MAAM,IAAI,iCAAwB,CAAC,yBAAyB,CAAC,CAAC;QAClE,CAAC;KAAA;IAEY,oBAAoB,CAAC,EAA6B,EAAE,MAAc;;YAC3E,MAAM,MAAM,GAAG,IAAA,iBAAQ,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;YAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAS,EAAE;gBAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACnG,MAAM,GAAG,GAAG,IAAI,iBAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACvE,OAAO,IAAA,kCAA0B,EAAC,IAAA,4BAAoB,EAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;YACjG,CAAC,CAAA,EAAE,MAAM,CAAC,CAAC;QACf,CAAC;KAAA;IAEY,mBAAmB;;YAC5B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YACxF,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;YACnC,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;KAAA;IAEY,SAAS;;YAClB,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEY,UAAU;;YACnB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;KAAA;IAEY,WAAW,CAAC,OAAe,EAAE,IAAY;;YAClD,OAAO,IAAI,CAAC,aAAa;iBACpB,cAAc,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;iBACzD,IAAI,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,CAAC;KAAA;IAEY,UAAU,CAAC,MAAe;;YACnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;KAAA;IAEY,gBAAgB;;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;KAAA;IAEY,iBAAiB;;YAC1B,IAAI;gBACA,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC;aACf;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,KAAK,CAAC;aAChB;QACL,CAAC;KAAA;IAEM,YAAY;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAEY,QAAQ,CAAC,IAAY,EAAE,MAAyB;;YACzD,MAAM,IAAI,GAAG,oBAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE/D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,CAAC,CAAC;gBACjG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,OAAO,GAAG,sBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;aACxC;YAED,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;KAAA;IAEY,wBAAwB,CACjC,MAAgF,EAChF,SAAiB,EACjB,EAAO,EACP,QAAgB,EAChB,MAAM,GAAG,KAAK;;YAEd,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE;gBAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,sBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;YAED,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,OAAO,CAAC;gBACZ,IAAI,MAAM,EAAE;oBACR,OAAO,GAAG,EAAE,CAAC,gBAAgB,CACzB,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EACf,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,EACtB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EACnB,2BAAoB,CAAC,WAAW,CACnC,CAAC,CAAC,oCAAoC;iBAC1C;qBAAM;oBACH,OAAO,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,2BAAoB,CAAC,WAAW,CAAC,CAAC;iBAC5G;gBAED,MAAM,GAAG,GAAG,sBAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,2BAAoB,CAAC,WAAW,CAAC,CAAC;gBAChG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAClB;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEY,gBAAgB,CAAC,OAAe;;YACzC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;KAAA;IAES,qBAAqB,CAAC,aAA8C;QAC1E,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAoB,CAAC;IACjE,CAAC;IAEa,WAAW,CAAC,OAAe;;YACrC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACvE,CAAC;KAAA;IAEa,aAAa,CAAC,WAA+B,EAAE,KAAK,GAAG,EAAE;;YACnE,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAEpF,IAAI,CAAC,UAAU,EAAE;gBACb,OAAO,IAAI,CAAC;aACf;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEa,cAAc,CAAC,OAAe;;YACxC,IAAI,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aAC1C;YAED,MAAM,WAAW,GAAgB,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAEtG,IAAI,SAAS,EAAE,cAAc,CAAC;YAE9B,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;gBAC1B,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;gBAC/B,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC;aAC1C;YACD,MAAM,aAAa,GAAG,IAAI,eAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC;YAChD,OAAO,aAAa,CAAC;QACzB,CAAC;KAAA;IAEa,SAAS,CAAC,IAAoD,EAAE,UAAkB;;YAC5F,MAAM,QAAQ,GAAG,IAAI,iBAAS,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3E,MAAM,aAAa,GAAW,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEhE,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;YAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEa,gBAAgB,CAAC,SAAwC;;;YACnE,MAAM,KAAK,GAAG,IAAI,iBAAS,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,MAAA,SAAS,CAAC,EAAE,0CAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9H,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5F,MAAM,GAAG,GAAG,IAAI,iBAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvE,OAAO,IAAA,kCAA0B,EAAC,IAAA,4BAAoB,EAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;;KAChG;CACJ;AAhPD,8DAgPC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Chain, Wallet } from '@yaswap/client';
|
|
3
|
-
import { Address, AddressType, Asset, BigNumber, CreateTokenTransaction, Network, Transaction
|
|
3
|
+
import { Address, AddressType, Asset, BigNumber, CreateTokenTransaction, Network, Transaction } from '@yaswap/types';
|
|
4
4
|
import { ECPairInterface, payments } from 'bitcoinjs-lib';
|
|
5
5
|
import { BitcoinBaseChainProvider } from '../chain/BitcoinBaseChainProvider';
|
|
6
|
-
import { BitcoinNetwork, BitcoinSingleWalletOptions, OutputTarget, PsbtInputTarget, Transaction as BtcTransaction,
|
|
6
|
+
import { BitcoinNetwork, BitcoinSingleWalletOptions, OutputTarget, PsbtInputTarget, Transaction as BtcTransaction, BitcoinSendTransactionOptions, UsedUnusedAddressesResult, UTXO } from '../types';
|
|
7
7
|
import { CoinSelectTarget } from '../utils';
|
|
8
|
+
import { AddressSearchType } from './BitcoinBaseWallet';
|
|
8
9
|
import { IBitcoinWallet } from './IBitcoinWallet';
|
|
9
10
|
export declare class BitcoinSingleWallet extends Wallet<any, any> implements IBitcoinWallet<BitcoinBaseChainProvider> {
|
|
10
11
|
private _addressType;
|
|
@@ -15,13 +16,14 @@ export declare class BitcoinSingleWallet extends Wallet<any, any> implements IBi
|
|
|
15
16
|
setECPair(ecpair: ECPairInterface): void;
|
|
16
17
|
setPublicKey(publicKey: Buffer): void;
|
|
17
18
|
setWIF(wif: string): void;
|
|
18
|
-
getUnusedAddress(): Promise<Address>;
|
|
19
|
-
getUsedAddresses(): Promise<Address[]>;
|
|
19
|
+
getUnusedAddress(_change?: boolean, _addressLimit?: number): Promise<Address>;
|
|
20
|
+
getUsedAddresses(_addressType?: AddressSearchType, _addressLimit?: number): Promise<Address[]>;
|
|
21
|
+
getUsedUnusedAddresses(_addressType: AddressSearchType, _addressLimit?: number, _gapLimit?: number): Promise<UsedUnusedAddressesResult>;
|
|
20
22
|
getAddresses(): Promise<Address[]>;
|
|
21
|
-
createToken(
|
|
22
|
-
sendTransactionFixedInputs(options:
|
|
23
|
-
sendTransaction(options:
|
|
24
|
-
sendBatchTransaction(transactions:
|
|
23
|
+
createToken(_txRequest: CreateTokenTransaction): Promise<null>;
|
|
24
|
+
sendTransactionFixedInputs(options: BitcoinSendTransactionOptions): Promise<Transaction<BtcTransaction>>;
|
|
25
|
+
sendTransaction(options: BitcoinSendTransactionOptions): Promise<Transaction<BtcTransaction>>;
|
|
26
|
+
sendBatchTransaction(transactions: BitcoinSendTransactionOptions[]): Promise<Transaction<BtcTransaction>[]>;
|
|
25
27
|
sendSweepTransaction(externalChangeAddress: AddressType, _asset: Asset, feePerByte: number): Promise<Transaction<BtcTransaction>>;
|
|
26
28
|
updateTransactionFee(tx: Transaction<BtcTransaction> | string, newFeePerByte: number): Promise<Transaction<BtcTransaction>>;
|
|
27
29
|
getConnectedNetwork(): Promise<Network>;
|
|
@@ -40,13 +42,13 @@ export declare class BitcoinSingleWallet extends Wallet<any, any> implements IBi
|
|
|
40
42
|
outputScript: Buffer;
|
|
41
43
|
}], addresses: string, tx: any, locktime: number, segwit?: boolean): Promise<Buffer[]>;
|
|
42
44
|
getWalletAddress(): Promise<Address>;
|
|
43
|
-
getTotalFees(transactions:
|
|
45
|
+
getTotalFees(transactions: BitcoinSendTransactionOptions[], max: boolean): Promise<any>;
|
|
44
46
|
protected getAddressFromPublicKey(publicKey: Buffer): string;
|
|
45
47
|
protected getPaymentVariantFromPublicKey(publicKey: Buffer): payments.Payment;
|
|
46
48
|
protected withCachedUtxos(func: () => any): Promise<any>;
|
|
47
|
-
getTotalFeeFixedInputs(opts:
|
|
48
|
-
protected getTotalFee(opts:
|
|
49
|
-
protected sendOptionsToOutputs(transactions:
|
|
49
|
+
getTotalFeeFixedInputs(opts: BitcoinSendTransactionOptions, max: boolean): Promise<number>;
|
|
50
|
+
protected getTotalFee(opts: BitcoinSendTransactionOptions, max: boolean): Promise<number>;
|
|
51
|
+
protected sendOptionsToOutputs(transactions: BitcoinSendTransactionOptions[]): OutputTarget[];
|
|
50
52
|
protected getInputsForAmount(_targets: OutputTarget[], feePerByte?: number, fixedUtxos?: UTXO[], sweep?: boolean): Promise<{
|
|
51
53
|
inputs: UTXO[];
|
|
52
54
|
change: CoinSelectTarget;
|
|
@@ -49,7 +49,7 @@ class BitcoinSingleWallet extends client_1.Wallet {
|
|
|
49
49
|
setWIF(wif) {
|
|
50
50
|
this._ecpair = bitcoinjs_lib_1.ECPair.fromWIF(wif, this._network);
|
|
51
51
|
}
|
|
52
|
-
getUnusedAddress() {
|
|
52
|
+
getUnusedAddress(_change, _addressLimit) {
|
|
53
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
54
|
const address = this.getAddressFromPublicKey(this._ecpair.publicKey);
|
|
55
55
|
const addressObject = new types_1.Address({
|
|
@@ -59,18 +59,27 @@ class BitcoinSingleWallet extends client_1.Wallet {
|
|
|
59
59
|
return addressObject;
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
-
getUsedAddresses() {
|
|
62
|
+
getUsedAddresses(_addressType, _addressLimit) {
|
|
63
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
64
|
const address = yield this.getUnusedAddress();
|
|
65
65
|
return [address];
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
+
getUsedUnusedAddresses(_addressType, _addressLimit, _gapLimit) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const address = yield this.getUnusedAddress();
|
|
71
|
+
return {
|
|
72
|
+
usedAddresses: { change: [], external: [address] },
|
|
73
|
+
unusedAddress: { change: null, external: address },
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
}
|
|
68
77
|
getAddresses() {
|
|
69
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
79
|
return this.getUsedAddresses();
|
|
71
80
|
});
|
|
72
81
|
}
|
|
73
|
-
createToken(
|
|
82
|
+
createToken(_txRequest) {
|
|
74
83
|
return __awaiter(this, void 0, void 0, function* () {
|
|
75
84
|
return null;
|
|
76
85
|
});
|
|
@@ -146,8 +155,7 @@ class BitcoinSingleWallet extends client_1.Wallet {
|
|
|
146
155
|
}
|
|
147
156
|
getAddress() {
|
|
148
157
|
return __awaiter(this, void 0, void 0, function* () {
|
|
149
|
-
|
|
150
|
-
return addresses[0];
|
|
158
|
+
return yield this.getUnusedAddress();
|
|
151
159
|
});
|
|
152
160
|
}
|
|
153
161
|
signMessage(message) {
|