@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.
- package/CHANGELOG.md +31 -3
- package/README.md +51 -1
- package/out/src/CWIStyleWalletManager.d.ts +37 -27
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/out/src/CWIStyleWalletManager.js +157 -151
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/WalletAuthenticationManager.d.ts +20 -0
- package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
- package/out/src/WalletAuthenticationManager.js +180 -47
- package/out/src/WalletAuthenticationManager.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts +22 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts +70 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js +21 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +33 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +6 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +9 -3
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +45 -5
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +2 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.all.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.all.js +2 -0
- package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.js +2 -0
- package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +15 -2
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +115 -13
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +17 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +174 -87
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts +32 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +30 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +2 -2
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +5 -3
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +39 -0
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +194 -0
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts +1 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js +1 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +12 -0
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +52 -0
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +40 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +207 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -0
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +5 -2
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +15 -9
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +6 -1
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.js +29 -0
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.d.ts +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +5 -5
- package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
- package/out/src/utility/beefForTxids.d.ts +12 -3
- package/out/src/utility/beefForTxids.d.ts.map +1 -1
- package/out/src/utility/beefForTxids.js +69 -21
- package/out/src/utility/beefForTxids.js.map +1 -1
- package/out/src/wab-client/WABClient.d.ts.map +1 -1
- package/out/src/wab-client/WABClient.js +13 -13
- package/out/src/wab-client/WABClient.js.map +1 -1
- package/out/src/wab-client/WABTransport.d.ts +17 -23
- package/out/src/wab-client/WABTransport.d.ts.map +1 -1
- package/out/src/wab-client/WABTransport.js +129 -141
- package/out/src/wab-client/WABTransport.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +6 -0
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
- 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
|
|
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
|
|
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
|
|
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:
|
|
128
|
-
component:
|
|
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:
|
|
144
|
-
component:
|
|
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:
|
|
154
|
-
component:
|
|
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('
|
|
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('
|
|
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('
|
|
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:
|
|
187
|
-
component:
|
|
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.
|
|
201
|
+
await this.provideWABPresentationKey(result, wabAccountStatus);
|
|
205
202
|
}
|
|
206
203
|
catch (error) {
|
|
207
204
|
this.telemetry.capture({
|
|
208
|
-
name:
|
|
209
|
-
component:
|
|
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 ===
|
|
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:
|
|
225
|
-
component:
|
|
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:
|
|
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:
|
|
240
|
-
component:
|
|
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
|
-
|
|
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
|
|
404
|
+
throw new WABAccountContinuityError('WAB returned invalid existing-user data.');
|
|
272
405
|
}
|
|
273
406
|
if (rawAccountStatus !== undefined &&
|
|
274
407
|
rawExistingUser !== undefined &&
|
|
275
|
-
(rawAccountStatus ===
|
|
276
|
-
throw new WABAccountContinuityError('WAB returned
|
|
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 ?
|
|
413
|
+
compatibilityStatus = rawExistingUser ? EXISTING_USER : NEW_USER;
|
|
281
414
|
}
|
|
282
415
|
const explicitStatus = rawAccountStatus ?? compatibilityStatus;
|
|
283
|
-
if ((explicitStatus ===
|
|
284
|
-
(explicitStatus ===
|
|
285
|
-
throw new WABAccountContinuityError('WAB returned
|
|
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 ?
|
|
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;
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;AAE1D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,EACnB,kBAAkB,CAAC,EAAE,WAAW,EAAE,KAC/B,IAAI,CAAA;AAET;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,yBAAyB,EAAE,CAAA;IACrC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAA;IACtC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,2BAA2B,CAAA;CACvC;AAED,cAAc;AACd,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"ChaintracksClientApi.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.ts"],"names":[],"mappings":"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"}
|