@bsv/sdk 2.1.1 → 2.1.2

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.
Files changed (53) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/identity/ContactsManager.js +44 -6
  3. package/dist/cjs/src/identity/ContactsManager.js.map +1 -1
  4. package/dist/cjs/src/identity/IdentityClient.js +106 -37
  5. package/dist/cjs/src/identity/IdentityClient.js.map +1 -1
  6. package/dist/cjs/src/overlay-tools/LookupResolver.js +85 -58
  7. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  8. package/dist/cjs/src/primitives/Hash.js +173 -50
  9. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  10. package/dist/cjs/src/primitives/SymmetricKey.js +123 -1
  11. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  12. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  13. package/dist/esm/src/identity/ContactsManager.js +44 -6
  14. package/dist/esm/src/identity/ContactsManager.js.map +1 -1
  15. package/dist/esm/src/identity/IdentityClient.js +106 -37
  16. package/dist/esm/src/identity/IdentityClient.js.map +1 -1
  17. package/dist/esm/src/overlay-tools/LookupResolver.js +85 -58
  18. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  19. package/dist/esm/src/primitives/Hash.js +177 -50
  20. package/dist/esm/src/primitives/Hash.js.map +1 -1
  21. package/dist/esm/src/primitives/SymmetricKey.js +123 -1
  22. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  23. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  24. package/dist/types/src/identity/ContactsManager.d.ts +13 -2
  25. package/dist/types/src/identity/ContactsManager.d.ts.map +1 -1
  26. package/dist/types/src/identity/IdentityClient.d.ts +50 -24
  27. package/dist/types/src/identity/IdentityClient.d.ts.map +1 -1
  28. package/dist/types/src/overlay-tools/LookupResolver.d.ts +14 -1
  29. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  30. package/dist/types/src/primitives/Hash.d.ts +21 -16
  31. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  32. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  33. package/dist/types/src/wallet/Wallet.interfaces.d.ts +16 -1
  34. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  35. package/dist/types/src/wallet/WalletClient.d.ts +1 -1
  36. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  37. package/dist/types/src/wallet/substrates/window.CWI.d.ts +1 -1
  38. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  39. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  40. package/dist/umd/bundle.js +3 -3
  41. package/package.json +1 -1
  42. package/src/identity/ContactsManager.ts +47 -6
  43. package/src/identity/IdentityClient.ts +137 -53
  44. package/src/identity/__tests/IdentityClient.additional.test.ts +150 -1
  45. package/src/identity/__tests/IdentityClient.test.ts +4 -4
  46. package/src/overlay-tools/LookupResolver.ts +94 -57
  47. package/src/primitives/Hash.ts +232 -96
  48. package/src/primitives/SymmetricKey.ts +145 -1
  49. package/src/primitives/__tests/Hash.additional.test.ts +65 -0
  50. package/src/primitives/__tests/Hash.test.ts +6 -1
  51. package/src/wallet/Wallet.interfaces.ts +16 -1
  52. package/src/wallet/WalletClient.ts +1 -1
  53. package/src/wallet/substrates/window.CWI.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/sdk",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "type": "commonjs",
5
5
  "description": "BSV Blockchain Software Development Kit",
