@bsv/wallet-toolbox 2.8.0 → 2.10.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.
Files changed (99) hide show
  1. package/CHANGELOG.md +31 -3
  2. package/README.md +51 -1
  3. package/out/src/CWIStyleWalletManager.d.ts +37 -27
  4. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  5. package/out/src/CWIStyleWalletManager.js +157 -151
  6. package/out/src/CWIStyleWalletManager.js.map +1 -1
  7. package/out/src/WalletAuthenticationManager.d.ts +20 -0
  8. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  9. package/out/src/WalletAuthenticationManager.js +180 -47
  10. package/out/src/WalletAuthenticationManager.js.map +1 -1
  11. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts +22 -0
  12. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts.map +1 -1
  13. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts +70 -0
  14. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts.map +1 -0
  15. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js +21 -0
  16. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js.map +1 -0
  17. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +33 -0
  18. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  19. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +6 -1
  20. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
  21. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +9 -3
  22. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  23. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +45 -5
  24. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  25. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +3 -0
  26. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
  27. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +2 -1
  28. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  29. package/out/src/services/chaintracker/chaintracks/index.all.d.ts +2 -0
  30. package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
  31. package/out/src/services/chaintracker/chaintracks/index.all.js +2 -0
  32. package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
  33. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +2 -0
  34. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  35. package/out/src/services/chaintracker/chaintracks/index.mobile.js +2 -0
  36. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  37. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +15 -2
  38. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -1
  39. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +115 -13
  40. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -1
  41. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +17 -1
  42. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  43. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +174 -87
  44. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  45. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts +32 -0
  46. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -0
  47. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +30 -0
  48. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -0
  49. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +2 -2
  50. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  51. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +5 -3
  52. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  53. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +39 -0
  54. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -0
  55. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +194 -0
  56. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -0
  57. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts +1 -0
  58. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map +1 -1
  59. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js +1 -0
  60. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map +1 -1
  61. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +12 -0
  62. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -0
  63. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +52 -0
  64. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -0
  65. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +40 -0
  66. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -0
  67. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +207 -0
  68. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -0
  69. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  70. package/out/src/storage/StorageIdb.js +5 -2
  71. package/out/src/storage/StorageIdb.js.map +1 -1
  72. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  73. package/out/src/storage/StorageProvider.js +15 -9
  74. package/out/src/storage/StorageProvider.js.map +1 -1
  75. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  76. package/out/src/storage/methods/createAction.js +6 -1
  77. package/out/src/storage/methods/createAction.js.map +1 -1
  78. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  79. package/out/src/storage/remoting/StorageClientBase.js +29 -0
  80. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  81. package/out/src/storage/schema/entities/EntitySyncState.d.ts +1 -1
  82. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  83. package/out/src/storage/schema/entities/EntitySyncState.js +5 -5
  84. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  85. package/out/src/utility/beefForTxids.d.ts +12 -3
  86. package/out/src/utility/beefForTxids.d.ts.map +1 -1
  87. package/out/src/utility/beefForTxids.js +69 -21
  88. package/out/src/utility/beefForTxids.js.map +1 -1
  89. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  90. package/out/src/wab-client/WABClient.js +13 -13
  91. package/out/src/wab-client/WABClient.js.map +1 -1
  92. package/out/src/wab-client/WABTransport.d.ts +17 -23
  93. package/out/src/wab-client/WABTransport.d.ts.map +1 -1
  94. package/out/src/wab-client/WABTransport.js +129 -141
  95. package/out/src/wab-client/WABTransport.js.map +1 -1
  96. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +6 -0
  97. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  98. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  99. package/package.json +2 -2
@@ -6,9 +6,13 @@ const sdk_1 = require("@bsv/sdk");
6
6
  const WABTransport_1 = require("./wab-client/WABTransport");
7
7
  const DEFAULT_AUTH_SESSION_TTL_MS = 10 * 60 * 1000;
8
8
  const MAX_AUTH_SESSION_TTL_MS = 60 * 60 * 1000;
