@btc-vision/bitcoin 7.0.0-alpha.3 → 7.0.0-alpha.4
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 +139 -12
- package/browser/chunks/WorkerSigningPool.sequential-DHha7j0b.js +113 -0
- package/browser/env.d.ts +13 -0
- package/browser/env.d.ts.map +1 -0
- package/browser/index.d.ts +1 -1
- package/browser/index.d.ts.map +1 -1
- package/browser/index.js +872 -1105
- package/browser/io/index.d.ts +0 -1
- package/browser/io/index.d.ts.map +1 -1
- package/browser/types.d.ts.map +1 -1
- package/browser/workers/WorkerSigningPool.d.ts +6 -0
- package/browser/workers/WorkerSigningPool.d.ts.map +1 -1
- package/browser/workers/WorkerSigningPool.node.d.ts +6 -0
- package/browser/workers/WorkerSigningPool.node.d.ts.map +1 -1
- package/browser/workers/WorkerSigningPool.sequential.d.ts +69 -0
- package/browser/workers/WorkerSigningPool.sequential.d.ts.map +1 -0
- package/browser/workers/WorkerSigningPool.worklet.d.ts +64 -0
- package/browser/workers/WorkerSigningPool.worklet.d.ts.map +1 -0
- package/browser/workers/index.d.ts +2 -2
- package/browser/workers/index.d.ts.map +1 -1
- package/browser/workers/index.react-native.d.ts +28 -0
- package/browser/workers/index.react-native.d.ts.map +1 -0
- package/browser/workers/psbt-parallel.d.ts +2 -3
- package/browser/workers/psbt-parallel.d.ts.map +1 -1
- package/browser/workers/types.d.ts +12 -0
- package/browser/workers/types.d.ts.map +1 -1
- package/build/env.d.ts +13 -0
- package/build/env.d.ts.map +1 -0
- package/build/env.js +198 -0
- package/build/env.js.map +1 -0
- package/build/index.d.ts +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/build/io/index.d.ts +0 -1
- package/build/io/index.d.ts.map +1 -1
- package/build/io/index.js +0 -2
- package/build/io/index.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/build/types.d.ts.map +1 -1
- package/build/types.js +2 -16
- package/build/types.js.map +1 -1
- package/build/workers/WorkerSigningPool.d.ts +6 -0
- package/build/workers/WorkerSigningPool.d.ts.map +1 -1
- package/build/workers/WorkerSigningPool.js +8 -0
- package/build/workers/WorkerSigningPool.js.map +1 -1
- package/build/workers/WorkerSigningPool.node.d.ts +6 -0
- package/build/workers/WorkerSigningPool.node.d.ts.map +1 -1
- package/build/workers/WorkerSigningPool.node.js +9 -2
- package/build/workers/WorkerSigningPool.node.js.map +1 -1
- package/build/workers/WorkerSigningPool.sequential.d.ts +78 -0
- package/build/workers/WorkerSigningPool.sequential.d.ts.map +1 -0
- package/build/workers/WorkerSigningPool.sequential.js +160 -0
- package/build/workers/WorkerSigningPool.sequential.js.map +1 -0
- package/build/workers/WorkerSigningPool.worklet.d.ts +79 -0
- package/build/workers/WorkerSigningPool.worklet.d.ts.map +1 -0
- package/build/workers/WorkerSigningPool.worklet.js +388 -0
- package/build/workers/WorkerSigningPool.worklet.js.map +1 -0
- package/build/workers/index.d.ts +2 -2
- package/build/workers/index.d.ts.map +1 -1
- package/build/workers/index.js +9 -0
- package/build/workers/index.js.map +1 -1
- package/build/workers/index.react-native.d.ts +28 -0
- package/build/workers/index.react-native.d.ts.map +1 -0
- package/build/workers/index.react-native.js +67 -0
- package/build/workers/index.react-native.js.map +1 -0
- package/build/workers/psbt-parallel.d.ts +2 -3
- package/build/workers/psbt-parallel.d.ts.map +1 -1
- package/build/workers/psbt-parallel.js +4 -4
- package/build/workers/psbt-parallel.js.map +1 -1
- package/build/workers/types.d.ts +12 -0
- package/build/workers/types.d.ts.map +1 -1
- package/package.json +11 -1
- package/src/env.ts +237 -0
- package/src/index.ts +1 -2
- package/src/io/index.ts +0 -3
- package/src/types.ts +4 -27
- package/src/workers/WorkerSigningPool.node.ts +10 -2
- package/src/workers/WorkerSigningPool.sequential.ts +190 -0
- package/src/workers/WorkerSigningPool.ts +9 -0
- package/src/workers/WorkerSigningPool.worklet.ts +519 -0
- package/src/workers/index.react-native.ts +110 -0
- package/src/workers/index.ts +10 -1
- package/src/workers/psbt-parallel.ts +8 -8
- package/src/workers/types.ts +16 -0
- package/test/env.spec.ts +418 -0
- package/test/workers-pool.spec.ts +43 -0
- package/test/workers-sequential.spec.ts +669 -0
- package/test/workers-worklet.spec.ts +500 -0
- package/browser/io/MemoryPool.d.ts +0 -220
- package/browser/io/MemoryPool.d.ts.map +0 -1
- package/build/io/MemoryPool.d.ts +0 -220
- package/build/io/MemoryPool.d.ts.map +0 -1
- package/build/io/MemoryPool.js +0 -309
- package/build/io/MemoryPool.js.map +0 -1
- package/src/io/MemoryPool.ts +0 -343
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psbt-parallel.js","sourceRoot":"","sources":["../../src/workers/psbt-parallel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"psbt-parallel.js","sourceRoot":"","sources":["../../src/workers/psbt-parallel.ts"],"names":[],"mappings":"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"}
|
package/build/workers/types.d.ts
CHANGED
|
@@ -347,6 +347,18 @@ export declare const WorkerState: {
|
|
|
347
347
|
readonly Terminated: 4;
|
|
348
348
|
};
|
|
349
349
|
export type WorkerState = (typeof WorkerState)[keyof typeof WorkerState];
|
|
350
|
+
/**
|
|
351
|
+
* Minimum contract for any signing pool implementation.
|
|
352
|
+
*
|
|
353
|
+
* Implemented by WorkerSigningPool (browser), NodeWorkerSigningPool (Node.js),
|
|
354
|
+
* and SequentialSigningPool (React Native / fallback).
|
|
355
|
+
*/
|
|
356
|
+
export interface SigningPoolLike {
|
|
357
|
+
signBatch(tasks: readonly SigningTask[], keyPair: ParallelSignerKeyPair): Promise<ParallelSigningResult>;
|
|
358
|
+
initialize(): Promise<void>;
|
|
359
|
+
shutdown(): Promise<void>;
|
|
360
|
+
readonly isPreservingWorkers: boolean;
|
|
361
|
+
}
|
|
350
362
|
/**
|
|
351
363
|
* Internal worker wrapper for pool management.
|
|
352
364
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workers/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workers/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@btc-vision/bitcoin",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "7.0.0-alpha.
|
|
4
|
+
"version": "7.0.0-alpha.4",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"description": "Client-side Bitcoin JavaScript library",
|
|
7
7
|
"engines": {
|
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
},
|
|
10
10
|
"exports": {
|
|
11
11
|
".": {
|
|
12
|
+
"react-native": {
|
|
13
|
+
"types": "./build/index.d.ts",
|
|
14
|
+
"import": "./build/index.js",
|
|
15
|
+
"default": "./build/index.js"
|
|
16
|
+
},
|
|
12
17
|
"browser": {
|
|
13
18
|
"types": "./browser/index.d.ts",
|
|
14
19
|
"import": "./browser/index.js",
|
|
@@ -29,6 +34,11 @@
|
|
|
29
34
|
"default": "./browser/index.js"
|
|
30
35
|
},
|
|
31
36
|
"./workers": {
|
|
37
|
+
"react-native": {
|
|
38
|
+
"types": "./build/workers/index.react-native.d.ts",
|
|
39
|
+
"import": "./build/workers/index.react-native.js",
|
|
40
|
+
"default": "./build/workers/index.react-native.js"
|
|
41
|
+
},
|
|
32
42
|
"browser": {
|
|
33
43
|
"types": "./browser/workers/index.d.ts",
|
|
34
44
|
"import": "./browser/workers/index.js",
|
package/src/env.ts
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime capability verification and polyfills.
|
|
3
|
+
*
|
|
4
|
+
* Polyfills features that can be shimmed (TextEncoder, Map, Promise.allSettled, Symbol.dispose).
|
|
5
|
+
* Throws early with a clear error for features that cannot be polyfilled (BigInt, Uint8Array,
|
|
6
|
+
* structuredClone, DataView BigInt methods).
|
|
7
|
+
*
|
|
8
|
+
* Imported as a side effect by the main entry point.
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Hard requirements — cannot be polyfilled
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
const missing: string[] = [];
|
|
18
|
+
|
|
19
|
+
if (typeof BigInt === 'undefined') {
|
|
20
|
+
missing.push('BigInt (ES2020 — required for satoshi values)');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (typeof Uint8Array === 'undefined') {
|
|
24
|
+
missing.push('Uint8Array (TypedArrays — required for all binary operations)');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (typeof DataView !== 'undefined' && typeof DataView.prototype.getBigInt64 !== 'function') {
|
|
28
|
+
missing.push('DataView.prototype.getBigInt64 (ES2020 — required for transaction parsing)');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (missing.length > 0) {
|
|
32
|
+
throw new Error(
|
|
33
|
+
`@btc-vision/bitcoin: unsupported runtime. Missing capabilities:\n` +
|
|
34
|
+
missing.map((cap) => ` - ${cap}`).join('\n') +
|
|
35
|
+
`\n\nThese features cannot be polyfilled. This library requires a modern JavaScript engine (ES2022+).`,
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
// Polyfills — shim features that can be reasonably implemented
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
|
|
43
|
+
// TextEncoder / TextDecoder (for older WebView / jsdom environments)
|
|
44
|
+
if (typeof globalThis.TextEncoder === 'undefined') {
|
|
45
|
+
globalThis.TextEncoder = class TextEncoder {
|
|
46
|
+
readonly encoding = 'utf-8';
|
|
47
|
+
|
|
48
|
+
encode(input: string = ''): Uint8Array {
|
|
49
|
+
// Fast path for ASCII
|
|
50
|
+
const utf8: number[] = [];
|
|
51
|
+
for (let i = 0; i < input.length; i++) {
|
|
52
|
+
let code = input.charCodeAt(i);
|
|
53
|
+
if (code < 0x80) {
|
|
54
|
+
utf8.push(code);
|
|
55
|
+
} else if (code < 0x800) {
|
|
56
|
+
utf8.push(0xc0 | (code >> 6), 0x80 | (code & 0x3f));
|
|
57
|
+
} else if (code >= 0xd800 && code <= 0xdbff) {
|
|
58
|
+
// Surrogate pair
|
|
59
|
+
const next = input.charCodeAt(++i);
|
|
60
|
+
code = 0x10000 + ((code - 0xd800) << 10) + (next - 0xdc00);
|
|
61
|
+
utf8.push(
|
|
62
|
+
0xf0 | (code >> 18),
|
|
63
|
+
0x80 | ((code >> 12) & 0x3f),
|
|
64
|
+
0x80 | ((code >> 6) & 0x3f),
|
|
65
|
+
0x80 | (code & 0x3f),
|
|
66
|
+
);
|
|
67
|
+
} else {
|
|
68
|
+
utf8.push(0xe0 | (code >> 12), 0x80 | ((code >> 6) & 0x3f), 0x80 | (code & 0x3f));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return new Uint8Array(utf8);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
encodeInto(src: string, dest: Uint8Array): { read: number; written: number } {
|
|
75
|
+
const encoded = this.encode(src);
|
|
76
|
+
const written = Math.min(encoded.length, dest.length);
|
|
77
|
+
dest.set(encoded.subarray(0, written));
|
|
78
|
+
return { read: src.length, written };
|
|
79
|
+
}
|
|
80
|
+
} as unknown as typeof TextEncoder;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (typeof globalThis.TextDecoder === 'undefined') {
|
|
84
|
+
globalThis.TextDecoder = class TextDecoder {
|
|
85
|
+
readonly encoding = 'utf-8';
|
|
86
|
+
readonly fatal = false;
|
|
87
|
+
readonly ignoreBOM = false;
|
|
88
|
+
|
|
89
|
+
decode(input?: ArrayBufferView | ArrayBuffer): string {
|
|
90
|
+
if (!input) return '';
|
|
91
|
+
const bytes =
|
|
92
|
+
input instanceof ArrayBuffer
|
|
93
|
+
? new Uint8Array(input)
|
|
94
|
+
: new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
|
|
95
|
+
|
|
96
|
+
let result = '';
|
|
97
|
+
for (let i = 0; i < bytes.length; ) {
|
|
98
|
+
const byte = bytes[i]!;
|
|
99
|
+
let code: number;
|
|
100
|
+
if (byte < 0x80) {
|
|
101
|
+
code = byte;
|
|
102
|
+
i++;
|
|
103
|
+
} else if ((byte & 0xe0) === 0xc0) {
|
|
104
|
+
code = ((byte & 0x1f) << 6) | (bytes[i + 1]! & 0x3f);
|
|
105
|
+
i += 2;
|
|
106
|
+
} else if ((byte & 0xf0) === 0xe0) {
|
|
107
|
+
code = ((byte & 0x0f) << 12) | ((bytes[i + 1]! & 0x3f) << 6) | (bytes[i + 2]! & 0x3f);
|
|
108
|
+
i += 3;
|
|
109
|
+
} else {
|
|
110
|
+
code =
|
|
111
|
+
((byte & 0x07) << 18) |
|
|
112
|
+
((bytes[i + 1]! & 0x3f) << 12) |
|
|
113
|
+
((bytes[i + 2]! & 0x3f) << 6) |
|
|
114
|
+
(bytes[i + 3]! & 0x3f);
|
|
115
|
+
i += 4;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (code <= 0xffff) {
|
|
119
|
+
result += String.fromCharCode(code);
|
|
120
|
+
} else {
|
|
121
|
+
// Surrogate pair
|
|
122
|
+
code -= 0x10000;
|
|
123
|
+
result += String.fromCharCode(0xd800 + (code >> 10), 0xdc00 + (code & 0x3ff));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
} as unknown as typeof TextDecoder;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Map (for extremely old environments)
|
|
132
|
+
if (typeof globalThis.Map === 'undefined') {
|
|
133
|
+
globalThis.Map = class Map<K, V> {
|
|
134
|
+
readonly #entries: Array<[K, V]> = [];
|
|
135
|
+
|
|
136
|
+
constructor(entries?: Iterable<[K, V]> | null) {
|
|
137
|
+
if (entries) {
|
|
138
|
+
for (const [k, v] of entries) {
|
|
139
|
+
this.set(k, v);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
get size(): number {
|
|
145
|
+
return this.#entries.length;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
has(key: K): boolean {
|
|
149
|
+
return this.#entries.some(([k]) => k === key);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
get(key: K): V | undefined {
|
|
153
|
+
const entry = this.#entries.find(([k]) => k === key);
|
|
154
|
+
return entry?.[1];
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
set(key: K, value: V): this {
|
|
158
|
+
const idx = this.#entries.findIndex(([k]) => k === key);
|
|
159
|
+
if (idx >= 0) {
|
|
160
|
+
this.#entries[idx] = [key, value];
|
|
161
|
+
} else {
|
|
162
|
+
this.#entries.push([key, value]);
|
|
163
|
+
}
|
|
164
|
+
return this;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
delete(key: K): boolean {
|
|
168
|
+
const idx = this.#entries.findIndex(([k]) => k === key);
|
|
169
|
+
if (idx >= 0) {
|
|
170
|
+
this.#entries.splice(idx, 1);
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
clear(): void {
|
|
177
|
+
this.#entries.length = 0;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
forEach(cb: (value: V, key: K, map: Map<K, V>) => void): void {
|
|
181
|
+
for (const [k, v] of this.#entries) {
|
|
182
|
+
cb(v, k, this);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
keys(): IterableIterator<K> {
|
|
187
|
+
return this.#entries.map(([k]) => k)[Symbol.iterator]() as IterableIterator<K>;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
values(): IterableIterator<V> {
|
|
191
|
+
return this.#entries.map(([, v]) => v)[Symbol.iterator]() as IterableIterator<V>;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
entries(): IterableIterator<[K, V]> {
|
|
195
|
+
return this.#entries[Symbol.iterator]() as IterableIterator<[K, V]>;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
[Symbol.iterator](): IterableIterator<[K, V]> {
|
|
199
|
+
return this.entries();
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
get [Symbol.toStringTag](): string {
|
|
203
|
+
return 'Map';
|
|
204
|
+
}
|
|
205
|
+
} as unknown as MapConstructor;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Promise.allSettled (ES2020)
|
|
209
|
+
if (typeof Promise.allSettled !== 'function') {
|
|
210
|
+
Promise.allSettled = function allSettled<T extends readonly unknown[]>(
|
|
211
|
+
promises: T,
|
|
212
|
+
): Promise<{
|
|
213
|
+
-readonly [K in keyof T]: PromiseSettledResult<Awaited<T[K]>>;
|
|
214
|
+
}> {
|
|
215
|
+
return Promise.all(
|
|
216
|
+
Array.from(promises as Iterable<unknown>, (p) =>
|
|
217
|
+
Promise.resolve(p).then(
|
|
218
|
+
(value) => ({ status: 'fulfilled' as const, value }),
|
|
219
|
+
(reason: unknown) => ({ status: 'rejected' as const, reason }),
|
|
220
|
+
),
|
|
221
|
+
),
|
|
222
|
+
) as Promise<any>;
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// structuredClone (ES2022 — used for PSBT cloning)
|
|
227
|
+
if (typeof globalThis.structuredClone === 'undefined') {
|
|
228
|
+
globalThis.structuredClone = <T>(value: T): T => JSON.parse(JSON.stringify(value));
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// Symbol.dispose / Symbol.asyncDispose (ES2024 — Explicit Resource Management)
|
|
232
|
+
if (typeof Symbol['dispose'] === 'undefined') {
|
|
233
|
+
(Symbol as unknown as Record<string, symbol>)['dispose'] = Symbol.for('Symbol.dispose');
|
|
234
|
+
}
|
|
235
|
+
if (typeof Symbol['asyncDispose'] === 'undefined') {
|
|
236
|
+
(Symbol as unknown as Record<string, symbol>)['asyncDispose'] = Symbol.for('Symbol.asyncDispose');
|
|
237
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './env.js';
|
|
1
2
|
import type {
|
|
2
3
|
PsbtInput as _PsbtInput,
|
|
3
4
|
PsbtInputUpdate as _PsbtInputUpdate,
|
|
@@ -142,8 +143,6 @@ export {
|
|
|
142
143
|
xor,
|
|
143
144
|
fromUtf8,
|
|
144
145
|
toUtf8,
|
|
145
|
-
MemoryPool,
|
|
146
|
-
SimpleMemoryPool,
|
|
147
146
|
varuint,
|
|
148
147
|
} from './io/index.js';
|
|
149
148
|
export * from './payments/bip341.js';
|
package/src/io/index.ts
CHANGED
package/src/types.ts
CHANGED
|
@@ -17,10 +17,6 @@ import type {
|
|
|
17
17
|
XOnlyPublicKey,
|
|
18
18
|
} from './branded.js';
|
|
19
19
|
|
|
20
|
-
// ============================================================================
|
|
21
|
-
// Branded Types (re-exported from branded.ts to avoid circular dependencies)
|
|
22
|
-
// ============================================================================
|
|
23
|
-
|
|
24
20
|
export type {
|
|
25
21
|
Bytes32,
|
|
26
22
|
Bytes20,
|
|
@@ -34,22 +30,15 @@ export type {
|
|
|
34
30
|
Script,
|
|
35
31
|
} from './branded.js';
|
|
36
32
|
|
|
37
|
-
// ============================================================================
|
|
38
|
-
// Constants
|
|
39
|
-
// ============================================================================
|
|
40
|
-
|
|
41
33
|
/** @internal Do not mutate */
|
|
42
34
|
const EC_P = fromHex('fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');
|
|
35
|
+
|
|
43
36
|
/** @internal Do not mutate — secp256k1 curve order */
|
|
44
37
|
const EC_N = fromHex('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');
|
|
45
38
|
|
|
46
39
|
export const SATOSHI_MAX = 21n * 10n ** 14n;
|
|
47
40
|
export const TAPLEAF_VERSION_MASK = 0xfe;
|
|
48
41
|
|
|
49
|
-
// ============================================================================
|
|
50
|
-
// Type Guards
|
|
51
|
-
// ============================================================================
|
|
52
|
-
|
|
53
42
|
export function isUInt8(value: unknown): value is number {
|
|
54
43
|
return typeof value === 'number' && Number.isInteger(value) && value >= 0 && value <= 0xff;
|
|
55
44
|
}
|
|
@@ -96,8 +85,7 @@ export function isBytes20(value: unknown): value is Bytes20 {
|
|
|
96
85
|
export function isXOnlyPublicKey(value: unknown): value is XOnlyPublicKey {
|
|
97
86
|
if (!(value instanceof Uint8Array) || value.length !== 32) return false;
|
|
98
87
|
if (isZero(value)) return false;
|
|
99
|
-
|
|
100
|
-
return true;
|
|
88
|
+
return compare(value, EC_P) < 0;
|
|
101
89
|
}
|
|
102
90
|
|
|
103
91
|
export function isPoint(value: unknown): value is PublicKey {
|
|
@@ -130,8 +118,7 @@ export function isSatoshi(value: unknown): value is Satoshi {
|
|
|
130
118
|
export function isPrivateKey(value: unknown): value is PrivateKey {
|
|
131
119
|
if (!(value instanceof Uint8Array) || value.length !== 32) return false;
|
|
132
120
|
if (isZero(value)) return false;
|
|
133
|
-
|
|
134
|
-
return true;
|
|
121
|
+
return compare(value, EC_N) < 0;
|
|
135
122
|
}
|
|
136
123
|
|
|
137
124
|
export function isSchnorrSignature(value: unknown): value is SchnorrSignature {
|
|
@@ -146,9 +133,7 @@ export function isScript(value: unknown): value is Script {
|
|
|
146
133
|
return value instanceof Uint8Array;
|
|
147
134
|
}
|
|
148
135
|
|
|
149
|
-
// ============================================================================
|
|
150
136
|
// Taproot Types
|
|
151
|
-
// ============================================================================
|
|
152
137
|
|
|
153
138
|
export interface Tapleaf {
|
|
154
139
|
readonly output: Uint8Array;
|
|
@@ -178,23 +163,17 @@ export function isTaptree(value: unknown): value is Taptree {
|
|
|
178
163
|
return value.every((node: unknown) => isTaptree(node));
|
|
179
164
|
}
|
|
180
165
|
|
|
181
|
-
//
|
|
182
|
-
// ECC Interface (re-exported from ecc/types.ts for backward compatibility)
|
|
183
|
-
// ============================================================================
|
|
166
|
+
// ECC Interface
|
|
184
167
|
|
|
185
168
|
export type { CryptoBackend, XOnlyPointAddTweakResult, EccLib, Parity } from './ecc/types.js';
|
|
186
169
|
|
|
187
|
-
// ============================================================================
|
|
188
170
|
// Stack Types
|
|
189
|
-
// ============================================================================
|
|
190
171
|
|
|
191
172
|
export type StackElement = Uint8Array | number;
|
|
192
173
|
export type Stack = readonly StackElement[];
|
|
193
174
|
export type StackFunction = () => Stack;
|
|
194
175
|
|
|
195
|
-
// ============================================================================
|
|
196
176
|
// Utility Functions
|
|
197
|
-
// ============================================================================
|
|
198
177
|
|
|
199
178
|
export function stacksEqual(a: Uint8Array[], b: Uint8Array[]): boolean {
|
|
200
179
|
if (a.length !== b.length) return false;
|
|
@@ -236,9 +215,7 @@ export function toSatoshi(value: bigint): Satoshi {
|
|
|
236
215
|
return value as Satoshi;
|
|
237
216
|
}
|
|
238
217
|
|
|
239
|
-
// ============================================================================
|
|
240
218
|
// Assertion Helpers
|
|
241
|
-
// ============================================================================
|
|
242
219
|
|
|
243
220
|
export function assertXOnlyPublicKey(
|
|
244
221
|
value: unknown,
|
|
@@ -353,6 +353,15 @@ export class NodeWorkerSigningPool {
|
|
|
353
353
|
}
|
|
354
354
|
}
|
|
355
355
|
|
|
356
|
+
/**
|
|
357
|
+
* Disposes of the pool by shutting down all workers.
|
|
358
|
+
*
|
|
359
|
+
* Enables `await using pool = ...` syntax for automatic cleanup.
|
|
360
|
+
*/
|
|
361
|
+
public async [Symbol.asyncDispose](): Promise<void> {
|
|
362
|
+
await this.shutdown();
|
|
363
|
+
}
|
|
364
|
+
|
|
356
365
|
/**
|
|
357
366
|
* Shuts down the pool and terminates all workers.
|
|
358
367
|
*
|
|
@@ -384,7 +393,7 @@ export class NodeWorkerSigningPool {
|
|
|
384
393
|
*/
|
|
385
394
|
#createWorkerScript(): string {
|
|
386
395
|
// Node.js worker_threads can directly require/import modules
|
|
387
|
-
|
|
396
|
+
return `
|
|
388
397
|
const { parentPort } = require('worker_threads');
|
|
389
398
|
|
|
390
399
|
/**
|
|
@@ -649,7 +658,6 @@ function handleSignBatch(msg) {
|
|
|
649
658
|
});
|
|
650
659
|
}
|
|
651
660
|
`;
|
|
652
|
-
return workerCode;
|
|
653
661
|
}
|
|
654
662
|
|
|
655
663
|
/**
|