6
6
  "files": [
@@ -28,31 +28,64 @@ class ContactsManager {
28
28
  constructor(wallet, originator) {
29
29
  this.cache = new MemoryCache();
30
30
  this.CONTACTS_CACHE_KEY = 'metanet-contacts';
31
+ // Performance state — prevents thundering herd of concurrent contact loads and
32
+ // short-circuits the overlay path entirely when we've previously observed an
33
+ // empty contacts basket. Both are invalidated by saveContact/removeContact and
34
+ // by an explicit forceRefresh.
35
+ this.inFlightLoad = null;
36
+ this.knownEmpty = false;
31
37
  this.wallet = wallet ?? new index_js_1.WalletClient();
32
38
  this.originator = originator;
33
39
  }
34
40
  /**
35
- * Load all records from the contacts basket
41
+ * Load all records from the contacts basket.
42
+ *
43
+ * Concurrent calls share a single in-flight load (no thundering herd). After
44
+ * the basket has been observed empty once, subsequent calls return `[]`
45
+ * synchronously without hitting the wallet — until `forceRefresh` is passed
46
+ * or a contact is saved/removed.
47
+ *
36
48
  * @param identityKey Optional specific identity key to fetch
37
49
  * @param forceRefresh Whether to force a check for new contact data
38
50
  * @param limit Maximum number of contacts to return
39
- * @returns A promise that resolves with an array of contacts
40
51
  */
41
52
  async getContacts(identityKey, forceRefresh = false, limit = 1000) {
53
+ if (forceRefresh)
54
+ this.invalidate();
55
+ if (this.knownEmpty)
56
+ return [];
42
57
  if (!forceRefresh) {
43
58
  const fromCache = this.loadCachedContacts(identityKey);
44
59
  if (fromCache !== null)
45
60
  return fromCache;
46
61
  }
47
- const tags = await this.buildIdentityKeyTags(identityKey);
48
- const outputs = await this.wallet.listOutputs({ basket: 'contacts', include: 'locking scripts', includeCustomInstructions: true, tags, limit }, this.originator);
62
+ // Coalesce concurrent loads onto a single Promise so a fan-out of N
63
+ // identity calls produces ONE listOutputs + decrypt batch, not N.
64
+ this.inFlightLoad ?? (this.inFlightLoad = this.loadContactsFromWallet(limit).finally(() => {
65
+ this.inFlightLoad = null;
66
+ }));
67
+ const all = await this.inFlightLoad;
68
+ return identityKey == null ? all : all.filter(c => c.identityKey === identityKey);
69
+ }
70
+ /** Reset cached state. Call after writes. */
71
+ invalidate() {
72
+ this.cache.removeItem(this.CONTACTS_CACHE_KEY);
73
+ this.knownEmpty = false;
74
+ this.inFlightLoad = null;
75
+ }
76
+ /** Underlying wallet load — invoked at most once concurrently via `inFlightLoad`. */
77
+ async loadContactsFromWallet(limit) {
78
+ // Always load the full basket so subsequent filters (by identityKey) hit cache.
79
+ // Tag filtering is reserved for explicit per-key write paths.
80
+ const outputs = await this.wallet.listOutputs({ basket: 'contacts', include: 'locking scripts', includeCustomInstructions: true, tags: [], limit }, this.originator);
49
81
  if (outputs.outputs == null || outputs.outputs.length === 0) {
50
82
  this.cache.setItem(this.CONTACTS_CACHE_KEY, JSON.stringify([]));
83
+ this.knownEmpty = true;
51
84
  return [];
52
85
  }
53
86
  const contacts = await this.decryptContactOutputs(outputs.outputs);
54
87
  this.cache.setItem(this.CONTACTS_CACHE_KEY, JSON.stringify(contacts));
55
- return identityKey != null ? contacts.filter(c => c.identityKey === identityKey) : contacts;
88
+ return contacts;
56
89
  }
57
90
  /** Returns cached contacts (optionally filtered) or null if cache is missing/invalid. */
58
91
  loadCachedContacts(identityKey) {
@@ -140,6 +173,8 @@ class ContactsManager {
140
173
  await this.createContactOutput(lockingScript, keyID, hashedIdentityKey, contact);
141
174
  }
142
175
  this.cache.setItem(this.CONTACTS_CACHE_KEY, JSON.stringify(contacts));
176
+ this.knownEmpty = false;
177
+ this.inFlightLoad = null;
143
178
  }
144
179
  /** Computes the HMAC-based hash of an identity key for tag indexing. */
145
180
  async hashIdentityKey(identityKey) {
@@ -233,12 +268,15 @@ class ContactsManager {
233
268
  if (cached != null && cached !== '') {
234
269
  try {
235
270
  const contacts = JSON.parse(cached);
236
- this.cache.setItem(this.CONTACTS_CACHE_KEY, JSON.stringify(contacts.filter(c => c.identityKey !== identityKey)));
271
+ const remaining = contacts.filter(c => c.identityKey !== identityKey);
272
+ this.cache.setItem(this.CONTACTS_CACHE_KEY, JSON.stringify(remaining));
273
+ this.knownEmpty = remaining.length === 0;
237
274
  }
238
275
  catch (e) {
239
276
  console.warn('Failed to update cache after contact removal:', e);
240
277
  }
241
278
  }
279
+ this.inFlightLoad = null;
242
280
  const tags = await this.buildIdentityKeyTags(identityKey);
243
281
  const outputs = await this.wallet.listOutputs({ basket: 'contacts', include: 'entire transactions', includeCustomInstructions: true, tags, limit: 100 }, this.originator);
244
282
  if (outputs.outputs == null)
@@ -1 +1 @@
1
- {"version":3,"file":"ContactsManager.js","sourceRoot":"","sources":["../../../../src/identity/ContactsManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContactsManager.js","sourceRoot":"","sources":["../../../../src/identity/ContactsManager.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,32 @@ const index_js_4 = require("../script/index.js");
12
12
  const index_js_5 = require("../primitives/index.js");
13
13
  const index_js_6 = require("../overlay-tools/index.js");
14
14
  const ContactsManager_js_1 = require("./ContactsManager.js");
15
+ /**
16
+ * Maximum number of identity certificates to parse synchronously before yielding to the
17
+ * event loop. Keeps the main thread responsive when an overlay query returns many results
18
+ * (e.g. a bulk enrichment of N identityKeys).
19
+ */
20
+ const PARSE_BATCH_SIZE = 32;
21
+ /**
22
+ * Yield control to the event loop so queued microtasks / timers can run. Uses
23
+ * `scheduler.yield()` when available (Chromium) or a 0ms macrotask fallback.
24
+ */
25
+ async function yieldToEventLoop() {
26
+ const sched = globalThis.scheduler;
27
+ if (sched != null && typeof sched.yield === 'function') {
28
+ return await sched.yield();
29
+ }
30
+ return await new Promise((resolve) => setTimeout(resolve, 0));
31
+ }
32
+ /** Normalize either legacy boolean / new options object into a canonical { useContacts, parallel }. */
33
+ function normalizeOpts(raw) {
34
+ if (raw === undefined)
35
+ return { useContacts: false, parallel: false };
36
+ if (typeof raw === 'boolean')
37
+ return { useContacts: raw, parallel: false };
38
+ const useContacts = raw.overrideWithContacts ?? raw.useContacts ?? false;
39
+ return { useContacts, parallel: raw.parallel === true };
40
+ }
15
41
  /**
16
42
  * IdentityClient lets you discover who others are, and let the world know who you are.
17
43
  */
@@ -84,77 +110,84 @@ class IdentityClient {
84
110
  throw new Error('Public reveal failed: failed to create action!');
85
111
  }
86
112
  /**
87
- * Resolves displayable identity certificates, issued to a given identity key by a trusted certifier.
113
+ * Resolves displayable identity certificates issued to a given identity key.
88
114
  *
89
- * By default, contacts are consulted first and the overlay is only queried on a contacts miss.
90
- * Pass `{ parallel: true }` to fire both in parallel (the legacy behavior, useful when callers
91
- * specifically want a fresh overlay answer even when a contact exists).
115
+ * **Default behavior (changed): contacts are NOT consulted.** Most clients have no
116
+ * contacts saved locally, so the previous "contacts-first" default paid setup cost for no
117
+ * gain. Pass `{ useContacts: true }` to opt in — appropriate when you know the user has
118
+ * saved contacts and prefers a local hit over a fresh overlay answer.
119
+ *
120
+ * When `useContacts: true`:
121
+ * - Default short-circuits: if a contact matches, the overlay is skipped entirely.
122
+ * - `{ parallel: true }` fires contacts and overlay in parallel; contact wins on hit.
92
123
  *
93
124
  * @param args - Arguments for requesting the discovery based on the identity key.
94
- * @param overrideWithContacts - Whether to consult personal contacts. Default true. When `false`,
95
- * contacts are skipped entirely and the overlay is queried directly. Boolean kept for legacy
96
- * call sites; new code should prefer the options-object form.
97
- * @returns The promise resolves to displayable identities.
125
+ * @param opts - Boolean (legacy) or options object. Boolean `true` `{ useContacts: true }`.
98
126
  */
99
- async resolveByIdentityKey(args, overrideWithContacts = true) {
100
- const opts = typeof overrideWithContacts === 'boolean'
101
- ? { overrideWithContacts }
102
- : { overrideWithContacts: true, ...overrideWithContacts };
103
- const useContacts = opts.overrideWithContacts !== false;
104
- const parallel = opts.parallel === true;
105
- if (useContacts && !parallel) {
127
+ async resolveByIdentityKey(args, opts = false) {
128
+ const { useContacts, parallel } = normalizeOpts(opts);
129
+ // Fast path: skip contacts entirely. Default — straight overlay query,
130
+ // no listOutputs / decrypt / cache churn.
131
+ if (!useContacts) {
132
+ const certificatesResult = await this.wallet.discoverByIdentityKey(args, this.originator);
133
+ const certs = certificatesResult?.certificates ?? [];
134
+ return await IdentityClient.parseIdentities(certs);
135
+ }
136
+ if (!parallel) {
106
137
  const contacts = await this.contactsManager.getContacts(args.identityKey);
107
138
  if (contacts.length > 0)
108
139
  return contacts;
109
140
  const certificatesResult = await this.wallet.discoverByIdentityKey(args, this.originator);
110
141
  const certs = certificatesResult?.certificates ?? [];
111
- return certs.map((cert) => IdentityClient.parseIdentity(cert));
142
+ return await IdentityClient.parseIdentities(certs);
112
143
  }
113
144
  const [contacts, certificatesResult] = await Promise.all([
114
- useContacts
115
- ? this.contactsManager.getContacts(args.identityKey)
116
- : Promise.resolve([]),
145
+ this.contactsManager.getContacts(args.identityKey),
117
146
  this.wallet.discoverByIdentityKey(args, this.originator)
118
147
  ]);
119
148
  if (contacts.length > 0)
120
149
  return contacts;
121
150
  const certs = certificatesResult?.certificates ?? [];
122
- return certs.map((cert) => IdentityClient.parseIdentity(cert));
151
+ return await IdentityClient.parseIdentities(certs);
123
152
  }
124
153
  /**
125
- * Resolves displayable identity certificates by specific identity attributes, issued by a trusted entity.
154
+ * Resolves displayable identity certificates by specific identity attributes.
126
155
  *
127
- * By default, contacts are consulted first: if any contact matches, the overlay call is skipped
128
- * entirely. Set `parallel: true` to keep the legacy parallel behavior.
156
+ * **Default behavior (changed): contacts are NOT consulted.** See
157
+ * {@link resolveByIdentityKey} for the reasoning. Pass `{ useContacts: true }` to opt in.
129
158
  *
130
159
  * @param args - Attributes and optional parameters used to discover certificates.
131
- * @param overrideWithContacts - Whether to consult personal contacts. Default true. Boolean kept
132
- * for legacy call sites; new code should prefer the options-object form.
133
- * @returns The promise resolves to displayable identities.
160
+ * @param opts - Boolean (legacy) or options object. Boolean `true` `{ useContacts: true }`.
134
161
  */
135
- async resolveByAttributes(args, overrideWithContacts = true) {
136
- const opts = typeof overrideWithContacts === 'boolean'
137
- ? { overrideWithContacts }
138
- : { overrideWithContacts: true, ...overrideWithContacts };
139
- const useContacts = opts.overrideWithContacts !== false;
140
- const parallel = opts.parallel === true;
141
- if (useContacts && !parallel) {
162
+ async resolveByAttributes(args, opts = false) {
163
+ const { useContacts, parallel } = normalizeOpts(opts);
164
+ // Fast path: skip contacts entirely.
165
+ if (!useContacts) {
166
+ const certificatesResult = await this.wallet.discoverByAttributes(args, this.originator);
167
+ const certs = certificatesResult?.certificates ?? [];
168
+ return await IdentityClient.parseIdentities(certs);
169
+ }
170
+ if (!parallel) {
142
171
  const contacts = await this.contactsManager.getContacts();
143
172
  const matches = this.matchContactsByAttributes(contacts, args);
144
173
  if (matches.length > 0)
145
174
  return matches;
146
175
  const certificatesResult = await this.wallet.discoverByAttributes(args, this.originator);
147
176
  const certs = certificatesResult?.certificates ?? [];
177
+ if (contacts.length === 0)
178
+ return await IdentityClient.parseIdentities(certs);
148
179
  const contactByKey = new Map(contacts.map((contact) => [contact.identityKey, contact]));
149
- return certs.map((cert) => contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert));
180
+ return await IdentityClient.parseIdentitiesWithOverrides(certs, contactByKey);
150
181
  }
151
182
  const [contacts, certificatesResult] = await Promise.all([
152
- useContacts ? this.contactsManager.getContacts() : Promise.resolve([]),
183
+ this.contactsManager.getContacts(),
153
184
  this.wallet.discoverByAttributes(args, this.originator)
154
185
  ]);
155
- const contactByKey = new Map(contacts.map((contact) => [contact.identityKey, contact]));
156
186
  const certs = certificatesResult?.certificates ?? [];
157
- return certs.map((cert) => contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert));
187
+ if (contacts.length === 0)
188
+ return await IdentityClient.parseIdentities(certs);
189
+ const contactByKey = new Map(contacts.map((contact) => [contact.identityKey, contact]));
190
+ return await IdentityClient.parseIdentitiesWithOverrides(certs, contactByKey);
158
191
  }
159
192
  /**
160
193
  * Best-effort match of contacts against a `DiscoverByAttributesArgs.attributes` shape.
@@ -274,6 +307,42 @@ class IdentityClient {
274
307
  async removeContact(identityKey) {
275
308
  return await this.contactsManager.removeContact(identityKey);
276
309
  }
310
+ /**
311
+ * Parse an array of certificates into DisplayableIdentity records, yielding to the
312
+ * event loop every {@link PARSE_BATCH_SIZE} entries so large result sets don't hog
313
+ * the main thread. Equivalent to `certs.map(parseIdentity)` for small inputs.
314
+ */
315
+ static async parseIdentities(certs) {
316
+ const n = certs.length;
317
+ if (n <= PARSE_BATCH_SIZE) {
318
+ return certs.map((c) => IdentityClient.parseIdentity(c));
319
+ }
320
+ const out = new Array(n);
321
+ for (let i = 0; i < n; i++) {
322
+ out[i] = IdentityClient.parseIdentity(certs[i]);
323
+ if ((i + 1) % PARSE_BATCH_SIZE === 0)
324
+ await yieldToEventLoop();
325
+ }
326
+ return out;
327
+ }
328
+ /**
329
+ * Same as {@link parseIdentities} but consults a contact override map keyed by subject
330
+ * identity key. Used by `resolveByAttributes` when contacts are loaded.
331
+ */
332
+ static async parseIdentitiesWithOverrides(certs, contactByKey) {
333
+ const n = certs.length;
334
+ if (n <= PARSE_BATCH_SIZE) {
335
+ return certs.map((cert) => contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert));
336
+ }
337
+ const out = new Array(n);
338
+ for (let i = 0; i < n; i++) {
339
+ const cert = certs[i];
340
+ out[i] = contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert);
341
+ if ((i + 1) % PARSE_BATCH_SIZE === 0)
342
+ await yieldToEventLoop();
343
+ }
344
+ return out;
345
+ }
277
346
  /**
278
347
  * Parse out identity and certifier attributes to display from an IdentityCertificate
279
348
  * @param identityToParse - The Identity Certificate to parse
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityClient.js","sourceRoot":"","sources":["../../../../src/identity/IdentityClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IdentityClient.js","sourceRoot":"","sources":["../../../../src/identity/IdentityClient.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.HTTPSOverlayLookupFacilitator = exports.DEFAULT_TESTNET_SLAP_TRACKERS = exports.DEFAULT_SLAP_TRACKERS = void 0;
40
40
  const index_js_1 = require("../transaction/index.js");
41
+ const Beef_js_1 = require("../transaction/Beef.js");
41
42
  const OverlayAdminTokenTemplate_js_1 = __importDefault(require("./OverlayAdminTokenTemplate.js"));
42
43
  const Utils = __importStar(require("../primitives/utils.js"));
43
44
  const HostReputationTracker_js_1 = require("./HostReputationTracker.js");
@@ -98,48 +99,58 @@ class HTTPSOverlayLookupFacilitator {
98
99
  if (!response.ok)
99
100
  throw new Error(`Failed to facilitate lookup (HTTP ${response.status})`);
100
101
  if (response.headers.get('content-type') === 'application/octet-stream') {
101
- const payload = await response.arrayBuffer();
102
- const r = new Utils.Reader([...new Uint8Array(payload)]);
103
- const nOutpoints = r.readVarIntNum();
104
- const outpoints = [];
105
- for (let i = 0; i < nOutpoints; i++) {
106
- const txid = Utils.toHex(r.read(32));
107
- const outputIndex = r.readVarIntNum();
108
- const contextLength = r.readVarIntNum();
109
- let context;
110
- if (contextLength > 0) {
111
- context = r.read(contextLength);
112
- }
113
- outpoints.push({
114
- txid,
115
- outputIndex,
116
- context
117
- });
118
- }
119
- const beef = r.read();
120
- return {
121
- type: 'output-list',
122
- outputs: outpoints.map(x => ({
123
- outputIndex: x.outputIndex,
124
- context: x.context,
125
- beef: index_js_1.Transaction.fromBEEF(beef, x.txid).toBEEF()
126
- }))
127
- };
128
- }
129
- else {
130
- return await response.json();
102
+ return await this.parseOctetStreamLookup(response);
131
103
  }
104
+ return await response.json();
132
105
  }
133
106
  catch (e) {
134
107
  // Normalize timeouts to a consistent error message
135
- if (e?.name === 'AbortError')
108
+ if (e?.name === 'AbortError') {
136
109
  throw new Error('Request timed out');
110
+ }
137
111
  throw e;
138
112
  }
139
113
  finally {
140
114
  clearTimeout(timer);
141
115
  }
142
116
  }
117
+ /** Parse the aggregated octet-stream lookup response into an output-list LookupAnswer. */
118
+ async parseOctetStreamLookup(response) {
119
+ const payload = await response.arrayBuffer();
120
+ const r = new Utils.Reader([...new Uint8Array(payload)]);
121
+ const nOutpoints = r.readVarIntNum();
122
+ const outpoints = [];
123
+ for (let i = 0; i < nOutpoints; i++) {
124
+ const txid = Utils.toHex(r.read(32));
125
+ const outputIndex = r.readVarIntNum();
126
+ const contextLength = r.readVarIntNum();
127
+ const context = contextLength > 0 ? r.read(contextLength) : undefined;
128
+ outpoints.push({ txid, outputIndex, context });
129
+ }
130
+ const beef = r.read();
131
+ const beefObj = Beef_js_1.Beef.fromBinary(beef);
132
+ const outputs = await this.extractAtomicOutputs(outpoints, beefObj);
133
+ return { type: 'output-list', outputs };
134
+ }
135
+ /** Memoize per-txid atomic BEEF extraction, yielding to the event loop between outputs. */
136
+ async extractAtomicOutputs(outpoints, beefObj) {
137
+ const beefByTxid = new Map();
138
+ const outputs = new Array(outpoints.length);
139
+ for (let idx = 0; idx < outpoints.length; idx++) {
140
+ const x = outpoints[idx];
141
+ let beefBytes = beefByTxid.get(x.txid);
142
+ if (beefBytes === undefined) {
143
+ beefBytes = beefObj.toBinaryAtomic(x.txid);
144
+ beefByTxid.set(x.txid, beefBytes);
145
+ }
146
+ outputs[idx] = { outputIndex: x.outputIndex, context: x.context, beef: beefBytes, txid: x.txid };
147
+ // Yield to event loop so UI animations and other JS don't starve.
148
+ if (idx > 0 && idx < outpoints.length - 1) {
149
+ await new Promise((resolve) => setTimeout(resolve, 0));
150
+ }
151
+ }
152
+ return outputs;
153
+ }
143
154
  }
144
155
  exports.HTTPSOverlayLookupFacilitator = HTTPSOverlayLookupFacilitator;
145
156
  /**
@@ -180,13 +191,20 @@ class LookupResolver {
180
191
  * answered (or with an empty result if no host has answered by `softTimeoutMs`).
181
192
  */
182
193
  async query(question, timeout, options) {
183
- let last = null;
184
194
  // Existing fast-but-narrow contract: return at the first cumulative emission
185
195
  // (the post-grace aggregate, or the final emission when every host settles
186
196
  // before the grace window). Callers wanting progressive enrichment use query$().
187
- for await (const partial of this.query$(question, timeout, options)) {
188
- last = partial;
189
- break;
197
+ // Take only the first emission, then explicitly close the iterator so the
198
+ // generator's `finally` block runs and clears any outstanding timers.
199
+ const iter = this.query$(question, timeout, options)[Symbol.asyncIterator]();
200
+ let last = null;
201
+ try {
202
+ const { value, done } = await iter.next();
203
+ if (done !== true && value != null)
204
+ last = value;
205
+ }
206
+ finally {
207
+ await iter.return?.(undefined);
190
208
  }
191
209
  return {
192
210
  type: 'output-list',
@@ -271,33 +289,17 @@ class LookupResolver {
271
289
  let graceTimer = null;
272
290
  let graceFired = false;
273
291
  let emittedOnce = false;
274
- const beefKey = (beef) => {
275
- if (typeof beef !== 'object' || beef == null)
276
- return '';
277
- return beef.join(',');
278
- };
279
292
  const mergeAnswer = (answer) => {
280
293
  let added = false;
294
+ const now = Date.now();
281
295
  for (const output of answer.outputs) {
282
- const keyForBeef = beefKey(output.beef);
283
- let memo = this.txMemo.get(keyForBeef);
284
- const now = Date.now();
285
- if (typeof memo !== 'object' || memo === null || memo.expiresAt <= now) {
286
- try {
287
- const txId = index_js_1.Transaction.fromBEEF(output.beef).id('hex');
288
- memo = { txId, expiresAt: now + this.txMemoTtlMs };
289
- if (this.txMemo.size > 4096)
290
- this.evictOldest(this.txMemo);
291
- this.txMemo.set(keyForBeef, memo);
292
- }
293
- catch {
294
- continue;
295
- }
296
- }
297
- const uniqKey = `${memo.txId}.${output.outputIndex}`;
296
+ const txId = this.resolveTxIdForOutput(output, now);
297
+ if (txId === null)
298
+ continue;
299
+ const uniqKey = `${txId}.${output.outputIndex}`;
298
300
  if (!outputsMap.has(uniqKey)) {
299
301
  outputsMap.set(uniqKey, output);
300
- txIds.push(memo.txId);
302
+ txIds.push(txId);
301
303
  added = true;
302
304
  }
303
305
  }
@@ -483,7 +485,32 @@ class LookupResolver {
483
485
  }
484
486
  });
485
487
  }
486
- /** Evict an arbitrary “oldest” entry from a Map (iteration order). */
488
+ /**
489
+ * Resolve a txid for an aggregated lookup output. Uses the threaded-through `output.txid`
490
+ * fast path when present; otherwise memoizes Transaction.fromBEEF(beef).id('hex') keyed by
491
+ * the BEEF byte sequence. Returns null when the BEEF is unparseable.
492
+ */
493
+ resolveTxIdForOutput(output, now) {
494
+ if (typeof output.txid === 'string' && output.txid.length > 0) {
495
+ return output.txid;
496
+ }
497
+ const keyForBeef = Array.isArray(output.beef) ? output.beef.join(',') : '';
498
+ const memo = this.txMemo.get(keyForBeef);
499
+ if (typeof memo === 'object' && memo !== null && memo.expiresAt > now) {
500
+ return memo.txId;
501
+ }
502
+ try {
503
+ const txId = index_js_1.Transaction.fromBEEF(output.beef).id('hex');
504
+ if (this.txMemo.size > 4096)
505
+ this.evictOldest(this.txMemo);
506
+ this.txMemo.set(keyForBeef, { txId, expiresAt: now + this.txMemoTtlMs });
507
+ return txId;
508
+ }
509
+ catch {
510
+ return null;
511
+ }
512
+ }
513
+ /** Evict an arbitrary "oldest" entry from a Map (iteration order). */
487
514
  evictOldest(m) {
488
515
  const firstKey = m.keys().next().value;
489
516
  if (firstKey !== undefined)