@yaswap/bitcoin 3.3.6 → 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.
@@ -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, Input, OutputTarget, PsbtInputTarget } from '../types';
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 _seedNode;
12
- private _baseDerivationNode;
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
- getAddress(): Promise<AddressType>;
17
- getBalance(_assets: Asset[]): Promise<BigNumber[]>;
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, fixedInputs?: Input[]): Promise<{
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 (!mnemonic) {
24
- throw new Error('Mnemonic should not be empty');
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
- getAddress() {
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 addresses = yield this.getAddresses();
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
- const baseNode = yield this.seedNode();
77
- this._baseDerivationNode = baseNode.derivePath(this._baseDerivationPath);
78
- return this._baseDerivationNode;
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, fixedInputs) {
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 unusedAddress = yield this.getUnusedAddress(true);
85
- const { inputs, change, fee } = yield this.getInputsForAmount(targets, feePerByte, fixedInputs);
86
- if (change) {
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: change.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
- const node = yield this.seedNode();
200
- return node.derivePath(derivationPath).toWIF();
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, TransactionRequest, CreateTokenTransaction } from '@yaswap/types';
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
- createToken(txRequest: CreateTokenTransaction): Promise<null>;
16
- sendTransaction(txRequest: TransactionRequest): Promise<Transaction<BitcoinTransaction>>;
17
- sendBatchTransaction(transactions: TransactionRequest[]): Promise<Transaction<BitcoinTransaction>[]>;
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
- createToken(txRequest) {
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":"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"}
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, TransactionRequest } from '@yaswap/types';
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, TransactionFixedInputRequest, UTXO } from '../types';
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(txRequest: CreateTokenTransaction): Promise<null>;
22
- sendTransactionFixedInputs(options: TransactionFixedInputRequest): Promise<Transaction<BtcTransaction>>;
23
- sendTransaction(options: TransactionRequest): Promise<Transaction<BtcTransaction>>;
24
- sendBatchTransaction(transactions: TransactionRequest[]): Promise<Transaction<BtcTransaction>[]>;
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: TransactionRequest[], max: boolean): Promise<any>;
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: TransactionFixedInputRequest, max: boolean): Promise<number>;
48
- protected getTotalFee(opts: TransactionRequest, max: boolean): Promise<number>;
49
- protected sendOptionsToOutputs(transactions: TransactionRequest[] | TransactionFixedInputRequest[]): OutputTarget[];
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(txRequest) {
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
- const addresses = yield this.getAddresses();
150
- return addresses[0];
158
+ return yield this.getUnusedAddress();
151
159
  });
152
160
  }
153
161
  signMessage(message) {