@scure/btc-signer 2.0.0 → 2.2.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/README.md +189 -39
- package/index.d.ts +15 -5
- package/index.d.ts.map +1 -1
- package/index.js +16 -6
- package/index.js.map +1 -1
- package/musig2.d.ts +202 -64
- package/musig2.d.ts.map +1 -1
- package/musig2.js +324 -87
- package/musig2.js.map +1 -1
- package/p2p.d.ts +17 -7
- package/p2p.d.ts.map +1 -1
- package/p2p.js +40 -4
- package/p2p.js.map +1 -1
- package/package.json +25 -10
- package/payment.d.ts +407 -38
- package/payment.d.ts.map +1 -1
- package/payment.js +504 -57
- package/payment.js.map +1 -1
- package/psbt.d.ts +2958 -559
- package/psbt.d.ts.map +1 -1
- package/psbt.js +462 -118
- package/psbt.js.map +1 -1
- package/script.d.ts +311 -132
- package/script.d.ts.map +1 -1
- package/script.js +246 -35
- package/script.js.map +1 -1
- package/src/index.ts +34 -11
- package/src/musig2.ts +387 -145
- package/src/p2p.ts +54 -18
- package/src/payment.ts +823 -226
- package/src/psbt.ts +633 -228
- package/src/script.ts +353 -117
- package/src/transaction.ts +593 -169
- package/src/utils.ts +322 -43
- package/src/utxo.ts +154 -51
- package/transaction.d.ts +242 -31
- package/transaction.d.ts.map +1 -1
- package/transaction.js +460 -100
- package/transaction.js.map +1 -1
- package/utils.d.ts +266 -24
- package/utils.d.ts.map +1 -1
- package/utils.js +278 -27
- package/utils.js.map +1 -1
- package/utxo.d.ts +438 -75
- package/utxo.d.ts.map +1 -1
- package/utxo.js +123 -36
- package/utxo.js.map +1 -1
package/utxo.js
CHANGED
|
@@ -7,13 +7,17 @@ import { SignatureHash, Transaction, getInputType, getPrevOut, inputBeforeSign,
|
|
|
7
7
|
import { NETWORK, PubT, TAPROOT_UNSPENDABLE_KEY, compareBytes, equalBytes, isBytes, sha256, validatePubkey, } from "./utils.js";
|
|
8
8
|
const encodeTapBlock = (item) => psbt.TaprootControlBlock.encode(item);
|
|
9
9
|
function iterLeafs(tapLeafScript, sigSize, customScripts) {
|
|
10
|
-
|
|
10
|
+
const _tapLeafScript = tapLeafScript;
|
|
11
|
+
const _customScripts = customScripts;
|
|
12
|
+
if (!_tapLeafScript || !_tapLeafScript.length)
|
|
11
13
|
throw new Error('no leafs');
|
|
14
|
+
// Dummy non-empty Schnorr signature bytes for weight estimation.
|
|
15
|
+
// Unsigned tr_ms slots use P.EMPTY below.
|
|
12
16
|
const empty = () => new Uint8Array(sigSize);
|
|
13
17
|
// If user want to select specific leaf, which can signed,
|
|
14
18
|
// it is possible to remove all other leafs manually.
|
|
15
19
|
// Sort leafs by control block length.
|
|
16
|
-
const leafs =
|
|
20
|
+
const leafs = _tapLeafScript.sort((a, b) => encodeTapBlock(a[0]).length - encodeTapBlock(b[0]).length);
|
|
17
21
|
for (const [cb, _script] of leafs) {
|
|
18
22
|
// Last byte is version
|
|
19
23
|
const script = _script.slice(0, -1);
|
|
@@ -33,10 +37,10 @@ function iterLeafs(tapLeafScript, sigSize, customScripts) {
|
|
|
33
37
|
signatures.push(empty());
|
|
34
38
|
}
|
|
35
39
|
else {
|
|
36
|
-
if (!
|
|
40
|
+
if (!_customScripts)
|
|
37
41
|
throw new Error('Finalize: Unknown tapLeafScript');
|
|
38
42
|
const leafHash = tapLeafHash(script, ver);
|
|
39
|
-
for (const c of
|
|
43
|
+
for (const c of _customScripts) {
|
|
40
44
|
if (!c.finalizeTaproot)
|
|
41
45
|
continue;
|
|
42
46
|
const scriptDecoded = Script.decode(script);
|
|
@@ -59,6 +63,9 @@ function iterLeafs(tapLeafScript, sigSize, customScripts) {
|
|
|
59
63
|
continue;
|
|
60
64
|
return finalized.concat(encodeTapBlock(cb));
|
|
61
65
|
}
|
|
66
|
+
// UTXO selection may run without the real signer/finalizer process. When no matching local
|
|
67
|
+
// finalizeTaproot hook exists, keep a minimal script-path witness lower bound here instead of
|
|
68
|
+
// failing selection; callers that need exact fee estimates must provide the matching hook.
|
|
62
69
|
}
|
|
63
70
|
// Witness is stack, so last element will be used first
|
|
64
71
|
return signatures.reverse().concat([script, encodeTapBlock(cb)]);
|
|
@@ -66,23 +73,32 @@ function iterLeafs(tapLeafScript, sigSize, customScripts) {
|
|
|
66
73
|
throw new Error('there was no witness');
|
|
67
74
|
}
|
|
68
75
|
function estimateInput(inputType, input, opts) {
|
|
76
|
+
const _input = input;
|
|
77
|
+
const _opts = opts;
|
|
69
78
|
let script = P.EMPTY;
|
|
70
79
|
let witness;
|
|
71
80
|
// schnorr sig is always 64 bytes. except for cases when sighash is not default!
|
|
72
81
|
if (inputType.txType === 'taproot') {
|
|
73
82
|
const SCHNORR_SIG_SIZE = inputType.sighash !== SignatureHash.DEFAULT ? 65 : 64;
|
|
74
|
-
|
|
83
|
+
// BIP371 `PSBT_IN_TAP_INTERNAL_KEY` is signer metadata, but UTXO selection
|
|
84
|
+
// runs before signer availability is known. We intentionally treat a
|
|
85
|
+
// present internal key as a key-path hint here to avoid overestimating fees
|
|
86
|
+
// on the online side. Callers that know only script-path signing is
|
|
87
|
+
// possible should omit `tapInternalKey` or pre-filter `tapLeafScript`
|
|
88
|
+
// before estimation.
|
|
89
|
+
if (_input.tapInternalKey && !equalBytes(_input.tapInternalKey, TAPROOT_UNSPENDABLE_KEY)) {
|
|
75
90
|
witness = [new Uint8Array(SCHNORR_SIG_SIZE)];
|
|
76
91
|
}
|
|
77
|
-
else if (
|
|
78
|
-
witness = iterLeafs(
|
|
92
|
+
else if (_input.tapLeafScript) {
|
|
93
|
+
witness = iterLeafs(_input.tapLeafScript, SCHNORR_SIG_SIZE, _opts.customScripts);
|
|
79
94
|
}
|
|
80
95
|
else
|
|
81
96
|
throw new Error('estimateInput/taproot: unknown input');
|
|
82
97
|
}
|
|
83
98
|
else {
|
|
84
|
-
// It is possible to grind signatures until
|
|
85
|
-
//
|
|
99
|
+
// It is possible to grind signatures until they have minimal size, but
|
|
100
|
+
// that changes the fee by +N satoshi. It would make estimation exact, but
|
|
101
|
+
// is very hard for multisig because every signature would need to stay small.
|
|
86
102
|
const empty = () => new Uint8Array(72); // max size of sigs
|
|
87
103
|
const emptyPub = () => new Uint8Array(33); // size of pubkey
|
|
88
104
|
let inputScript = P.EMPTY;
|
|
@@ -106,7 +122,7 @@ function estimateInput(inputType, input, opts) {
|
|
|
106
122
|
inputScript = P.EMPTY;
|
|
107
123
|
inputWitness = [empty(), emptyPub()];
|
|
108
124
|
}
|
|
109
|
-
else if (ltype === 'unknown' && !
|
|
125
|
+
else if (ltype === 'unknown' && !_opts.allowUnknownInputs)
|
|
110
126
|
throw new Error('Unknown inputs are not allowed');
|
|
111
127
|
if (inputType.type.includes('wsh-')) {
|
|
112
128
|
// P2WSH
|
|
@@ -144,6 +160,8 @@ function estimateInput(inputType, input, opts) {
|
|
|
144
160
|
}
|
|
145
161
|
// Exported for tests, internal method
|
|
146
162
|
export const _cmpBig = (a, b) => {
|
|
163
|
+
// Array.sort comparators must return a number, so normalize bigint comparisons to -1/0/1
|
|
164
|
+
// instead of coercing large differences through Number(...) and losing ordering precision.
|
|
147
165
|
const n = a - b;
|
|
148
166
|
if (n < 0n)
|
|
149
167
|
return -1;
|
|
@@ -152,23 +170,31 @@ export const _cmpBig = (a, b) => {
|
|
|
152
170
|
return 0;
|
|
153
171
|
};
|
|
154
172
|
function getScript(o, opts = {}, network = NETWORK) {
|
|
173
|
+
const _o = o;
|
|
174
|
+
const _opts = opts;
|
|
155
175
|
let script;
|
|
156
|
-
if ('script' in
|
|
157
|
-
script =
|
|
176
|
+
if ('script' in _o && isBytes(_o.script)) {
|
|
177
|
+
script = _o.script;
|
|
158
178
|
}
|
|
159
|
-
if ('address' in
|
|
160
|
-
if (typeof
|
|
161
|
-
throw new Error(`Estimator: wrong output address=${
|
|
162
|
-
|
|
179
|
+
if ('address' in _o) {
|
|
180
|
+
if (typeof _o.address !== 'string')
|
|
181
|
+
throw new Error(`Estimator: wrong output address=${_o.address}`);
|
|
182
|
+
// Address.decode() only yields known descriptors for valid output addresses, but the wrapped
|
|
183
|
+
// coder type still includes `undefined`, so narrow before re-encoding the script template.
|
|
184
|
+
script = OutScript.encode(Address(network).decode(_o.address));
|
|
163
185
|
}
|
|
164
186
|
if (!script)
|
|
165
187
|
throw new Error('Estimator: wrong output script');
|
|
166
|
-
if (typeof
|
|
167
|
-
throw new Error(`Estimator: wrong output amount=${
|
|
168
|
-
|
|
188
|
+
if (typeof _o.amount !== 'bigint')
|
|
189
|
+
throw new Error(`Estimator: wrong output amount=${_o.amount}, should be of type bigint but got ${typeof _o.amount}.`);
|
|
190
|
+
// Keep selector-only `createTx: false` flows aligned with the transaction/PSBT output boundary:
|
|
191
|
+
// satoshi-denominated outputs are not allowed to go negative.
|
|
192
|
+
if (_o.amount < 0n)
|
|
193
|
+
throw new Error(`Estimator: wrong output amount=${_o.amount}`);
|
|
194
|
+
if (script && !_opts.allowUnknownOutputs && OutScript.decode(script).type === 'unknown') {
|
|
169
195
|
throw new Error('Estimator: unknown output script type, there is a chance that input is unspendable. Pass allowUnknownOutputs=true, if you sure');
|
|
170
196
|
}
|
|
171
|
-
if (!
|
|
197
|
+
if (!_opts.disableScriptCheck)
|
|
172
198
|
checkScript(script);
|
|
173
199
|
return script;
|
|
174
200
|
}
|
|
@@ -191,6 +217,10 @@ export class _Estimator {
|
|
|
191
217
|
this.opts = opts;
|
|
192
218
|
if (typeof opts.feePerByte !== 'bigint')
|
|
193
219
|
throw new Error(`Estimator: wrong feePerByte=${opts.feePerByte}, should be of type bigint but got ${typeof opts.feePerByte}.`);
|
|
220
|
+
// Zero-fee estimation is useful on regtest/in tests, but negative fee rates would make
|
|
221
|
+
// `getSatoshi(...)` produce nonsensical negative fees throughout selection.
|
|
222
|
+
if (opts.feePerByte < 0n)
|
|
223
|
+
throw new Error(`Estimator: feePerByte must be >= 0 satoshi per vbyte`);
|
|
194
224
|
// Dust stuff
|
|
195
225
|
// TODO: think about this more:
|
|
196
226
|
// - current dust filters tx which cannot be relayed by core
|
|
@@ -230,7 +260,10 @@ export class _Estimator {
|
|
|
230
260
|
throw new Error(`Estimator: wrong change address=${opts.changeAddress}`);
|
|
231
261
|
let changeWeight = baseWeight +
|
|
232
262
|
32 +
|
|
233
|
-
|
|
263
|
+
// Same Address.decode() narrowing as above: the estimator only reaches this path for a
|
|
264
|
+
// concrete change output address, not an unknown descriptor.
|
|
265
|
+
4 *
|
|
266
|
+
VarBytes.encode(OutScript.encode(Address(network).decode(opts.changeAddress))).length;
|
|
234
267
|
baseWeight += 4 * CompactSizeLen.encode(outputs.length).length;
|
|
235
268
|
// If there a lot of outputs change can change fee
|
|
236
269
|
changeWeight += 4 * CompactSizeLen.encode(outputs.length + 1).length;
|
|
@@ -284,8 +317,8 @@ export class _Estimator {
|
|
|
284
317
|
return compareBytes(scripts[a], scripts[b]);
|
|
285
318
|
});
|
|
286
319
|
}
|
|
287
|
-
getSatoshi(
|
|
288
|
-
return this.opts.feePerByte * BigInt(toVsize(
|
|
320
|
+
getSatoshi(weight) {
|
|
321
|
+
return this.opts.feePerByte * BigInt(toVsize(weight));
|
|
289
322
|
}
|
|
290
323
|
// Sort by value instead of amount
|
|
291
324
|
get biggest() {
|
|
@@ -324,6 +357,12 @@ export class _Estimator {
|
|
|
324
357
|
const targetAmount = this.amount;
|
|
325
358
|
const res = new Set();
|
|
326
359
|
let fee;
|
|
360
|
+
// BIP144 serialization uses a var_int `txin_count`, so fee accounting must use the post-add
|
|
361
|
+
// input count here; the CompactSize prefix grows from 1 to 3 bytes at 253 inputs.
|
|
362
|
+
const getTotal = (newWeight, newNum) => {
|
|
363
|
+
const totalWeight = newWeight + 4 * CompactSizeLen.encode(newNum).length;
|
|
364
|
+
return { totalWeight, fee: this.getSatoshi(totalWeight) };
|
|
365
|
+
};
|
|
327
366
|
for (const idx of this.requiredIndices) {
|
|
328
367
|
this.checkInputIdx(idx);
|
|
329
368
|
if (res.has(idx))
|
|
@@ -332,17 +371,18 @@ export class _Estimator {
|
|
|
332
371
|
let newWeight = weight + estimate.weight;
|
|
333
372
|
if (!hasWitnesses && estimate.hasWitnesses)
|
|
334
373
|
newWeight += 2; // enable witness if needed
|
|
335
|
-
const
|
|
336
|
-
|
|
374
|
+
const newNum = num + 1;
|
|
375
|
+
const total = getTotal(newWeight, newNum);
|
|
376
|
+
fee = total.fee;
|
|
337
377
|
weight = newWeight;
|
|
338
378
|
if (estimate.hasWitnesses)
|
|
339
379
|
hasWitnesses = true;
|
|
340
|
-
num
|
|
380
|
+
num = newNum;
|
|
341
381
|
inputsAmount += amount;
|
|
342
382
|
res.add(idx);
|
|
343
383
|
// inputsAmount is enough to cover cost of tx
|
|
344
384
|
if (!all && targetAmount + fee <= inputsAmount && num >= this.requiredIndices.length)
|
|
345
|
-
return { indices: Array.from(res), fee, weight: totalWeight, total: inputsAmount };
|
|
385
|
+
return { indices: Array.from(res), fee, weight: total.totalWeight, total: inputsAmount };
|
|
346
386
|
}
|
|
347
387
|
for (const idx of indices) {
|
|
348
388
|
this.checkInputIdx(idx);
|
|
@@ -352,8 +392,9 @@ export class _Estimator {
|
|
|
352
392
|
let newWeight = weight + estimate.weight;
|
|
353
393
|
if (!hasWitnesses && estimate.hasWitnesses)
|
|
354
394
|
newWeight += 2; // enable witness if needed
|
|
355
|
-
const
|
|
356
|
-
|
|
395
|
+
const newNum = num + 1;
|
|
396
|
+
const total = getTotal(newWeight, newNum);
|
|
397
|
+
fee = total.fee;
|
|
357
398
|
// Best case scenario exact(biggest) -> we find biggest output, less than target+threshold
|
|
358
399
|
if (exact && amount + inputsAmount > targetAmount + fee + this.dust)
|
|
359
400
|
continue; // skip if added value is bigger than dust
|
|
@@ -365,16 +406,21 @@ export class _Estimator {
|
|
|
365
406
|
weight = newWeight;
|
|
366
407
|
if (estimate.hasWitnesses)
|
|
367
408
|
hasWitnesses = true;
|
|
368
|
-
num
|
|
409
|
+
num = newNum;
|
|
369
410
|
inputsAmount += amount;
|
|
370
411
|
res.add(idx);
|
|
371
412
|
// inputsAmount is enough to cover cost of tx
|
|
372
413
|
if (!all && targetAmount + fee <= inputsAmount)
|
|
373
|
-
return { indices: Array.from(res), fee, weight: totalWeight, total: inputsAmount };
|
|
414
|
+
return { indices: Array.from(res), fee, weight: total.totalWeight, total: inputsAmount };
|
|
374
415
|
}
|
|
375
416
|
if (all) {
|
|
376
|
-
const
|
|
377
|
-
return {
|
|
417
|
+
const total = getTotal(weight, num);
|
|
418
|
+
return {
|
|
419
|
+
indices: Array.from(res),
|
|
420
|
+
fee: total.fee,
|
|
421
|
+
weight: total.totalWeight,
|
|
422
|
+
total: inputsAmount,
|
|
423
|
+
};
|
|
378
424
|
}
|
|
379
425
|
return undefined;
|
|
380
426
|
}
|
|
@@ -399,9 +445,17 @@ export class _Estimator {
|
|
|
399
445
|
Biggest: () => this.biggest,
|
|
400
446
|
};
|
|
401
447
|
if (strategy.startsWith('exact')) {
|
|
402
|
-
|
|
448
|
+
// Reject malformed `exact...` strings up front so a successful exact match cannot hide
|
|
449
|
+
// a missing or garbage `/accum...` fallback suffix.
|
|
450
|
+
const parts = strategy.split('/');
|
|
451
|
+
if (parts.length !== 2)
|
|
452
|
+
throw new Error(`Estimator.select: wrong strategy=${strategy}`);
|
|
453
|
+
const [exactStrategy, left] = parts;
|
|
454
|
+
const exactData = exactStrategy.slice(5);
|
|
403
455
|
if (!data[exactData])
|
|
404
456
|
throw new Error(`Estimator.select: wrong strategy=${strategy}`);
|
|
457
|
+
if (!left.startsWith('accum'))
|
|
458
|
+
throw new Error(`Estimator.select: wrong strategy=${strategy}`);
|
|
405
459
|
strategy = left;
|
|
406
460
|
const exact = this.accumulate(data[exactData](), true, true);
|
|
407
461
|
if (exact)
|
|
@@ -426,9 +480,13 @@ export class _Estimator {
|
|
|
426
480
|
: weight + (this.changeWeight - this.baseWeight);
|
|
427
481
|
const changeFee = this.getSatoshi(changeWeight);
|
|
428
482
|
let fee = s.fee;
|
|
483
|
+
// If dust suppresses the change output, the leftover becomes additional miner fee, so
|
|
484
|
+
// the returned fee/weight need to follow the no-change transaction shape instead of changeWeight.
|
|
429
485
|
const change = total - this.amount - changeFee;
|
|
430
486
|
if (change > this.dust)
|
|
431
487
|
needChange = true;
|
|
488
|
+
else if (!needChange)
|
|
489
|
+
fee = total - this.amount;
|
|
432
490
|
let inputs = indices;
|
|
433
491
|
let outputs = Array.from(this.outputs);
|
|
434
492
|
if (needChange) {
|
|
@@ -446,7 +504,7 @@ export class _Estimator {
|
|
|
446
504
|
inputs: inputs.map((i) => this.normalizedInputs[i].normalized),
|
|
447
505
|
outputs,
|
|
448
506
|
fee,
|
|
449
|
-
weight:
|
|
507
|
+
weight: needChange ? changeWeight : s.weight,
|
|
450
508
|
change: !!needChange,
|
|
451
509
|
};
|
|
452
510
|
let tx;
|
|
@@ -462,8 +520,37 @@ export class _Estimator {
|
|
|
462
520
|
// return { ...res, tx: tx };
|
|
463
521
|
}
|
|
464
522
|
}
|
|
523
|
+
/**
|
|
524
|
+
* Selects inputs for the requested outputs using the configured strategy.
|
|
525
|
+
* @param inputs - candidate inputs that may be selected
|
|
526
|
+
* @param outputs - desired transaction outputs
|
|
527
|
+
* @param strategy - selection heuristic to use
|
|
528
|
+
* @param opts - Fee-estimation and transaction-construction options. See {@link EstimatorOpts}.
|
|
529
|
+
* @returns Selection result, optionally including a constructed transaction.
|
|
530
|
+
* @throws If the UTXO set, outputs, or estimator options are invalid. {@link Error}
|
|
531
|
+
* @example
|
|
532
|
+
* Estimate fees, pick inputs, and build a transaction for the selected set.
|
|
533
|
+
* ```ts
|
|
534
|
+
* import { p2wpkh } from '@scure/btc-signer/payment.js';
|
|
535
|
+
* import { pubECDSA, randomPrivateKeyBytes } from '@scure/btc-signer/utils.js';
|
|
536
|
+
* import { selectUTXO } from '@scure/btc-signer/utxo.js';
|
|
537
|
+
* import { hex } from '@scure/base';
|
|
538
|
+
* const spend = p2wpkh(pubECDSA(randomPrivateKeyBytes()));
|
|
539
|
+
* const change = p2wpkh(pubECDSA(randomPrivateKeyBytes()));
|
|
540
|
+
* selectUTXO(
|
|
541
|
+
* [{
|
|
542
|
+
* txid: hex.decode('0000000000000000000000000000000000000000000000000000000000000001'),
|
|
543
|
+
* index: 0,
|
|
544
|
+
* witnessUtxo: { amount: 50_000n, script: spend.script },
|
|
545
|
+
* }],
|
|
546
|
+
* [{ address: spend.address!, amount: 10_000n }],
|
|
547
|
+
* 'default',
|
|
548
|
+
* { feePerByte: 1n, changeAddress: change.address! }
|
|
549
|
+
* );
|
|
550
|
+
* ```
|
|
551
|
+
*/
|
|
465
552
|
export function selectUTXO(inputs, outputs, strategy, opts) {
|
|
466
|
-
//
|
|
553
|
+
// Public wrapper defaults to BIP69 ordering and tx construction unless callers override them.
|
|
467
554
|
const _opts = { createTx: true, bip69: true, ...opts };
|
|
468
555
|
const est = new _Estimator(inputs, outputs, _opts);
|
|
469
556
|
return est.result(strategy);
|
package/utxo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["src/utxo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utxo.js","sourceRoot":"","sources":["src/utxo.ts"],"names":[],"mappings":"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"}
|