9
+ const AUTH_COMPONENT = 'wallet-toolbox.authentication-manager';
10
+ const AUTH_EVENT = 'wallet-toolbox.authentication.';
11
+ const EXISTING_USER = 'existing-user';
12
+ const NEW_USER = 'new-user';
9
13
  class WABAccountContinuityError extends Error {
10
14
  code = 'WERR_WAB_ACCOUNT_CONTINUITY';
11
- constructor(message = 'WAB and UMP account state did not agree. Retry or use account recovery.') {
15
+ constructor(message = 'WAB and UMP accounts disagree; retry or recover.') {
12
16
  super(message);
13
17
  this.name = 'WABAccountContinuityError';
14
18
  }
@@ -24,6 +28,7 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
24
28
  wabClient; // instance of WABClient
25
29
  authMethod; // chosen AuthMethod interactor
26
30
  authSession;
31
+ phoneChangeSession;
27
32
  authSessionTtlMs;
28
33
  constructor(...[adminOriginator, walletBuilder, interactor, recoveryKeySaver, passwordRetriever, wabClient, authMethod, stateSnapshot, options = {}]) {
29
34
  super(adminOriginator, walletBuilder, interactor, recoveryKeySaver, passwordRetriever,
@@ -63,7 +68,7 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
63
68
  }
64
69
  }, adminOriginator);
65
70
  if (faucetRedeemTXCreationResult.signableTransaction == null) {
66
- throw new Error('Faucet redemption did not return a signableTransaction');
71
+ throw new Error('Faucet redemption was not signable.');
67
72
  }
68
73
  const faucetRedeemTX = sdk_1.Transaction.fromAtomicBEEF(faucetRedeemTXCreationResult.signableTransaction.tx);
69
74
  const faucetRedemptionPuzzle = new sdk_1.RPuzzle();
@@ -87,9 +92,7 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
87
92
  this.wabClient = wabClient;
88
93
  this.authMethod = authMethod;
89
94
  const authSessionTtlMs = options.authSessionTtlMs ?? DEFAULT_AUTH_SESSION_TTL_MS;
90
- if (!Number.isInteger(authSessionTtlMs) ||
91
- authSessionTtlMs <= 0 ||
92
- authSessionTtlMs > MAX_AUTH_SESSION_TTL_MS) {
95
+ if (!Number.isInteger(authSessionTtlMs) || authSessionTtlMs <= 0 || authSessionTtlMs > MAX_AUTH_SESSION_TTL_MS) {
93
96
  throw new TypeError(`authSessionTtlMs must be between 1 and ${MAX_AUTH_SESSION_TTL_MS}.`);
94
97
  }
95
98
  this.authSessionTtlMs = authSessionTtlMs;
@@ -109,7 +112,7 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
109
112
  */
110
113
  async startAuth(payload) {
111
114
  if (this.authMethod == null) {
112
- throw new Error('No AuthMethod selected in WalletAuthenticationManager');
115
+ throw new Error('No WAB authentication method selected.');
113
116
  }
114
117
  const authMethod = this.authMethod;
115
118
  if (this.authenticated)
@@ -124,8 +127,8 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
124
127
  ...(correlationId !== undefined ? { correlationId } : {})
125
128
  };
126
129
  this.telemetry.capture({
127
- name: 'wallet-toolbox.authentication.wab-start.started',
128
- component: 'wallet-toolbox.authentication-manager',
130
+ name: `${AUTH_EVENT}wab-start.started`,
131
+ component: AUTH_COMPONENT,
129
132
  severity: 'debug',
130
133
  correlationId,
131
134
  attributes: { methodType: authMethod.methodType }
@@ -134,14 +137,12 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
134
137
  const startRes = await this.wabClient.startAuthMethod(authMethod, presentationKey, payload, correlationId);
135
138
  const startSucceeded = startRes.success;
136
139
  if (startSucceeded !== true) {
137
- const message = startRes.message != null && startRes.message.length > 0
138
- ? startRes.message
139
- : 'Failed to start WAB auth method';
140
+ const message = startRes.message != null && startRes.message.length > 0 ? startRes.message : 'Failed to start WAB auth method';
140
141
  throw new Error(message);
141
142
  }
142
143
  this.telemetry.capture({
143
- name: 'wallet-toolbox.authentication.wab-start.completed',
144
- component: 'wallet-toolbox.authentication-manager',
144
+ name: `${AUTH_EVENT}wab-start.completed`,
145
+ component: AUTH_COMPONENT,
145
146
  severity: 'info',
146
147
  correlationId,
147
148
  attributes: { methodType: authMethod.methodType }
@@ -150,14 +151,12 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
150
151
  catch (error) {
151
152
  this.cancelAuth();
152
153
  this.telemetry.capture({
153
- name: 'wallet-toolbox.authentication.wab-start.failed',
154
- component: 'wallet-toolbox.authentication-manager',
154
+ name: `${AUTH_EVENT}wab-start.failed`,
155
+ component: AUTH_COMPONENT,
155
156
  severity: 'warn',
156
157
  correlationId,
157
158
  attributes: { methodType: authMethod.methodType },
158
- error: error instanceof WABTransport_1.WABClientError
159
- ? error
160
- : new Error('WAB authentication start failed.')
159
+ error: error instanceof WABTransport_1.WABClientError ? error : new Error('WAB authentication start failed.')
161
160
  });
162
161
  throw error;
163
162
  }
@@ -167,31 +166,29 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
167
166
  */
168
167
  async completeAuth(payload) {
169
168
  if (this.authMethod == null || this.authSession == null) {
170
- throw new Error('No AuthMethod selected in WalletAuthenticationManager or startAuth has yet to be called.');
169
+ throw new Error('Start WAB authentication first.');
171
170
  }
172
171
  const authMethod = this.authMethod;
173
172
  if (this.authSession.methodType !== authMethod.methodType) {
174
173
  this.cancelAuth();
175
- throw new Error('The selected authentication method changed. Start authentication again.');
174
+ throw new Error('WAB authentication method changed; restart.');
176
175
  }
177
176
  if (Date.now() >= this.authSession.expiresAt) {
178
177
  this.cancelAuth();
179
- throw new Error('The WAB authentication session expired. Start authentication again.');
178
+ throw new Error('WAB authentication expired; restart.');
180
179
  }
181
180
  const session = this.authSession;
182
181
  const result = await this.wabClient.completeAuthMethod(authMethod, session.presentationKey, payload, session.correlationId);
183
182
  const authSucceeded = result.success;
184
183
  if (authSucceeded !== true || result.presentationKey == null || result.presentationKey.length === 0) {
185
184
  this.telemetry.capture({
186
- name: 'wallet-toolbox.authentication.wab-complete.rejected',
187
- component: 'wallet-toolbox.authentication-manager',
185
+ name: `${AUTH_EVENT}wab-complete.rejected`,
186
+ component: AUTH_COMPONENT,
188
187
  severity: 'warn',
189
188
  correlationId: session.correlationId,
190
189
  attributes: { methodType: session.methodType }
191
190
  });
192
- const message = result.message != null && result.message.length > 0
193
- ? result.message
194
- : 'Failed to complete WAB auth';
191
+ const message = result.message != null && result.message.length > 0 ? result.message : 'Failed to complete WAB auth';
195
192
  throw new Error(message);
196
193
  }
197
194
  if (!/^[0-9a-fA-F]{64}$/.test(result.presentationKey)) {
@@ -201,12 +198,12 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
201
198
  this.cancelAuth();
202
199
  const wabAccountStatus = this.inferAccountStatus(result, session.presentationKey);
203
200
  try {
204
- await this.providePresentationKey(sdk_1.Utils.toArray(result.presentationKey, 'hex'));
201
+ await this.provideWABPresentationKey(result, wabAccountStatus);
205
202
  }
206
203
  catch (error) {
207
204
  this.telemetry.capture({
208
- name: 'wallet-toolbox.authentication.ump-continuity.failed',
209
- component: 'wallet-toolbox.authentication-manager',
205
+ name: `${AUTH_EVENT}ump-continuity.failed`,
206
+ component: AUTH_COMPONENT,
210
207
  severity: 'warn',
211
208
  correlationId: session.correlationId,
212
209
  attributes: {
@@ -217,18 +214,18 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
217
214
  });
218
215
  throw error;
219
216
  }
220
- if (wabAccountStatus === 'existing-user' && this.authenticationFlow !== 'existing-user') {
217
+ if (wabAccountStatus === EXISTING_USER && this.authenticationFlow !== EXISTING_USER) {
221
218
  super.destroy();
222
219
  const error = new WABAccountContinuityError();
223
220
  this.telemetry.capture({
224
- name: 'wallet-toolbox.authentication.account-continuity.mismatch',
225
- component: 'wallet-toolbox.authentication-manager',
221
+ name: `${AUTH_EVENT}account-continuity.mismatch`,
222
+ component: AUTH_COMPONENT,
226
223
  severity: 'error',
227
224
  correlationId: session.correlationId,
228
225
  attributes: {
229
226
  methodType: session.methodType,
230
227
  wabAccountStatus,
231
- umpAccountStatus: 'new-user'
228
+ umpAccountStatus: NEW_USER
232
229
  },
233
230
  error
234
231
  });
@@ -236,8 +233,8 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
236
233
  }
237
234
  const continuity = wabAccountStatus === this.authenticationFlow ? 'matched' : 'ump-existing';
238
235
  this.telemetry.capture({
239
- name: 'wallet-toolbox.authentication.completed',
240
- component: 'wallet-toolbox.authentication-manager',
236
+ name: `${AUTH_EVENT}completed`,
237
+ component: AUTH_COMPONENT,
241
238
  severity: continuity === 'matched' ? 'info' : 'warn',
242
239
  correlationId: session.correlationId,
243
240
  attributes: {
@@ -251,40 +248,176 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
251
248
  cancelAuth() {
252
249
  this.authSession = undefined;
253
250
  }
251
+ readPendingPhoneChange(result) {
252
+ const presentationKey = result.pendingPresentationKey;
253
+ const changeId = result.pendingPhoneChangeId;
254
+ if (presentationKey === undefined && changeId === undefined)
255
+ return undefined;
256
+ if (!/^[0-9a-fA-F]{64}$/.test(presentationKey ?? '') ||
257
+ !Number.isSafeInteger(changeId) ||
258
+ changeId <= 0) {
259
+ throw new WABAccountContinuityError('WAB returned invalid pending phone-change data.');
260
+ }
261
+ return { presentationKey: presentationKey, changeId: changeId };
262
+ }
263
+ async provideWABPresentationKey(result, wabAccountStatus) {
264
+ const umpTokenOutpoint = typeof result.umpTokenOutpoint === 'string'
265
+ ? result.umpTokenOutpoint
266
+ : undefined;
267
+ const lookupOptions = umpTokenOutpoint == null ? undefined : { pinnedOutpoint: umpTokenOutpoint };
268
+ const pending = this.readPendingPhoneChange(result);
269
+ let usePending = false;
270
+ try {
271
+ await this.providePresentationKey(sdk_1.Utils.toArray(result.presentationKey, 'hex'), lookupOptions);
272
+ }
273
+ catch (error) {
274
+ if (pending == null)
275
+ throw error;
276
+ usePending = true;
277
+ }
278
+ if (pending != null &&
279
+ (usePending ||
280
+ (wabAccountStatus === EXISTING_USER && this.authenticationFlow !== EXISTING_USER))) {
281
+ await this.providePresentationKey(sdk_1.Utils.toArray(pending.presentationKey, 'hex'), lookupOptions);
282
+ if (this.authenticationFlow === EXISTING_USER) {
283
+ await this.finalizePendingPhoneChange(result.presentationKey, pending);
284
+ }
285
+ }
286
+ }
287
+ async finalizePendingPhoneChange(currentPresentationKey, pending) {
288
+ const finalized = await this.phoneChange('finalize', {
289
+ changeId: pending.changeId,
290
+ presentationKey: currentPresentationKey,
291
+ newPresentationKey: pending.presentationKey
292
+ });
293
+ if (finalized.success !== true || finalized.changeId !== pending.changeId) {
294
+ throw new WABAccountContinuityError(finalized.message || 'WAB could not finalize the pending phone change.');
295
+ }
296
+ }
297
+ /**
298
+ * Starts OTP verification for a replacement phone number. The same number
299
+ * is valid and intentionally produces a fresh presentation key/hash.
300
+ */
301
+ async startPhoneNumberChange(phoneNumber) {
302
+ if (!this.authenticated)
303
+ throw new Error('Not authenticated');
304
+ const normalizedPhone = phoneNumber.trim();
305
+ const currentPresentationKey = sdk_1.Utils.toHex(await this.getFactor('presentationKey'));
306
+ const response = await this.phoneChange('start', {
307
+ presentationKey: currentPresentationKey,
308
+ phoneNumber: normalizedPhone
309
+ });
310
+ if (response.success !== true)
311
+ throw new Error(response.message || 'Phone change failed');
312
+ this.phoneChangeSession = {
313
+ phoneNumber: normalizedPhone,
314
+ presentationKey: currentPresentationKey
315
+ };
316
+ }
317
+ /**
318
+ * Completes phone verification and stages the WAB association before
319
+ * publishing the UMP key rotation. WAB retains both the current and pending
320
+ * presentation keys until finalization, so either side of an interrupted
321
+ * transition remains recoverable on the next verified login.
322
+ */
323
+ async completePhoneNumberChange(otp) {
324
+ const session = this.phoneChangeSession;
325
+ if (session == null)
326
+ throw new Error('No phone change');
327
+ if (session.changeToken == null) {
328
+ const authorization = await this.phoneChange('complete', {
329
+ presentationKey: session.presentationKey,
330
+ phoneNumber: session.phoneNumber,
331
+ otp: otp.trim()
332
+ });
333
+ if (authorization.success !== true) {
334
+ throw new Error(authorization.message || 'Phone change failed');
335
+ }
336
+ const resumable = /^[0-9a-fA-F]{64}$/.test(authorization.pendingPresentationKey ?? '') &&
337
+ Number.isSafeInteger(authorization.pendingPhoneChangeId) &&
338
+ authorization.pendingPhoneChangeId > 0;
339
+ if (resumable) {
340
+ session.newKey = sdk_1.Utils.toArray(authorization.pendingPresentationKey, 'hex');
341
+ session.changeId = authorization.pendingPhoneChangeId;
342
+ }
343
+ else if (typeof authorization.changeToken === 'string' &&
344
+ authorization.changeToken.length > 0) {
345
+ session.changeToken = authorization.changeToken;
346
+ }
347
+ else {
348
+ throw new Error(authorization.message || 'Phone change failed');
349
+ }
350
+ }
351
+ session.newKey ??= (0, sdk_1.Random)(32);
352
+ if (session.changeId == null) {
353
+ const committed = await this.phoneChange('commit', {
354
+ changeToken: session.changeToken,
355
+ presentationKey: session.presentationKey,
356
+ newPresentationKey: sdk_1.Utils.toHex(session.newKey)
357
+ });
358
+ if (committed.success !== true || !Number.isSafeInteger(committed.changeId) || committed.changeId <= 0) {
359
+ throw new Error(committed.message || 'Phone change failed');
360
+ }
361
+ session.changeId = committed.changeId;
362
+ }
363
+ const changeId = session.changeId;
364
+ if (session.umpUpdated !== true) {
365
+ await this.changePresentationKey(session.newKey);
366
+ session.umpUpdated = true;
367
+ }
368
+ const finalized = await this.phoneChange('finalize', {
369
+ changeId,
370
+ presentationKey: session.presentationKey,
371
+ newPresentationKey: sdk_1.Utils.toHex(session.newKey)
372
+ });
373
+ if (finalized.success !== true || finalized.changeId !== changeId) {
374
+ throw new Error(finalized.message || 'Phone change failed');
375
+ }
376
+ this.phoneChangeSession = undefined;
377
+ return { changeId };
378
+ }
379
+ cancelPhoneNumberChange() {
380
+ this.phoneChangeSession = undefined;
381
+ }
254
382
  destroy() {
255
383
  this.cancelAuth();
384
+ this.cancelPhoneNumberChange();
256
385
  super.destroy();
257
386
  }
387
+ phoneChange(phase, body) {
388
+ return this.wabClient.transport.request(`/auth/phone-change/${phase}`, {
389
+ operation: 'phone-change',
390
+ body
391
+ });
392
+ }
258
393
  inferAccountStatus(result, temporaryPresentationKey) {
259
394
  if (result.presentationKey == null) {
260
395
  throw new WABAccountContinuityError('WAB did not return a presentation key.');
261
396
  }
262
397
  const keyMatchesTemporary = this.constantTimeHexEqual(result.presentationKey, temporaryPresentationKey);
263
398
  const rawAccountStatus = result.accountStatus;
264
- if (rawAccountStatus !== undefined &&
265
- rawAccountStatus !== 'new-user' &&
266
- rawAccountStatus !== 'existing-user') {
267
- throw new WABAccountContinuityError('WAB returned an invalid account-continuity status.');
399
+ if (rawAccountStatus !== undefined && rawAccountStatus !== NEW_USER && rawAccountStatus !== EXISTING_USER) {
400
+ throw new WABAccountContinuityError('WAB returned an invalid account status.');
268
401
  }
269
402
  const rawExistingUser = result.existingUser;
270
403
  if (rawExistingUser !== undefined && typeof rawExistingUser !== 'boolean') {
271
- throw new WABAccountContinuityError('WAB returned an invalid existing-user status.');
404
+ throw new WABAccountContinuityError('WAB returned invalid existing-user data.');
272
405
  }
273
406
  if (rawAccountStatus !== undefined &&
274
407
  rawExistingUser !== undefined &&
275
- (rawAccountStatus === 'existing-user') !== rawExistingUser) {
276
- throw new WABAccountContinuityError('WAB returned contradictory account-continuity statuses.');
408
+ (rawAccountStatus === EXISTING_USER) !== rawExistingUser) {
409
+ throw new WABAccountContinuityError('WAB returned conflicting account status.');
277
410
  }
278
411
  let compatibilityStatus;
279
412
  if (typeof rawExistingUser === 'boolean') {
280
- compatibilityStatus = rawExistingUser ? 'existing-user' : 'new-user';
413
+ compatibilityStatus = rawExistingUser ? EXISTING_USER : NEW_USER;
281
414
  }
282
415
  const explicitStatus = rawAccountStatus ?? compatibilityStatus;
283
- if ((explicitStatus === 'new-user' && !keyMatchesTemporary) ||
284
- (explicitStatus === 'existing-user' && keyMatchesTemporary)) {
285
- throw new WABAccountContinuityError('WAB returned contradictory account-continuity data.');
416
+ if ((explicitStatus === NEW_USER && !keyMatchesTemporary) ||
417
+ (explicitStatus === EXISTING_USER && keyMatchesTemporary)) {
418
+ throw new WABAccountContinuityError('WAB returned conflicting account status.');
286
419
  }
287
- return explicitStatus ?? (keyMatchesTemporary ? 'new-user' : 'existing-user');
420
+ return explicitStatus ?? (keyMatchesTemporary ? NEW_USER : EXISTING_USER);
288
421
  }
289
422
  constantTimeHexEqual(left, right) {
290
423
  if (left.length !== right.length)
@@ -1 +1 @@
1
- {"version":3,"file":"WalletAuthenticationManager.js","sourceRoot":"","sources":["../../src/WalletAuthenticationManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WalletAuthenticationManager.js","sourceRoot":"","sources":["../../src/WalletAuthenticationManager.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,19 @@ import type { BulkHeaderFileInfo } from '../util/BulkHeaderFile';
11
11
  export interface BulkFileDataCacheApi {
12
12
  get(file: Readonly<BulkHeaderFileInfo>): Promise<Uint8Array | undefined>;
13
13
  set(file: Readonly<BulkHeaderFileInfo>, data: Uint8Array): Promise<void>;
14
+ /**
15
+ * Preserve a rejected object outside the active cache namespace. The manager
16
+ * calls this before attempting a replacement and never removes a last-good
17
+ * object merely because a newer source is unavailable.
18
+ */
19
+ quarantine?(file: Readonly<BulkHeaderFileInfo>, reason: string,
20
+ /** Exact rejected bytes, used to avoid quarantining a concurrent replacement. */
21
+ rejectedData?: Uint8Array): Promise<void>;
22
+ /**
23
+ * Promote a validated legacy entry into the implementation's preferred
24
+ * immutable namespace. Implementations should make this idempotent.
25
+ */
26
+ promoteValidated?(file: Readonly<BulkHeaderFileInfo>, data: Uint8Array): Promise<void>;
14
27
  delete?(file: Readonly<BulkHeaderFileInfo>): Promise<void>;
15
28
  }
16
29
  /**
@@ -22,5 +35,14 @@ export interface BulkFileDataCacheApi {
22
35
  */
23
36
  export interface BulkFileDownloadBudgetApi {
24
37
  consume(byteCount: number): void | Promise<void>;
38
+ snapshot?(): BulkFileDownloadBudgetSnapshot;
39
+ }
40
+ /** @public */
41
+ export interface BulkFileDownloadBudgetSnapshot {
42
+ maxBytes: number;
43
+ consumedBytes: number;
44
+ remainingBytes: number;
45
+ windowStartedAt: number;
46
+ windowMsecs: number;
25
47
  }
26
48
  //# sourceMappingURL=BulkFileDataCacheApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BulkFileDataCacheApi.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAEhE;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAA;IACxE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,MAAM,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACjD"}
1
+ {"version":3,"file":"BulkFileDataCacheApi.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAEhE;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAA;IACxE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE;;;;OAIG;IACH,UAAU,CAAC,CACT,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,MAAM,EAAE,MAAM;IACd,iFAAiF;IACjF,YAAY,CAAC,EAAE,UAAU,GACxB,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB;;;OAGG;IACH,gBAAgB,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtF,MAAM,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,8BAA8B,CAAA;CAC5C;AAED,cAAc;AACd,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;CACpB"}
@@ -0,0 +1,70 @@
1
+ import type { Chain } from '../../../../sdk/types';
2
+ /**
3
+ * Identifies deterministic rejection of the supplied immutable bytes.
4
+ * Operational failures such as worker crashes and queue saturation deliberately
5
+ * use ordinary errors so callers preserve the cache entry and avoid downloading
6
+ * a replacement that cannot be validated.
7
+ *
8
+ * @public
9
+ */
10
+ export declare class BulkFileDataValidationError extends Error {
11
+ readonly data?: Uint8Array | undefined;
12
+ constructor(message: string, data?: Uint8Array | undefined);
13
+ }
14
+ /**
15
+ * Complete immutable bulk-header object supplied to a validator.
16
+ *
17
+ * Implementations must validate the exact byte length and digest as well as
18
+ * every header's linkage, chain work, genesis, and proof of work.
19
+ *
20
+ * @public
21
+ */
22
+ export interface BulkFileDataValidationRequest {
23
+ fileName: string;
24
+ data: Uint8Array;
25
+ count: number;
26
+ /** Expected base64 SHA-256 digest. Omit only while producing a new export. */
27
+ fileHash?: string;
28
+ firstHeight: number;
29
+ prevHash: string;
30
+ prevChainWork: string;
31
+ lastHash?: string | null;
32
+ lastChainWork?: string | null;
33
+ chain?: Chain;
34
+ }
35
+ /** @public */
36
+ export interface BulkFileDataValidationResult {
37
+ /** The validated bytes. Worker implementations may transfer ownership. */
38
+ data: Uint8Array;
39
+ fileHash: string;
40
+ lastHeaderHash: string;
41
+ lastChainWork: string;
42
+ }
43
+ /** @public */
44
+ export interface BulkFileDataValidatorStats {
45
+ submitted: number;
46
+ completed: number;
47
+ failed: number;
48
+ rejected: number;
49
+ workerRestarts: number;
50
+ inFlight: number;
51
+ queued: number;
52
+ maxQueueDepth: number;
53
+ totalValidationMsecs: number;
54
+ maxValidationMsecs: number;
55
+ }
56
+ /**
57
+ * Asynchronous validation boundary for immutable bulk-header objects.
58
+ *
59
+ * Portable runtimes may validate in-process. Node services can inject a
60
+ * worker-backed implementation so proof-of-work validation never blocks the
61
+ * request event loop.
62
+ *
63
+ * @public
64
+ */
65
+ export interface BulkFileDataValidatorApi {
66
+ validate(request: BulkFileDataValidationRequest): Promise<BulkFileDataValidationResult>;
67
+ getStats?(): BulkFileDataValidatorStats;
68
+ destroy?(): Promise<void>;
69
+ }
70
+ //# sourceMappingURL=BulkFileDataValidatorApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkFileDataValidatorApi.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAElD;;;;;;;GAOG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;aAGlC,IAAI,CAAC,EAAE,UAAU;IAFnC,YACE,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,UAAU,YAAA,EAIlC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,cAAc;AACd,MAAM,WAAW,4BAA4B;IAC3C,0EAA0E;IAC1E,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,cAAc;AACd,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAA;IACvF,QAAQ,CAAC,IAAI,0BAA0B,CAAA;IACvC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BulkFileDataValidationError = void 0;
4
+ /**
5
+ * Identifies deterministic rejection of the supplied immutable bytes.
6
+ * Operational failures such as worker crashes and queue saturation deliberately
7
+ * use ordinary errors so callers preserve the cache entry and avoid downloading
8
+ * a replacement that cannot be validated.
9
+ *
10
+ * @public
11
+ */
12
+ class BulkFileDataValidationError extends Error {
13
+ data;
14
+ constructor(message, data) {
15
+ super(message);
16
+ this.data = data;
17
+ this.name = 'BulkFileDataValidationError';
18
+ }
19
+ }
20
+ exports.BulkFileDataValidationError = BulkFileDataValidationError;
21
+ //# sourceMappingURL=BulkFileDataValidatorApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkFileDataValidatorApi.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.ts"],"names":[],"mappings":";;;AAEA;;;;;;;GAOG;AACH,iCAAyC,SAAQ,KAAK;IAGlC,IAAI;IAFtB,YACE,OAAe,EACC,IAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAA;oBAFE,IAAI;QAGpB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAA;IAC3C,CAAC;CACF"}
@@ -42,6 +42,28 @@ export interface ChaintracksBulkDataStatsApi {
42
42
  coalescedLoads: number;
43
43
  downloads: number;
44
44
  downloadedBytes: number;
45
+ loadBackoffs: number;
46
+ /** Worker or portable validator statistics when the implementation exposes them. */
47
+ validation?: {
48
+ submitted: number;
49
+ completed: number;
50
+ failed: number;
51
+ rejected: number;
52
+ workerRestarts: number;
53
+ inFlight: number;
54
+ queued: number;
55
+ maxQueueDepth: number;
56
+ totalValidationMsecs: number;
57
+ maxValidationMsecs: number;
58
+ };
59
+ /** Durable download reservation state when configured. */
60
+ downloadBudget?: {
61
+ maxBytes: number;
62
+ consumedBytes: number;
63
+ remainingBytes: number;
64
+ windowStartedAt: number;
65
+ windowMsecs: number;
66
+ };
45
67
  }
46
68
  /** @public */
47
69
  export interface ChaintracksSourceStatusApi {
@@ -52,6 +74,17 @@ export interface ChaintracksSourceStatusApi {
52
74
  lastFailure?: string;
53
75
  error?: string;
54
76
  }
77
+ /** Constant-time, local-only process state for probes and operators. @public */
78
+ export interface ChaintracksAvailabilitySnapshotApi {
79
+ available: boolean;
80
+ startupError?: string;
81
+ presentHeight?: number;
82
+ presentHeightUpdatedAt?: string;
83
+ presentHeightRefreshInFlight: boolean;
84
+ mainLoopHeartbeatAt?: string;
85
+ sources: ChaintracksSourceStatusApi[];
86
+ bulkData: ChaintracksBulkDataStatsApi;
87
+ }
55
88
  /**
56
89
  * Chaintracks client API excluding events and callbacks
57
90
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"ChaintracksClientApi.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChaintracksClientApi.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.ts"],"names":[],"mappings":"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"}