@dynamic-labs-wallet/browser 1.0.37 → 1.0.39

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/index.cjs CHANGED
@@ -101,6 +101,33 @@ const ARGON2_HASH_LENGTH = 32;
101
101
  */ const PBKDF2_ITERATIONS_V1 = 100000;
102
102
  const PBKDF2_ITERATIONS_V2 = 1000000;
103
103
 
104
+ /**
105
+ * Derives a key using Argon2id algorithm
106
+ * @param params - Key derivation parameters
107
+ * @param encryptionConfig - Encryption configuration
108
+ * @returns Promise<CryptoKey>
109
+ */ const deriveArgon2Key = async ({ password, salt }, encryptionConfig)=>{
110
+ const argon2id = await loadArgon2idWasm();
111
+ const argon2Config = encryptionConfig;
112
+ const passwordBytes = new TextEncoder().encode(password);
113
+ const parallelism = argon2Config.parallelism || ARGON2_PARALLELISM;
114
+ const hash = argon2id({
115
+ password: passwordBytes,
116
+ salt: salt,
117
+ parallelism,
118
+ passes: argon2Config.iterations,
119
+ memorySize: argon2Config.memorySize || ARGON2_MEMORY_SIZE,
120
+ tagLength: argon2Config.hashLength || ARGON2_HASH_LENGTH
121
+ });
122
+ return crypto.subtle.importKey('raw', new Uint8Array(hash), {
123
+ name: encryptionConfig.algorithm,
124
+ length: encryptionConfig.algorithmLength
125
+ }, false, [
126
+ 'encrypt',
127
+ 'decrypt'
128
+ ]);
129
+ };
130
+
104
131
  /**
105
132
  * Encryption configuration for each version
106
133
  */ const ENCRYPTION_VERSIONS = {
@@ -153,98 +180,6 @@ const PBKDF2_ITERATIONS_V2 = 1000000;
153
180
  return config.keyDerivation === ARGON2_ALGORITHM;
154
181
  };
155
182
 
156
- /**
157
- * One-way, truncated SHA-256 over the concatenated byte parts. Used to build a
158
- * fingerprint of the *inputs* to a derivation so two derivations can be proven
159
- * to have consumed identical inputs without exposing those inputs.
160
- */ const fingerprint = async (...parts)=>{
161
- const total = parts.reduce((n, p)=>n + p.length, 0);
162
- const buf = new Uint8Array(total);
163
- let offset = 0;
164
- for (const part of parts){
165
- buf.set(part, offset);
166
- offset += part.length;
167
- }
168
- const digest = new Uint8Array(await crypto.subtle.digest('SHA-256', buf));
169
- return Array.from(digest.subarray(0, 8), (b)=>b.toString(16).padStart(2, '0')).join('');
170
- };
171
- /**
172
- * Per-component fingerprint of the *exact* inputs the KDF consumes: salt, password,
173
- * and the Argon2 params (incl. parallelism). Computed at the derivation site so the
174
- * backup self-test can prove the encrypt-side and decrypt-side derivations ran on
175
- * identical inputs — and, when they don't, pinpoint *which* component differed.
176
- * If all components match but the derived keys differ, that is genuine Argon2id
177
- * non-determinism; a mismatching component means the drift is an input mismatch
178
- * (e.g. a p=2 vs p=1 retry), not the engine. One-way and non-secret (envId path only).
179
- */ const fingerprintInputs = async (passwordBytes, salt, argon2Config)=>{
180
- const params = new Uint8Array(16);
181
- const view = new DataView(params.buffer);
182
- view.setUint32(0, argon2Config.parallelism || ARGON2_PARALLELISM, true);
183
- view.setUint32(4, argon2Config.iterations, true);
184
- view.setUint32(8, argon2Config.memorySize || ARGON2_MEMORY_SIZE, true);
185
- view.setUint32(12, argon2Config.hashLength || ARGON2_HASH_LENGTH, true);
186
- const [saltFp, passwordFp, paramsFp] = await Promise.all([
187
- fingerprint(salt),
188
- fingerprint(passwordBytes),
189
- fingerprint(params)
190
- ]);
191
- return {
192
- salt: saltFp,
193
- password: passwordFp,
194
- params: paramsFp
195
- };
196
- };
197
- /**
198
- * Derives the raw Argon2id hash bytes for the given params/config.
199
- *
200
- * Exposed separately from {@link deriveArgon2Key} for the backup self-test's
201
- * determinism probe: it lets the caller derive twice from identical inputs and
202
- * diff the results to detect Argon2id non-determinism (suspected on
203
- * memory-constrained clients). The raw bytes are AES key material and must
204
- * never be logged or persisted — keep them in-process.
205
- */ const deriveRawArgon2Bytes = async ({ password, salt }, encryptionConfig)=>{
206
- const argon2id = await loadArgon2idWasm();
207
- const argon2Config = encryptionConfig;
208
- const passwordBytes = new TextEncoder().encode(password);
209
- const parallelism = argon2Config.parallelism || ARGON2_PARALLELISM;
210
- const hash = argon2id({
211
- password: passwordBytes,
212
- salt: salt,
213
- parallelism,
214
- passes: argon2Config.iterations,
215
- memorySize: argon2Config.memorySize || ARGON2_MEMORY_SIZE,
216
- tagLength: argon2Config.hashLength || ARGON2_HASH_LENGTH
217
- });
218
- return new Uint8Array(hash);
219
- };
220
- /**
221
- * Derives a key using Argon2id algorithm
222
- * @param params - Key derivation parameters
223
- * @param encryptionConfig - Encryption configuration
224
- * @param onRawKey - In-process hook receiving the raw derived bytes (key material —
225
- * never log) and a per-component fingerprint of the inputs that produced them. Lets
226
- * the backup self-test reuse the keys it already derives — and prove both sides used
227
- * identical inputs (and which component differs if not) — without extra derivations.
228
- * @returns Promise<CryptoKey>
229
- */ const deriveArgon2Key = async (params, encryptionConfig, onRawKey)=>{
230
- const hash = await deriveRawArgon2Bytes(params, encryptionConfig);
231
- if (onRawKey) {
232
- try {
233
- const inputFingerprint = await fingerprintInputs(new TextEncoder().encode(params.password), params.salt, encryptionConfig);
234
- onRawKey(hash, inputFingerprint);
235
- } catch (e) {
236
- // Never let the diagnostic hook affect key derivation.
237
- }
238
- }
239
- return crypto.subtle.importKey('raw', new Uint8Array(hash), {
240
- name: encryptionConfig.algorithm,
241
- length: encryptionConfig.algorithmLength
242
- }, false, [
243
- 'encrypt',
244
- 'decrypt'
245
- ]);
246
- };
247
-
248
183
  /**
249
184
  * Utility functions for encryption operations
250
185
  * These functions are separated to avoid circular dependencies
@@ -319,20 +254,18 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
319
254
  */ const isInvalidPasswordError = (error)=>error instanceof Error && error.name === 'OperationError';
320
255
  /**
321
256
  * Get the appropriate key derivation function based on the encryption config
322
- */ const getKey = async (params, encryptionConfig, onRawKey)=>{
257
+ */ const getKey = async (params, encryptionConfig)=>{
323
258
  // Use Argon2 for v3, PBKDF2 for v1 and v2
324
259
  if (encryptionConfig.keyDerivation === ARGON2_ALGORITHM) {
325
- return deriveArgon2Key(params, encryptionConfig, onRawKey);
260
+ return deriveArgon2Key(params, encryptionConfig);
326
261
  } else {
327
- // PBKDF2 derives a non-extractable CryptoKey directly, so raw bytes are
328
- // unavailable; the hook simply doesn't fire (drift probe is v3-only anyway).
329
262
  return derivePBKDF2Key(params, encryptionConfig);
330
263
  }
331
264
  };
332
265
  /**
333
266
  * Encrypts data using the specified encryption version.
334
267
  * Always uses the latest encryption configuration for new encryptions by default.
335
- */ const encryptData = async ({ data, password, version = DEFAULT_ENCRYPTION_VERSION, onRawKey })=>{
268
+ */ const encryptData = async ({ data, password, version = DEFAULT_ENCRYPTION_VERSION })=>{
336
269
  const encryptionConfig = getEncryptionConfig(version);
337
270
  try {
338
271
  // Generate a random salt and IV
@@ -341,7 +274,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
341
274
  const key = await getKey({
342
275
  password,
343
276
  salt
344
- }, encryptionConfig, onRawKey);
277
+ }, encryptionConfig);
345
278
  // Convert the input string to bytes
346
279
  const dataBytes = new TextEncoder().encode(data);
347
280
  // Encrypt the data
@@ -366,7 +299,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
366
299
  * Uses the version field from the data to determine encryption parameters.
367
300
  * Falls back to legacy version for backward compatibility if no version is specified.
368
301
  * For v3 (Argon2), retries with parallelism=1 if an OperationError occurs.
369
- */ const decryptData = async ({ data, password, onRawKey })=>{
302
+ */ const decryptData = async ({ data, password })=>{
370
303
  const { salt, iv, cipher, version } = data;
371
304
  // Ensure proper base64 padding for all values
372
305
  const paddedSalt = ensureBase64Padding(salt);
@@ -381,7 +314,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
381
314
  const key = await getKey({
382
315
  password,
383
316
  salt: saltBytes
384
- }, encryptionConfig, onRawKey);
317
+ }, encryptionConfig);
385
318
  const decryptedData = await crypto.subtle.decrypt({
386
319
  name: AES_GCM_ALGORITHM,
387
320
  iv: ivBytes
@@ -400,7 +333,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
400
333
  const key = await getKey({
401
334
  password,
402
335
  salt: saltBytes
403
- }, modifiedConfig, onRawKey);
336
+ }, modifiedConfig);
404
337
  const decryptedData = await crypto.subtle.decrypt({
405
338
  name: AES_GCM_ALGORITHM,
406
339
  iv: ivBytes
@@ -5080,165 +5013,11 @@ class DynamicWalletClient {
5080
5013
  throw error;
5081
5014
  }
5082
5015
  }
5083
- // AES-GCM authenticates the ciphertext, so a wrong key fails to decrypt
5084
- // rather than returning corrupted plaintext — "decrypt did not throw" is a
5085
- // sufficient guarantee the cipher is recoverable.
5086
- async assertEncryptionRoundTrip({ password, encrypted, encryptDerivation, walletId, accountAddress }) {
5087
- if (!encrypted) return;
5088
- this.logger.info('[keyshare-selftest] encryption round-trip self-test starting', {
5089
- walletId,
5090
- accountAddress
5091
- });
5092
- // Capture the decrypt-side derived key + its input fingerprint (envId path only) so
5093
- // a failure can be diffed against the encrypt side without any extra Argon2 derivation.
5094
- // The `??=` keeps the FIRST (p=2) derivation, so the v3 p=2->p=1 retry can't pair a
5095
- // p=2 encrypt key against a p=1 decrypt key (the input fingerprints would then differ).
5096
- let decryptKeyBytes;
5097
- let decryptInputFingerprint;
5098
- const onRawKey = password ? undefined : (k, fp)=>{
5099
- decryptKeyBytes != null ? decryptKeyBytes : decryptKeyBytes = k;
5100
- decryptInputFingerprint != null ? decryptInputFingerprint : decryptInputFingerprint = fp;
5101
- };
5102
- try {
5103
- await this.decryptKeyShare({
5104
- keyShare: encrypted,
5105
- password,
5106
- onRawKey
5107
- });
5108
- } catch (error) {
5109
- // Only a genuine ciphertext-integrity failure (AES-GCM auth failure /
5110
- // wrong key material) means the backup is unrecoverable — that's the
5111
- // terminal, non-retryable condition this self-test exists to catch.
5112
- // Anything else (most commonly a failure to fetch the Argon2id WASM,
5113
- // which surfaces as "Fetch error GET .../argon2id/simd.wasm") means the
5114
- // self-test never actually ran: the crypto engine couldn't load. That's a
5115
- // transient network error, so rethrow it as-is rather than masking it
5116
- // behind "backup aborted" — it stays visible in logs and stays retryable.
5117
- if (error instanceof InvalidPasswordError || error instanceof KeyShareDecryptionError) {
5118
- this.logSelfTestDiagnostics({
5119
- encrypted,
5120
- password,
5121
- walletId,
5122
- accountAddress,
5123
- cause: error,
5124
- encryptDerivation,
5125
- decryptKeyBytes,
5126
- decryptInputFingerprint
5127
- });
5128
- throw new EncryptionSelfTestFailedError({
5129
- walletId,
5130
- accountAddress,
5131
- cause: error
5132
- });
5133
- }
5134
- throw error;
5135
- }
5136
- this.logger.info('[keyshare-selftest] encryption round-trip self-test passed', {
5137
- walletId,
5138
- accountAddress
5139
- });
5140
- }
5141
- /**
5142
- * Diagnostics for backup self-test failures. ONLY runs on the envId-default
5143
- * path (no user password): envId is public, so the salt/iv/version emitted
5144
- * here are non-secret.
5145
- *
5146
- * Reuses the encrypt- and decrypt-side keys that the backup already derived
5147
- * (no extra Argon2 work — important, since the failing clients are the
5148
- * memory-constrained ones) and logs the byte-wise XOR of the two: equal keys
5149
- * give an all-zero diff, any non-zero byte localises the Argon2id drift that
5150
- * broke this round-trip. The XOR of two unknown keys is not usable key
5151
- * material, and the raw keys are never logged.
5152
- */ logSelfTestDiagnostics({ encrypted, password, walletId, accountAddress, cause, encryptDerivation, decryptKeyBytes, decryptInputFingerprint }) {
5153
- if (password) {
5154
- this.logger.warn('[keyshare-selftest] password provided... skipping diagnostics', {
5155
- environmentId: this.environmentId,
5156
- walletId,
5157
- accountAddress
5158
- });
5159
- return;
5160
- } else {
5161
- this.logger.info('[keyshare-selftest] password not provided (envId path), running diagnostics', {
5162
- environmentId: this.environmentId,
5163
- walletId,
5164
- accountAddress
5165
- });
5166
- }
5167
- try {
5168
- const decoded = JSON.parse(Buffer.from(encrypted, 'base64').toString());
5169
- var _decoded_version;
5170
- const version = (_decoded_version = decoded.version) != null ? _decoded_version : 'unknown';
5171
- const config = getEncryptionConfig(version);
5172
- const toHex = (a)=>Array.from(a, (b)=>b.toString(16).padStart(2, '0')).join('');
5173
- // Diff the two real derivations when both were captured (v3/Argon2 only —
5174
- // PBKDF2 keys are non-extractable so no bytes are available).
5175
- let drift;
5176
- const encryptKeyBytes = encryptDerivation == null ? void 0 : encryptDerivation.key;
5177
- if (encryptKeyBytes && decryptKeyBytes) {
5178
- const len = Math.min(encryptKeyBytes.length, decryptKeyBytes.length);
5179
- const xor = new Uint8Array(len);
5180
- const driftPositions = [];
5181
- for(let i = 0; i < len; i++){
5182
- xor[i] = encryptKeyBytes[i] ^ decryptKeyBytes[i];
5183
- if (xor[i] !== 0) driftPositions.push(i);
5184
- }
5185
- drift = {
5186
- keyLength: len,
5187
- keyDriftXor: toHex(xor),
5188
- keyDriftByteCount: driftPositions.length,
5189
- keyDriftPositions: driftPositions
5190
- };
5191
- }
5192
- // Compare the two derivations' inputs component-by-component so a mismatch is
5193
- // attributable to the salt, the password, or the config (params) — not just
5194
- // "inputs differ". All match + a non-zero key drift ⇒ proven Argon2id non-determinism.
5195
- const encInputs = encryptDerivation == null ? void 0 : encryptDerivation.inputFingerprint;
5196
- const inputComparison = encInputs && decryptInputFingerprint ? {
5197
- saltMatch: encInputs.salt === decryptInputFingerprint.salt,
5198
- passwordMatch: encInputs.password === decryptInputFingerprint.password,
5199
- paramsMatch: encInputs.params === decryptInputFingerprint.params,
5200
- inputsMatch: encInputs.salt === decryptInputFingerprint.salt && encInputs.password === decryptInputFingerprint.password && encInputs.params === decryptInputFingerprint.params
5201
- } : undefined;
5202
- // Detect if drift has happened
5203
- const detectedDrift = (drift == null ? void 0 : drift.keyDriftByteCount) && drift.keyDriftByteCount > 0;
5204
- this.logger.error('[keyshare-selftest] self-test failed', _extends({
5205
- walletId,
5206
- accountAddress,
5207
- environmentId: this.environmentId,
5208
- userId: this.userId,
5209
- version,
5210
- salt: decoded.salt,
5211
- iv: decoded.iv,
5212
- saltLength: base64ToBytes(ensureBase64Padding(decoded.salt)).length,
5213
- cipherLength: base64ToBytes(ensureBase64Padding(decoded.cipher)).length,
5214
- causeName: cause instanceof Error ? cause.name : undefined,
5215
- causeContext: cause instanceof KeyShareDecryptionError ? cause.context : undefined,
5216
- // Whether both real keys were available to diff (false ⇒ non-v3 or a key wasn't captured).
5217
- keyDriftAvailable: !!drift,
5218
- detectedDrift
5219
- }, drift, inputComparison, {
5220
- argon2: isArgon2Config(config) ? {
5221
- memorySize: config.memorySize,
5222
- iterations: config.iterations,
5223
- parallelism: config.parallelism,
5224
- hashLength: config.hashLength
5225
- } : undefined
5226
- }));
5227
- } catch (diagError) {
5228
- // Diagnostics must never mask the real failure.
5229
- this.logger.warn('[keyshare-selftest] diagnostics failed to run', {
5230
- walletId,
5231
- accountAddress,
5232
- error: diagError instanceof Error ? diagError.message : String(diagError)
5233
- });
5234
- }
5235
- }
5236
5016
  /**
5237
- * Post-backup recoverability check (feature-flagged). Where
5238
- * `assertEncryptionRoundTrip` only proves the cipher decrypts in-process,
5239
- * this fetches the just-stored share back from the keyshare service and
5240
- * confirms it decrypts to the same secret we hold in memory — exercising the
5241
- * real store → fetch → decrypt path the user will rely on to recover.
5017
+ * Post-backup recoverability check (feature-flagged). Fetches the just-stored
5018
+ * share back from the keyshare service and confirms it decrypts to the same
5019
+ * secret we hold in memory exercising the real store → fetch → decrypt path
5020
+ * the user will rely on to recover.
5242
5021
  *
5243
5022
  * The local share is never deleted: a failed/flaky fetch must not be able to
5244
5023
  * lose the only client copy. A genuine decrypt failure or a value mismatch is
@@ -5322,12 +5101,11 @@ class DynamicWalletClient {
5322
5101
  throw error;
5323
5102
  }
5324
5103
  }
5325
- async encryptKeyShare({ keyShare, password, onRawKey, version }) {
5104
+ async encryptKeyShare({ keyShare, password, version }) {
5326
5105
  const serializedKeyShare = JSON.stringify(keyShare);
5327
5106
  const encryptedKeyShare = await encryptData({
5328
5107
  data: serializedKeyShare,
5329
5108
  password: password != null ? password : this.environmentId,
5330
- onRawKey,
5331
5109
  version
5332
5110
  });
5333
5111
  this.logPasswordSharePresence(password, 'encrypt');
@@ -5696,7 +5474,7 @@ class DynamicWalletClient {
5696
5474
  hasDelegatedShare: !!distribution.delegatedShare
5697
5475
  }));
5698
5476
  try {
5699
- var _preEncryptedCloudShares_, _this_getWalletFromMap, _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
5477
+ var _this_getWalletFromMap, _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
5700
5478
  // `let` so the retry path can swap in a freshly-signed session via the reverse channel on 400.
5701
5479
  let resolvedSignedSessionId = await this.signedSession.resolve(signedSessionId);
5702
5480
  if (!(walletData == null ? void 0 : walletData.walletId)) {
@@ -5713,28 +5491,13 @@ class DynamicWalletClient {
5713
5491
  }
5714
5492
  const bitcoinConfig = this.getBitcoinConfigForChain(walletData.chainName, accountAddress);
5715
5493
  const isPasswordEncrypted = shouldValidatePassword(password, this.environmentId);
5716
- // On the envId-default path, capture each share's derived encrypt key
5717
- // (keyed by its ciphertext blob) so the self-test can diff it against the
5718
- // decrypt key it derives — detecting Argon2id drift with NO extra
5719
- // derivations. Skipped entirely when a user password is set; keys are
5720
- // in-process only and cleared right after the self-test.
5721
- const encryptKeyByBlob = isPasswordEncrypted ? undefined : new Map();
5722
5494
  // Pre-encrypt all shares once, with retry to handle transient WebCrypto errors.
5723
5495
  // This avoids re-running expensive Argon2id key derivation on every retry attempt.
5724
- const encryptWithRetry = (keyShare)=>retryPromise(async ()=>{
5725
- let derived;
5726
- const blob = await this.encryptKeyShare({
5496
+ const encryptWithRetry = (keyShare)=>retryPromise(()=>this.encryptKeyShare({
5727
5497
  keyShare,
5728
5498
  password,
5729
- onRawKey: encryptKeyByBlob ? (key, inputFingerprint)=>derived = {
5730
- key,
5731
- inputFingerprint
5732
- } : undefined,
5733
5499
  version: encryptionVersion
5734
- });
5735
- if (encryptKeyByBlob && derived) encryptKeyByBlob.set(blob, derived);
5736
- return blob;
5737
- }, {
5500
+ }), {
5738
5501
  maxAttempts: 3,
5739
5502
  operationName: 'encrypt key share'
5740
5503
  });
@@ -5754,22 +5517,6 @@ class DynamicWalletClient {
5754
5517
  dynamicShareCount: preEncryptedDynamicShares.length,
5755
5518
  cloudProviderCount: preEncryptedCloudShares.length
5756
5519
  }));
5757
- var _preEncryptedDynamicShares_;
5758
- // Fail fast before any upload if the just-written cipher can't be read
5759
- // back with the same key material. Runs once per backup, not per share.
5760
- const selfTestBlob = (_preEncryptedDynamicShares_ = preEncryptedDynamicShares[0]) != null ? _preEncryptedDynamicShares_ : (_preEncryptedCloudShares_ = preEncryptedCloudShares[0]) == null ? void 0 : _preEncryptedCloudShares_.encrypted[0];
5761
- try {
5762
- await this.assertEncryptionRoundTrip({
5763
- password,
5764
- encrypted: selfTestBlob,
5765
- encryptDerivation: selfTestBlob ? encryptKeyByBlob == null ? void 0 : encryptKeyByBlob.get(selfTestBlob) : undefined,
5766
- walletId: walletData.walletId,
5767
- accountAddress
5768
- });
5769
- } finally{
5770
- // Drop captured key material promptly regardless of outcome.
5771
- encryptKeyByBlob == null ? void 0 : encryptKeyByBlob.clear();
5772
- }
5773
5520
  // Step 1: Upload shares in parallel, each with its own retry
5774
5521
  const uploadPromises = [];
5775
5522
  if (distribution.clientShares.length > 0) {
@@ -6309,7 +6056,7 @@ class DynamicWalletClient {
6309
6056
  throw error;
6310
6057
  }
6311
6058
  }
6312
- async decryptKeyShare({ keyShare, password, onRawKey }) {
6059
+ async decryptKeyShare({ keyShare, password }) {
6313
6060
  const decodedKeyShare = JSON.parse(Buffer.from(keyShare, 'base64').toString());
6314
6061
  // Track whether a user-supplied password was provided so we can emit a
6315
6062
  // distinct error class on failure. The default `environmentId` fallback is
@@ -6321,8 +6068,7 @@ class DynamicWalletClient {
6321
6068
  try {
6322
6069
  const decryptedKeyShare = await decryptData({
6323
6070
  data: decodedKeyShare,
6324
- password: effectivePassword,
6325
- onRawKey
6071
+ password: effectivePassword
6326
6072
  });
6327
6073
  this.logPasswordSharePresence(password, 'decrypt');
6328
6074
  this.logger.info('[keyshare-decryption] key share decrypted', {
@@ -7661,7 +7407,7 @@ class DynamicWalletClient {
7661
7407
  this.userId = user.id;
7662
7408
  const waasWallets = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.filter((vc)=>vc.walletName === 'dynamicwaas');
7663
7409
  const wallets = waasWallets.map((vc)=>{
7664
- var _this_getWalletFromMap, _vc_walletProperties, _vc_walletProperties1, _vc_walletProperties2, _vc_walletProperties3, _vc_walletProperties4;
7410
+ var _this_getWalletFromMap, _vc_walletProperties, _vc_walletProperties1, _vc_walletProperties2, _vc_walletProperties3, _vc_walletProperties4, _vc_walletProperties5;
7665
7411
  var _this_getWalletFromMap_derivationPath;
7666
7412
  return {
7667
7413
  walletId: vc.id,
@@ -7675,7 +7421,11 @@ class DynamicWalletClient {
7675
7421
  addressType: (_vc_walletProperties1 = vc.walletProperties) == null ? void 0 : _vc_walletProperties1.addressType,
7676
7422
  shareSetId: (_vc_walletProperties2 = vc.walletProperties) == null ? void 0 : _vc_walletProperties2.shareSetId,
7677
7423
  shareSetType: (_vc_walletProperties3 = vc.walletProperties) == null ? void 0 : _vc_walletProperties3.shareSetType,
7678
- otherShareSets: (_vc_walletProperties4 = vc.walletProperties) == null ? void 0 : _vc_walletProperties4.otherShareSets
7424
+ otherShareSets: (_vc_walletProperties4 = vc.walletProperties) == null ? void 0 : _vc_walletProperties4.otherShareSets,
7425
+ // On-sign-on settings (shouldRefreshOnNextSignOn / reshareOnNextSignOn /
7426
+ // revokeOnNextSignOn). Surfaced so the SDK can self-drive the on-sign-on
7427
+ // orchestration instead of the host reading these flags.
7428
+ settings: (_vc_walletProperties5 = vc.walletProperties) == null ? void 0 : _vc_walletProperties5.settings
7679
7429
  };
7680
7430
  });
7681
7431
  const existingWalletMap = this.walletMap;
package/index.esm.js CHANGED
@@ -102,6 +102,33 @@ const ARGON2_HASH_LENGTH = 32;
102
102
  */ const PBKDF2_ITERATIONS_V1 = 100000;
103
103
  const PBKDF2_ITERATIONS_V2 = 1000000;
104
104
 
105
+ /**
106
+ * Derives a key using Argon2id algorithm
107
+ * @param params - Key derivation parameters
108
+ * @param encryptionConfig - Encryption configuration
109
+ * @returns Promise<CryptoKey>
110
+ */ const deriveArgon2Key = async ({ password, salt }, encryptionConfig)=>{
111
+ const argon2id = await loadArgon2idWasm();
112
+ const argon2Config = encryptionConfig;
113
+ const passwordBytes = new TextEncoder().encode(password);
114
+ const parallelism = argon2Config.parallelism || ARGON2_PARALLELISM;
115
+ const hash = argon2id({
116
+ password: passwordBytes,
117
+ salt: salt,
118
+ parallelism,
119
+ passes: argon2Config.iterations,
120
+ memorySize: argon2Config.memorySize || ARGON2_MEMORY_SIZE,
121
+ tagLength: argon2Config.hashLength || ARGON2_HASH_LENGTH
122
+ });
123
+ return crypto.subtle.importKey('raw', new Uint8Array(hash), {
124
+ name: encryptionConfig.algorithm,
125
+ length: encryptionConfig.algorithmLength
126
+ }, false, [
127
+ 'encrypt',
128
+ 'decrypt'
129
+ ]);
130
+ };
131
+
105
132
  /**
106
133
  * Encryption configuration for each version
107
134
  */ const ENCRYPTION_VERSIONS = {
@@ -154,98 +181,6 @@ const PBKDF2_ITERATIONS_V2 = 1000000;
154
181
  return config.keyDerivation === ARGON2_ALGORITHM;
155
182
  };
156
183
 
157
- /**
158
- * One-way, truncated SHA-256 over the concatenated byte parts. Used to build a
159
- * fingerprint of the *inputs* to a derivation so two derivations can be proven
160
- * to have consumed identical inputs without exposing those inputs.
161
- */ const fingerprint = async (...parts)=>{
162
- const total = parts.reduce((n, p)=>n + p.length, 0);
163
- const buf = new Uint8Array(total);
164
- let offset = 0;
165
- for (const part of parts){
166
- buf.set(part, offset);
167
- offset += part.length;
168
- }
169
- const digest = new Uint8Array(await crypto.subtle.digest('SHA-256', buf));
170
- return Array.from(digest.subarray(0, 8), (b)=>b.toString(16).padStart(2, '0')).join('');
171
- };
172
- /**
173
- * Per-component fingerprint of the *exact* inputs the KDF consumes: salt, password,
174
- * and the Argon2 params (incl. parallelism). Computed at the derivation site so the
175
- * backup self-test can prove the encrypt-side and decrypt-side derivations ran on
176
- * identical inputs — and, when they don't, pinpoint *which* component differed.
177
- * If all components match but the derived keys differ, that is genuine Argon2id
178
- * non-determinism; a mismatching component means the drift is an input mismatch
179
- * (e.g. a p=2 vs p=1 retry), not the engine. One-way and non-secret (envId path only).
180
- */ const fingerprintInputs = async (passwordBytes, salt, argon2Config)=>{
181
- const params = new Uint8Array(16);
182
- const view = new DataView(params.buffer);
183
- view.setUint32(0, argon2Config.parallelism || ARGON2_PARALLELISM, true);
184
- view.setUint32(4, argon2Config.iterations, true);
185
- view.setUint32(8, argon2Config.memorySize || ARGON2_MEMORY_SIZE, true);
186
- view.setUint32(12, argon2Config.hashLength || ARGON2_HASH_LENGTH, true);
187
- const [saltFp, passwordFp, paramsFp] = await Promise.all([
188
- fingerprint(salt),
189
- fingerprint(passwordBytes),
190
- fingerprint(params)
191
- ]);
192
- return {
193
- salt: saltFp,
194
- password: passwordFp,
195
- params: paramsFp
196
- };
197
- };
198
- /**
199
- * Derives the raw Argon2id hash bytes for the given params/config.
200
- *
201
- * Exposed separately from {@link deriveArgon2Key} for the backup self-test's
202
- * determinism probe: it lets the caller derive twice from identical inputs and
203
- * diff the results to detect Argon2id non-determinism (suspected on
204
- * memory-constrained clients). The raw bytes are AES key material and must
205
- * never be logged or persisted — keep them in-process.
206
- */ const deriveRawArgon2Bytes = async ({ password, salt }, encryptionConfig)=>{
207
- const argon2id = await loadArgon2idWasm();
208
- const argon2Config = encryptionConfig;
209
- const passwordBytes = new TextEncoder().encode(password);
210
- const parallelism = argon2Config.parallelism || ARGON2_PARALLELISM;
211
- const hash = argon2id({
212
- password: passwordBytes,
213
- salt: salt,
214
- parallelism,
215
- passes: argon2Config.iterations,
216
- memorySize: argon2Config.memorySize || ARGON2_MEMORY_SIZE,
217
- tagLength: argon2Config.hashLength || ARGON2_HASH_LENGTH
218
- });
219
- return new Uint8Array(hash);
220
- };
221
- /**
222
- * Derives a key using Argon2id algorithm
223
- * @param params - Key derivation parameters
224
- * @param encryptionConfig - Encryption configuration
225
- * @param onRawKey - In-process hook receiving the raw derived bytes (key material —
226
- * never log) and a per-component fingerprint of the inputs that produced them. Lets
227
- * the backup self-test reuse the keys it already derives — and prove both sides used
228
- * identical inputs (and which component differs if not) — without extra derivations.
229
- * @returns Promise<CryptoKey>
230
- */ const deriveArgon2Key = async (params, encryptionConfig, onRawKey)=>{
231
- const hash = await deriveRawArgon2Bytes(params, encryptionConfig);
232
- if (onRawKey) {
233
- try {
234
- const inputFingerprint = await fingerprintInputs(new TextEncoder().encode(params.password), params.salt, encryptionConfig);
235
- onRawKey(hash, inputFingerprint);
236
- } catch (e) {
237
- // Never let the diagnostic hook affect key derivation.
238
- }
239
- }
240
- return crypto.subtle.importKey('raw', new Uint8Array(hash), {
241
- name: encryptionConfig.algorithm,
242
- length: encryptionConfig.algorithmLength
243
- }, false, [
244
- 'encrypt',
245
- 'decrypt'
246
- ]);
247
- };
248
-
249
184
  /**
250
185
  * Utility functions for encryption operations
251
186
  * These functions are separated to avoid circular dependencies
@@ -320,20 +255,18 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
320
255
  */ const isInvalidPasswordError = (error)=>error instanceof Error && error.name === 'OperationError';
321
256
  /**
322
257
  * Get the appropriate key derivation function based on the encryption config
323
- */ const getKey = async (params, encryptionConfig, onRawKey)=>{
258
+ */ const getKey = async (params, encryptionConfig)=>{
324
259
  // Use Argon2 for v3, PBKDF2 for v1 and v2
325
260
  if (encryptionConfig.keyDerivation === ARGON2_ALGORITHM) {
326
- return deriveArgon2Key(params, encryptionConfig, onRawKey);
261
+ return deriveArgon2Key(params, encryptionConfig);
327
262
  } else {
328
- // PBKDF2 derives a non-extractable CryptoKey directly, so raw bytes are
329
- // unavailable; the hook simply doesn't fire (drift probe is v3-only anyway).
330
263
  return derivePBKDF2Key(params, encryptionConfig);
331
264
  }
332
265
  };
333
266
  /**
334
267
  * Encrypts data using the specified encryption version.
335
268
  * Always uses the latest encryption configuration for new encryptions by default.
336
- */ const encryptData = async ({ data, password, version = DEFAULT_ENCRYPTION_VERSION, onRawKey })=>{
269
+ */ const encryptData = async ({ data, password, version = DEFAULT_ENCRYPTION_VERSION })=>{
337
270
  const encryptionConfig = getEncryptionConfig(version);
338
271
  try {
339
272
  // Generate a random salt and IV
@@ -342,7 +275,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
342
275
  const key = await getKey({
343
276
  password,
344
277
  salt
345
- }, encryptionConfig, onRawKey);
278
+ }, encryptionConfig);
346
279
  // Convert the input string to bytes
347
280
  const dataBytes = new TextEncoder().encode(data);
348
281
  // Encrypt the data
@@ -367,7 +300,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
367
300
  * Uses the version field from the data to determine encryption parameters.
368
301
  * Falls back to legacy version for backward compatibility if no version is specified.
369
302
  * For v3 (Argon2), retries with parallelism=1 if an OperationError occurs.
370
- */ const decryptData = async ({ data, password, onRawKey })=>{
303
+ */ const decryptData = async ({ data, password })=>{
371
304
  const { salt, iv, cipher, version } = data;
372
305
  // Ensure proper base64 padding for all values
373
306
  const paddedSalt = ensureBase64Padding(salt);
@@ -382,7 +315,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
382
315
  const key = await getKey({
383
316
  password,
384
317
  salt: saltBytes
385
- }, encryptionConfig, onRawKey);
318
+ }, encryptionConfig);
386
319
  const decryptedData = await crypto.subtle.decrypt({
387
320
  name: AES_GCM_ALGORITHM,
388
321
  iv: ivBytes
@@ -401,7 +334,7 @@ const KEY_SHARE_DECRYPTION_ERROR = 'Decryption failed.';
401
334
  const key = await getKey({
402
335
  password,
403
336
  salt: saltBytes
404
- }, modifiedConfig, onRawKey);
337
+ }, modifiedConfig);
405
338
  const decryptedData = await crypto.subtle.decrypt({
406
339
  name: AES_GCM_ALGORITHM,
407
340
  iv: ivBytes
@@ -5081,165 +5014,11 @@ class DynamicWalletClient {
5081
5014
  throw error;
5082
5015
  }
5083
5016
  }
5084
- // AES-GCM authenticates the ciphertext, so a wrong key fails to decrypt
5085
- // rather than returning corrupted plaintext — "decrypt did not throw" is a
5086
- // sufficient guarantee the cipher is recoverable.
5087
- async assertEncryptionRoundTrip({ password, encrypted, encryptDerivation, walletId, accountAddress }) {
5088
- if (!encrypted) return;
5089
- this.logger.info('[keyshare-selftest] encryption round-trip self-test starting', {
5090
- walletId,
5091
- accountAddress
5092
- });
5093
- // Capture the decrypt-side derived key + its input fingerprint (envId path only) so
5094
- // a failure can be diffed against the encrypt side without any extra Argon2 derivation.
5095
- // The `??=` keeps the FIRST (p=2) derivation, so the v3 p=2->p=1 retry can't pair a
5096
- // p=2 encrypt key against a p=1 decrypt key (the input fingerprints would then differ).
5097
- let decryptKeyBytes;
5098
- let decryptInputFingerprint;
5099
- const onRawKey = password ? undefined : (k, fp)=>{
5100
- decryptKeyBytes != null ? decryptKeyBytes : decryptKeyBytes = k;
5101
- decryptInputFingerprint != null ? decryptInputFingerprint : decryptInputFingerprint = fp;
5102
- };
5103
- try {
5104
- await this.decryptKeyShare({
5105
- keyShare: encrypted,
5106
- password,
5107
- onRawKey
5108
- });
5109
- } catch (error) {
5110
- // Only a genuine ciphertext-integrity failure (AES-GCM auth failure /
5111
- // wrong key material) means the backup is unrecoverable — that's the
5112
- // terminal, non-retryable condition this self-test exists to catch.
5113
- // Anything else (most commonly a failure to fetch the Argon2id WASM,
5114
- // which surfaces as "Fetch error GET .../argon2id/simd.wasm") means the
5115
- // self-test never actually ran: the crypto engine couldn't load. That's a
5116
- // transient network error, so rethrow it as-is rather than masking it
5117
- // behind "backup aborted" — it stays visible in logs and stays retryable.
5118
- if (error instanceof InvalidPasswordError || error instanceof KeyShareDecryptionError) {
5119
- this.logSelfTestDiagnostics({
5120
- encrypted,
5121
- password,
5122
- walletId,
5123
- accountAddress,
5124
- cause: error,
5125
- encryptDerivation,
5126
- decryptKeyBytes,
5127
- decryptInputFingerprint
5128
- });
5129
- throw new EncryptionSelfTestFailedError({
5130
- walletId,
5131
- accountAddress,
5132
- cause: error
5133
- });
5134
- }
5135
- throw error;
5136
- }
5137
- this.logger.info('[keyshare-selftest] encryption round-trip self-test passed', {
5138
- walletId,
5139
- accountAddress
5140
- });
5141
- }
5142
- /**
5143
- * Diagnostics for backup self-test failures. ONLY runs on the envId-default
5144
- * path (no user password): envId is public, so the salt/iv/version emitted
5145
- * here are non-secret.
5146
- *
5147
- * Reuses the encrypt- and decrypt-side keys that the backup already derived
5148
- * (no extra Argon2 work — important, since the failing clients are the
5149
- * memory-constrained ones) and logs the byte-wise XOR of the two: equal keys
5150
- * give an all-zero diff, any non-zero byte localises the Argon2id drift that
5151
- * broke this round-trip. The XOR of two unknown keys is not usable key
5152
- * material, and the raw keys are never logged.
5153
- */ logSelfTestDiagnostics({ encrypted, password, walletId, accountAddress, cause, encryptDerivation, decryptKeyBytes, decryptInputFingerprint }) {
5154
- if (password) {
5155
- this.logger.warn('[keyshare-selftest] password provided... skipping diagnostics', {
5156
- environmentId: this.environmentId,
5157
- walletId,
5158
- accountAddress
5159
- });
5160
- return;
5161
- } else {
5162
- this.logger.info('[keyshare-selftest] password not provided (envId path), running diagnostics', {
5163
- environmentId: this.environmentId,
5164
- walletId,
5165
- accountAddress
5166
- });
5167
- }
5168
- try {
5169
- const decoded = JSON.parse(Buffer.from(encrypted, 'base64').toString());
5170
- var _decoded_version;
5171
- const version = (_decoded_version = decoded.version) != null ? _decoded_version : 'unknown';
5172
- const config = getEncryptionConfig(version);
5173
- const toHex = (a)=>Array.from(a, (b)=>b.toString(16).padStart(2, '0')).join('');
5174
- // Diff the two real derivations when both were captured (v3/Argon2 only —
5175
- // PBKDF2 keys are non-extractable so no bytes are available).
5176
- let drift;
5177
- const encryptKeyBytes = encryptDerivation == null ? void 0 : encryptDerivation.key;
5178
- if (encryptKeyBytes && decryptKeyBytes) {
5179
- const len = Math.min(encryptKeyBytes.length, decryptKeyBytes.length);
5180
- const xor = new Uint8Array(len);
5181
- const driftPositions = [];
5182
- for(let i = 0; i < len; i++){
5183
- xor[i] = encryptKeyBytes[i] ^ decryptKeyBytes[i];
5184
- if (xor[i] !== 0) driftPositions.push(i);
5185
- }
5186
- drift = {
5187
- keyLength: len,
5188
- keyDriftXor: toHex(xor),
5189
- keyDriftByteCount: driftPositions.length,
5190
- keyDriftPositions: driftPositions
5191
- };
5192
- }
5193
- // Compare the two derivations' inputs component-by-component so a mismatch is
5194
- // attributable to the salt, the password, or the config (params) — not just
5195
- // "inputs differ". All match + a non-zero key drift ⇒ proven Argon2id non-determinism.
5196
- const encInputs = encryptDerivation == null ? void 0 : encryptDerivation.inputFingerprint;
5197
- const inputComparison = encInputs && decryptInputFingerprint ? {
5198
- saltMatch: encInputs.salt === decryptInputFingerprint.salt,
5199
- passwordMatch: encInputs.password === decryptInputFingerprint.password,
5200
- paramsMatch: encInputs.params === decryptInputFingerprint.params,
5201
- inputsMatch: encInputs.salt === decryptInputFingerprint.salt && encInputs.password === decryptInputFingerprint.password && encInputs.params === decryptInputFingerprint.params
5202
- } : undefined;
5203
- // Detect if drift has happened
5204
- const detectedDrift = (drift == null ? void 0 : drift.keyDriftByteCount) && drift.keyDriftByteCount > 0;
5205
- this.logger.error('[keyshare-selftest] self-test failed', _extends({
5206
- walletId,
5207
- accountAddress,
5208
- environmentId: this.environmentId,
5209
- userId: this.userId,
5210
- version,
5211
- salt: decoded.salt,
5212
- iv: decoded.iv,
5213
- saltLength: base64ToBytes(ensureBase64Padding(decoded.salt)).length,
5214
- cipherLength: base64ToBytes(ensureBase64Padding(decoded.cipher)).length,
5215
- causeName: cause instanceof Error ? cause.name : undefined,
5216
- causeContext: cause instanceof KeyShareDecryptionError ? cause.context : undefined,
5217
- // Whether both real keys were available to diff (false ⇒ non-v3 or a key wasn't captured).
5218
- keyDriftAvailable: !!drift,
5219
- detectedDrift
5220
- }, drift, inputComparison, {
5221
- argon2: isArgon2Config(config) ? {
5222
- memorySize: config.memorySize,
5223
- iterations: config.iterations,
5224
- parallelism: config.parallelism,
5225
- hashLength: config.hashLength
5226
- } : undefined
5227
- }));
5228
- } catch (diagError) {
5229
- // Diagnostics must never mask the real failure.
5230
- this.logger.warn('[keyshare-selftest] diagnostics failed to run', {
5231
- walletId,
5232
- accountAddress,
5233
- error: diagError instanceof Error ? diagError.message : String(diagError)
5234
- });
5235
- }
5236
- }
5237
5017
  /**
5238
- * Post-backup recoverability check (feature-flagged). Where
5239
- * `assertEncryptionRoundTrip` only proves the cipher decrypts in-process,
5240
- * this fetches the just-stored share back from the keyshare service and
5241
- * confirms it decrypts to the same secret we hold in memory — exercising the
5242
- * real store → fetch → decrypt path the user will rely on to recover.
5018
+ * Post-backup recoverability check (feature-flagged). Fetches the just-stored
5019
+ * share back from the keyshare service and confirms it decrypts to the same
5020
+ * secret we hold in memory exercising the real store → fetch → decrypt path
5021
+ * the user will rely on to recover.
5243
5022
  *
5244
5023
  * The local share is never deleted: a failed/flaky fetch must not be able to
5245
5024
  * lose the only client copy. A genuine decrypt failure or a value mismatch is
@@ -5323,12 +5102,11 @@ class DynamicWalletClient {
5323
5102
  throw error;
5324
5103
  }
5325
5104
  }
5326
- async encryptKeyShare({ keyShare, password, onRawKey, version }) {
5105
+ async encryptKeyShare({ keyShare, password, version }) {
5327
5106
  const serializedKeyShare = JSON.stringify(keyShare);
5328
5107
  const encryptedKeyShare = await encryptData({
5329
5108
  data: serializedKeyShare,
5330
5109
  password: password != null ? password : this.environmentId,
5331
- onRawKey,
5332
5110
  version
5333
5111
  });
5334
5112
  this.logPasswordSharePresence(password, 'encrypt');
@@ -5697,7 +5475,7 @@ class DynamicWalletClient {
5697
5475
  hasDelegatedShare: !!distribution.delegatedShare
5698
5476
  }));
5699
5477
  try {
5700
- var _preEncryptedCloudShares_, _this_getWalletFromMap, _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
5478
+ var _this_getWalletFromMap, _backupData_locationsWithKeyShares, _backupData_locationsWithKeyShares1;
5701
5479
  // `let` so the retry path can swap in a freshly-signed session via the reverse channel on 400.
5702
5480
  let resolvedSignedSessionId = await this.signedSession.resolve(signedSessionId);
5703
5481
  if (!(walletData == null ? void 0 : walletData.walletId)) {
@@ -5714,28 +5492,13 @@ class DynamicWalletClient {
5714
5492
  }
5715
5493
  const bitcoinConfig = this.getBitcoinConfigForChain(walletData.chainName, accountAddress);
5716
5494
  const isPasswordEncrypted = shouldValidatePassword(password, this.environmentId);
5717
- // On the envId-default path, capture each share's derived encrypt key
5718
- // (keyed by its ciphertext blob) so the self-test can diff it against the
5719
- // decrypt key it derives — detecting Argon2id drift with NO extra
5720
- // derivations. Skipped entirely when a user password is set; keys are
5721
- // in-process only and cleared right after the self-test.
5722
- const encryptKeyByBlob = isPasswordEncrypted ? undefined : new Map();
5723
5495
  // Pre-encrypt all shares once, with retry to handle transient WebCrypto errors.
5724
5496
  // This avoids re-running expensive Argon2id key derivation on every retry attempt.
5725
- const encryptWithRetry = (keyShare)=>retryPromise(async ()=>{
5726
- let derived;
5727
- const blob = await this.encryptKeyShare({
5497
+ const encryptWithRetry = (keyShare)=>retryPromise(()=>this.encryptKeyShare({
5728
5498
  keyShare,
5729
5499
  password,
5730
- onRawKey: encryptKeyByBlob ? (key, inputFingerprint)=>derived = {
5731
- key,
5732
- inputFingerprint
5733
- } : undefined,
5734
5500
  version: encryptionVersion
5735
- });
5736
- if (encryptKeyByBlob && derived) encryptKeyByBlob.set(blob, derived);
5737
- return blob;
5738
- }, {
5501
+ }), {
5739
5502
  maxAttempts: 3,
5740
5503
  operationName: 'encrypt key share'
5741
5504
  });
@@ -5755,22 +5518,6 @@ class DynamicWalletClient {
5755
5518
  dynamicShareCount: preEncryptedDynamicShares.length,
5756
5519
  cloudProviderCount: preEncryptedCloudShares.length
5757
5520
  }));
5758
- var _preEncryptedDynamicShares_;
5759
- // Fail fast before any upload if the just-written cipher can't be read
5760
- // back with the same key material. Runs once per backup, not per share.
5761
- const selfTestBlob = (_preEncryptedDynamicShares_ = preEncryptedDynamicShares[0]) != null ? _preEncryptedDynamicShares_ : (_preEncryptedCloudShares_ = preEncryptedCloudShares[0]) == null ? void 0 : _preEncryptedCloudShares_.encrypted[0];
5762
- try {
5763
- await this.assertEncryptionRoundTrip({
5764
- password,
5765
- encrypted: selfTestBlob,
5766
- encryptDerivation: selfTestBlob ? encryptKeyByBlob == null ? void 0 : encryptKeyByBlob.get(selfTestBlob) : undefined,
5767
- walletId: walletData.walletId,
5768
- accountAddress
5769
- });
5770
- } finally{
5771
- // Drop captured key material promptly regardless of outcome.
5772
- encryptKeyByBlob == null ? void 0 : encryptKeyByBlob.clear();
5773
- }
5774
5521
  // Step 1: Upload shares in parallel, each with its own retry
5775
5522
  const uploadPromises = [];
5776
5523
  if (distribution.clientShares.length > 0) {
@@ -6310,7 +6057,7 @@ class DynamicWalletClient {
6310
6057
  throw error;
6311
6058
  }
6312
6059
  }
6313
- async decryptKeyShare({ keyShare, password, onRawKey }) {
6060
+ async decryptKeyShare({ keyShare, password }) {
6314
6061
  const decodedKeyShare = JSON.parse(Buffer.from(keyShare, 'base64').toString());
6315
6062
  // Track whether a user-supplied password was provided so we can emit a
6316
6063
  // distinct error class on failure. The default `environmentId` fallback is
@@ -6322,8 +6069,7 @@ class DynamicWalletClient {
6322
6069
  try {
6323
6070
  const decryptedKeyShare = await decryptData({
6324
6071
  data: decodedKeyShare,
6325
- password: effectivePassword,
6326
- onRawKey
6072
+ password: effectivePassword
6327
6073
  });
6328
6074
  this.logPasswordSharePresence(password, 'decrypt');
6329
6075
  this.logger.info('[keyshare-decryption] key share decrypted', {
@@ -7662,7 +7408,7 @@ class DynamicWalletClient {
7662
7408
  this.userId = user.id;
7663
7409
  const waasWallets = (_user_verifiedCredentials = user.verifiedCredentials) == null ? void 0 : _user_verifiedCredentials.filter((vc)=>vc.walletName === 'dynamicwaas');
7664
7410
  const wallets = waasWallets.map((vc)=>{
7665
- var _this_getWalletFromMap, _vc_walletProperties, _vc_walletProperties1, _vc_walletProperties2, _vc_walletProperties3, _vc_walletProperties4;
7411
+ var _this_getWalletFromMap, _vc_walletProperties, _vc_walletProperties1, _vc_walletProperties2, _vc_walletProperties3, _vc_walletProperties4, _vc_walletProperties5;
7666
7412
  var _this_getWalletFromMap_derivationPath;
7667
7413
  return {
7668
7414
  walletId: vc.id,
@@ -7676,7 +7422,11 @@ class DynamicWalletClient {
7676
7422
  addressType: (_vc_walletProperties1 = vc.walletProperties) == null ? void 0 : _vc_walletProperties1.addressType,
7677
7423
  shareSetId: (_vc_walletProperties2 = vc.walletProperties) == null ? void 0 : _vc_walletProperties2.shareSetId,
7678
7424
  shareSetType: (_vc_walletProperties3 = vc.walletProperties) == null ? void 0 : _vc_walletProperties3.shareSetType,
7679
- otherShareSets: (_vc_walletProperties4 = vc.walletProperties) == null ? void 0 : _vc_walletProperties4.otherShareSets
7425
+ otherShareSets: (_vc_walletProperties4 = vc.walletProperties) == null ? void 0 : _vc_walletProperties4.otherShareSets,
7426
+ // On-sign-on settings (shouldRefreshOnNextSignOn / reshareOnNextSignOn /
7427
+ // revokeOnNextSignOn). Surfaced so the SDK can self-drive the on-sign-on
7428
+ // orchestration instead of the host reading these flags.
7429
+ settings: (_vc_walletProperties5 = vc.walletProperties) == null ? void 0 : _vc_walletProperties5.settings
7680
7430
  };
7681
7431
  });
7682
7432
  const existingWalletMap = this.walletMap;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dynamic-labs-wallet/browser",
3
- "version": "1.0.37",
3
+ "version": "1.0.39",
4
4
  "license": "Licensed under the Dynamic Labs, Inc. Terms Of Service (https://www.dynamic.xyz/terms-conditions)",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@dynamic-labs-wallet/core": "1.0.37",
7
+ "@dynamic-labs-wallet/core": "1.0.39",
8
8
  "@dynamic-labs-wallet/forward-mpc-client": "0.12.0",
9
- "@dynamic-labs-wallet/primitives": "1.0.37",
9
+ "@dynamic-labs-wallet/primitives": "1.0.39",
10
10
  "@dynamic-labs/sdk-api-core": "^0.0.984",
11
11
  "argon2id": "1.0.1",
12
12
  "axios": "1.16.0",
@@ -1,24 +1,10 @@
1
1
  import type { EncryptionConfig } from './config.js';
2
- import type { DerivationInputFingerprint, KeyDerivationParams } from './types.js';
3
- /**
4
- * Derives the raw Argon2id hash bytes for the given params/config.
5
- *
6
- * Exposed separately from {@link deriveArgon2Key} for the backup self-test's
7
- * determinism probe: it lets the caller derive twice from identical inputs and
8
- * diff the results to detect Argon2id non-determinism (suspected on
9
- * memory-constrained clients). The raw bytes are AES key material and must
10
- * never be logged or persisted — keep them in-process.
11
- */
12
- export declare const deriveRawArgon2Bytes: ({ password, salt }: KeyDerivationParams, encryptionConfig: EncryptionConfig) => Promise<Uint8Array>;
2
+ import type { KeyDerivationParams } from './types.js';
13
3
  /**
14
4
  * Derives a key using Argon2id algorithm
15
5
  * @param params - Key derivation parameters
16
6
  * @param encryptionConfig - Encryption configuration
17
- * @param onRawKey - In-process hook receiving the raw derived bytes (key material —
18
- * never log) and a per-component fingerprint of the inputs that produced them. Lets
19
- * the backup self-test reuse the keys it already derives — and prove both sides used
20
- * identical inputs (and which component differs if not) — without extra derivations.
21
7
  * @returns Promise<CryptoKey>
22
8
  */
23
- export declare const deriveArgon2Key: (params: KeyDerivationParams, encryptionConfig: EncryptionConfig, onRawKey?: (rawKey: Uint8Array, inputFingerprint: DerivationInputFingerprint) => void) => Promise<CryptoKey>;
9
+ export declare const deriveArgon2Key: ({ password, salt }: KeyDerivationParams, encryptionConfig: EncryptionConfig) => Promise<CryptoKey>;
24
10
  //# sourceMappingURL=argon2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"argon2.d.ts","sourceRoot":"","sources":["../../../src/backup/encryption/argon2.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAA0B,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAgD1G;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,uBACX,mBAAmB,oBACrB,gBAAgB,KACjC,OAAO,CAAC,UAAU,CAiBpB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,WAClB,mBAAmB,oBACT,gBAAgB,aACvB,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,0BAA0B,KAAK,IAAI,KACpF,OAAO,CAAC,SAAS,CA0BnB,CAAC"}
1
+ {"version":3,"file":"argon2.d.ts","sourceRoot":"","sources":["../../../src/backup/encryption/argon2.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAA0B,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,eAAe,uBACN,mBAAmB,oBACrB,gBAAgB,KACjC,OAAO,CAAC,SAAS,CA0BnB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { EncryptionMetadata } from '@dynamic-labs-wallet/core';
2
- import type { DecryptionData, DerivationInputFingerprint, EncryptedData } from './types.js';
2
+ import type { DecryptionData, EncryptedData } from './types.js';
3
3
  export declare const INVALID_PASSWORD_ERROR = "Decryption failed: Invalid password. Please check your password and try again.";
4
4
  export declare class InvalidPasswordError extends Error {
5
5
  constructor();
@@ -32,12 +32,10 @@ export declare class KeyShareDecryptionError extends Error {
32
32
  * Encrypts data using the specified encryption version.
33
33
  * Always uses the latest encryption configuration for new encryptions by default.
34
34
  */
35
- export declare const encryptData: ({ data, password, version, onRawKey, }: {
35
+ export declare const encryptData: ({ data, password, version, }: {
36
36
  data: string;
37
37
  password: string;
38
38
  version?: string;
39
- /** In-process hook receiving the raw derived key bytes (key material, never log) + a one-way input fingerprint. */
40
- onRawKey?: (rawKey: Uint8Array, inputFingerprint: DerivationInputFingerprint) => void;
41
39
  }) => Promise<EncryptedData>;
42
40
  /**
43
41
  * Decrypts data with version-based configuration.
@@ -45,11 +43,9 @@ export declare const encryptData: ({ data, password, version, onRawKey, }: {
45
43
  * Falls back to legacy version for backward compatibility if no version is specified.
46
44
  * For v3 (Argon2), retries with parallelism=1 if an OperationError occurs.
47
45
  */
48
- export declare const decryptData: ({ data, password, onRawKey, }: {
46
+ export declare const decryptData: ({ data, password }: {
49
47
  data: DecryptionData;
50
48
  password: string;
51
- /** In-process hook receiving the raw derived key bytes (key material, never log) + a one-way input fingerprint. */
52
- onRawKey?: (rawKey: Uint8Array, inputFingerprint: DerivationInputFingerprint) => void;
53
49
  }) => Promise<string>;
54
50
  /**
55
51
  * Gets encryption metadata for a specific version.
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/backup/encryption/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAMpE,OAAO,KAAK,EAAE,cAAc,EAAE,0BAA0B,EAAE,aAAa,EAAuB,MAAM,YAAY,CAAC;AAGjH,eAAO,MAAM,sBAAsB,mFAAmF,CAAC;AAEvH,qBAAa,oBAAqB,SAAQ,KAAK;;CAK9C;AAED,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,OAAO,CAAC,EAAE,yBAAyB,CAAC;gBAExC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,yBAAyB,CAAA;KAAE;CAU/E;AA0BD;;;GAGG;AACH,eAAO,MAAM,WAAW,2CAKrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mHAAmH;IACnH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,0BAA0B,KAAK,IAAI,CAAC;CACvF,KAAG,OAAO,CAAC,aAAa,CA2BxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,kCAIrB;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,mHAAmH;IACnH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,0BAA0B,KAAK,IAAI,CAAC;CACvF,KAAG,OAAO,CAAC,MAAM,CAyDjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,YAAa,MAAM,KAAG,kBAmBjE,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/backup/encryption/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAMpE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAuB,MAAM,YAAY,CAAC;AAGrF,eAAO,MAAM,sBAAsB,mFAAmF,CAAC;AAEvH,qBAAa,oBAAqB,SAAQ,KAAK;;CAK9C;AAED,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,OAAO,CAAC,EAAE,yBAAyB,CAAC;gBAExC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,yBAAyB,CAAA;KAAE;CAU/E;AAoBD;;;GAGG;AACH,eAAO,MAAM,WAAW,iCAIrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,aAAa,CA2BxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,uBAA8B;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAG,OAAO,CAAC,MAAM,CAyDhH,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,YAAa,MAAM,KAAG,kBAmBjE,CAAC"}
@@ -43,19 +43,4 @@ export interface KeyDerivationParams {
43
43
  password: string;
44
44
  salt: Uint8Array;
45
45
  }
46
- /**
47
- * Per-component, one-way fingerprints of the exact inputs a single Argon2id
48
- * derivation consumed. Split by component so that when two derivations disagree,
49
- * the self-test can pinpoint whether the salt, the password, or the config
50
- * (Argon2 params) was the difference — rather than just "inputs differ".
51
- * Each value is a truncated SHA-256; none is reversible.
52
- */
53
- export interface DerivationInputFingerprint {
54
- /** H(salt) */
55
- salt: string;
56
- /** H(password bytes) */
57
- password: string;
58
- /** H(parallelism, passes, memorySize, tagLength) */
59
- params: string;
60
- }
61
46
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/backup/encryption/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,cAAc;IACd,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/backup/encryption/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB"}
package/src/client.d.ts CHANGED
@@ -2,7 +2,6 @@ import { EcdsaSignature, MessageHash, type EcdsaPublicKey } from '#internal/web'
2
2
  import { AuthMode, BackupLocation, DynamicApiClient, BusinessAccountClient, type TargetSignerIdentity, type BusinessAccountSignerType, ThresholdSignatureScheme, WalletOperation, type Argon2idRebackupTarget, type BackupLocationWithExternalKeyShareId, type BitcoinConfig, type DynamicWalletClientProps, type FeatureFlags, type GetWalletResponse, type ILogger, type InitializeResult, type KeyShareBackupInfo, type SecureStorageAdapter, type ShareSet, type ShareSetType, type TraceContext, type WalletRecoveryState, type CreateWaasSDKContainer } from '@dynamic-labs-wallet/core';
3
3
  import { RoomTypeEnum, type SignMessageContext } from '@dynamic-labs/sdk-api-core';
4
4
  import { EncryptionVersion } from './backup/encryption/constants.js';
5
- import type { DerivationInputFingerprint } from './backup/encryption/types.js';
6
5
  import type { ClientInitKeygenResult, ClientKeyShare, MPCSigner } from './mpc/types.js';
7
6
  import { type SupportedStorage } from './services/localStorage.js';
8
7
  import { OperationSource, type Room, type ShareDistribution, type WalletProperties } from './types.js';
@@ -450,26 +449,11 @@ export declare class DynamicWalletClient {
450
449
  derivedPrivateKey: string | undefined;
451
450
  rawPublicKey: EcdsaPublicKey | Uint8Array | string | undefined;
452
451
  }>;
453
- private assertEncryptionRoundTrip;
454
452
  /**
455
- * Diagnostics for backup self-test failures. ONLY runs on the envId-default
456
- * path (no user password): envId is public, so the salt/iv/version emitted
457
- * here are non-secret.
458
- *
459
- * Reuses the encrypt- and decrypt-side keys that the backup already derived
460
- * (no extra Argon2 work — important, since the failing clients are the
461
- * memory-constrained ones) and logs the byte-wise XOR of the two: equal keys
462
- * give an all-zero diff, any non-zero byte localises the Argon2id drift that
463
- * broke this round-trip. The XOR of two unknown keys is not usable key
464
- * material, and the raw keys are never logged.
465
- */
466
- private logSelfTestDiagnostics;
467
- /**
468
- * Post-backup recoverability check (feature-flagged). Where
469
- * `assertEncryptionRoundTrip` only proves the cipher decrypts in-process,
470
- * this fetches the just-stored share back from the keyshare service and
471
- * confirms it decrypts to the same secret we hold in memory — exercising the
472
- * real store → fetch → decrypt path the user will rely on to recover.
453
+ * Post-backup recoverability check (feature-flagged). Fetches the just-stored
454
+ * share back from the keyshare service and confirms it decrypts to the same
455
+ * secret we hold in memory — exercising the real store → fetch → decrypt path
456
+ * the user will rely on to recover.
473
457
  *
474
458
  * The local share is never deleted: a failed/flaky fetch must not be able to
475
459
  * lose the only client copy. A genuine decrypt failure or a value mismatch is
@@ -478,11 +462,9 @@ export declare class DynamicWalletClient {
478
462
  * stays visible and retryable rather than masquerading as "unrecoverable".
479
463
  */
480
464
  private assertServerCopyRecoverable;
481
- encryptKeyShare({ keyShare, password, onRawKey, version, }: {
465
+ encryptKeyShare({ keyShare, password, version, }: {
482
466
  keyShare: ClientKeyShare;
483
467
  password?: string;
484
- /** In-process hook receiving the raw derived key bytes (key material, never log) + input fingerprint. */
485
- onRawKey?: (rawKey: Uint8Array, inputFingerprint: DerivationInputFingerprint) => void;
486
468
  /** Encryption version to use. Defaults to the current default (v3) when omitted. */
487
469
  version?: EncryptionVersion;
488
470
  }): Promise<string>;
@@ -662,11 +644,9 @@ export declare class DynamicWalletClient {
662
644
  signedSessionId: string;
663
645
  passwordUpdateBatchId?: string;
664
646
  }): Promise<void>;
665
- decryptKeyShare({ keyShare, password, onRawKey, }: {
647
+ decryptKeyShare({ keyShare, password }: {
666
648
  keyShare: string;
667
649
  password?: string;
668
- /** In-process hook receiving the raw derived key bytes (key material, never log) + input fingerprint. */
669
- onRawKey?: (rawKey: Uint8Array, inputFingerprint: DerivationInputFingerprint) => void;
670
650
  }): Promise<ClientKeyShare>;
671
651
  /**
672
652
  * Validates that the provided password is consistent with existing encrypted wallets.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../packages/src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EAGd,WAAW,EACX,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAO9B,wBAAwB,EACxB,eAAe,EASf,KAAK,sBAAsB,EAE3B,KAAK,oCAAoC,EAEzC,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAExB,KAAK,sBAAsB,EAE5B,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAA2B,MAAM,4BAA4B,CAAC;AAC5G,OAAO,EAA8B,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAiCjG,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAiBxF,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EASL,eAAe,EACf,KAAK,IAAI,EACT,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAgCpB,KAAK,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IACjD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,qBAAa,mBAAmB;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IAEtB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IACjD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAa;IAEpD,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAQ;IACrE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACtC,4EAA4E;IAC5E,SAAgB,gBAAgB,EAAE,qBAAqB,CAAC;IACxD,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAM;IAC3D,SAAS,CAAC,OAAO,EAAG,gBAAgB,CAAC;IACrC,SAAS,CAAC,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IACjE,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAClD,SAAS,CAAC,iBAAiB,UAAS;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAM;IACzC,6FAA6F;IAC7F,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,CAAM;IAC1E,yFAAyF;IACzF,OAAO,CAAC,yBAAyB,CAAS;IAC1C,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAClD,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAM;IACpD,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACjE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IAIpE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAK;IAEnC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAuB;IAEtD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAwB;IAEpE,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAGnD,EACE,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,uBAAuB,EACvB,QAA0B,EAC1B,SAAqB,EACrB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,EACZ,MAAM,GACP,EAAE,wBAAwB,EAC3B,eAAe,CAAC,EAAE,kCAAkC;IA0GtD;;OAEG;WACW,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIlE;;OAEG;WACW,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI3D;;OAEG;WACW,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAInE;;;;;;;;OAQG;WACW,aAAa,IAAI,IAAI;IAMnC;;;;OAIG;WACW,gBAAgB,IAAI,IAAI;IAKtC;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIhF;;;;OAIG;cACa,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBjH;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQpF,WAAW,IAAI,QAAQ;IAI9B;;;OAGG;IACU,sBAAsB;IAInC;;;;OAIG;IACH,2CAA2C;IAC3C,OAAO,CAAC,uBAAuB;IAIzB,iBAAiB,CAAC,SAAS,EAAE,MAAM;IA8CnC,UAAU,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYxE;;OAEG;cACa,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyB7E,sBAAsB,CAAC,EAC3B,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,kBAAkB,GACnB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;KAC9F;IAkCK,sBAAsB,CAAC,EAC3B,SAAS,EACT,wBAAwB,EACxB,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAmB/B,eAAe,CAAC,EACpB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IAiB7D;;;;;;;;;;;;;;OAcG;IACG,sBAAsB,CAAC,EAC3B,SAAS,EACT,MAAM,EACN,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,mBAAmB,EAAE,cAAc,EAAE,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;KAClC,CAAC;IAwEF,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB;IAItB,YAAY,CAAC,EACjB,SAAS,EACT,MAAM,EAAE,aAAa,EACrB,eAAe,EAAE,sBAAsB,EACvC,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;QAClD,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B;;;;WAIG;QACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KAC5E,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,mBAAmB,EAAE,cAAc,EAAE,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;KAClC,CAAC;IA0HI,MAAM,CAAC,IAAI,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxE,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAkBY,gBAAgB;IA8IxB,mBAAmB,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QACxE,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,4DAA4D;QAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;QAC/D,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,CAAC;YAeY,6BAA6B;IAqJrC,UAAU,CAAC,EACf,QAAQ,EACR,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,0BAA0B;IAO5B,oBAAoB,CAAC,EACzB,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,gBAAgB,EAAE,aAAa,CAAC;QAChC,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IAiDlC,UAAU,CAAC,EACf,SAAS,EACT,OAAO,EACP,MAAM,EAAE,aAAa,EACrB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;QACxC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B;;;;;WAKG;QACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;KACrC,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;IAgHxC;;;;;;OAMG;YACW,0BAA0B;IAoDlC,IAAI,CAAC,EACT,cAAc,EACd,OAAO,EACP,SAAS,EACT,QAAoB,EACpB,WAAmB,EACnB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,OAAO,EACP,YAAY,EACZ,aAAa,GACd,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;QACjC,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC;YAmB1B,YAAY;IAuMpB,0BAA0B,CAAC,EAC/B,cAAc,EACd,SAAS,EACT,QAAoB,EACpB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;IAcD;;;;;;;;;OASG;IACH,OAAO,CAAC,gCAAgC;IAsDxC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;YAclB,kCAAkC;YAwLlC,mBAAmB;IAQ3B,WAAW,CAAC,EAChB,SAAS,EACT,cAAc,EACd,aAAa,GACd,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,cAAc,CAAC;QAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IA2BD;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,EACpB,SAAS,EACT,MAAM,EACN,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,gBAAgB,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,4BAA4B,CAAC,EAAE,OAAO,CAAC;KACxC,GAAG,OAAO,CAAC;QACV,0BAA0B,EAAE,sBAAsB,EAAE,CAAC;QACrD,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,cAAc,EAAE,CAAC;KAC3C,CAAC;IAgDI,OAAO,CAAC,EACZ,SAAS,EACT,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,cAAmB,EACnB,4BAAoC,EACpC,QAAQ,EACR,mBAAmB,EACnB,gBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,GACvB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,2BAA2B,EAAE,wBAAwB,CAAC;QACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,4BAA4B,CAAC,EAAE,OAAO,CAAC;QACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;KACtD;IAoBD;mFAC+E;IACzE,0BAA0B,CAAC,EAC/B,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,UAAmD,EACnD,oBAAoB,EACpB,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,yBAAyB,CAAC;QACvC,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA+NnC,OAAO,CAAC,6BAA6B;IA8CrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;YAiFpB,6BAA6B;IA4C3C,OAAO,CAAC,iCAAiC;IAyEzC,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,oCAAoC;YAkC9B,eAAe;YA2Xf,0BAA0B;IAwElC,iBAAiB,CAAC,EACtB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAyCK,gBAAgB,CAAC,EACrB,cAAc,EACd,QAAoB,EACpB,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAyDD,OAAO,CAAC,kBAAkB;IAgBpB,SAAS,CAAC,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAoB,EACpB,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B;;;cA8Ee,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;cAsBrE,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,cAAc,EACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM;cA0BH,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAgBzG,gBAAgB,CAAC,EACrB,SAAS,EACT,SAAS,EACT,cAAc,GACf,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,cAAc,EAAE,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,YAAY,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;KAChE,CAAC;IAuDF;;;;;;;;;;;OAWG;YACW,2BAA2B;IA4FnC,eAAe,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,EAAE;QACD,QAAQ,EAAE,cAAc,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,oFAAoF;QACpF,OAAO,CAAC,EAAE,iBAAiB,CAAC;KAC7B;IAaD;;OAEG;YACW,kCAAkC;IAsChD;;;OAGG;IACG,6BAA6B,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiC9G;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,wBAAwB,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,SAAS,EACT,wBAAwB,EACxB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,eAAoB,GACrB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3C,GAAG,IAAI;IAwBR;;;OAGG;IACH;;OAEG;IACH,OAAO,CAAC,mBAAmB;YAgBb,gCAAgC;IAe9C;;;;;;;OAOG;IACG,2BAA2B,CAAC,EAChC,cAAc,EACd,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,cAAc,EAAE,CAAC;KACnC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjB;;;;;;;OAOG;YACW,iBAAiB;YAYjB,sBAAsB;YA4EtB,0BAA0B;IAqCxC;;;;;;;OAOG;YACW,4BAA4B;YAY5B,qBAAqB;YA0DrB,qBAAqB;IA4DnC,OAAO,CAAC,gCAAgC;IAsBlC,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,yBAAiC,EACjC,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,iBAAiB,CAAC;QAChC,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gGAAgG;QAChG,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC;;;;;;;;8BA/8HA,CAAC;;;YAoyIY,yBAAyB;IAiGvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAA2B,EAC3B,QAAoB,EACpB,eAAe,EACf,cAAmB,EACnB,iBAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;QAClC,iBAAiB,CAAC,EAAE,cAAc,CAAC;QACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,sBAAsB,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;QACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gGAAgG;QAChG,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC;;;;;;;;;;8BA77IA,CAAC;;;YA8hJY,mBAAmB;IAcjC,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,2BAA2B;IAqB7B,cAAc,CAAC,EACnB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAkDK,WAAW,CAAC,EAChB,cAAc,EACd,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;IAyCK,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAuC/G;;;;;;;OAOG;IACH;;;;OAIG;YACW,sCAAsC;IAgEpD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,sBAAsB;cAMd,uCAAuC,CAAC,EACtD,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjB;;;;OAIG;cACa,iCAAiC,CAAC,EAChD,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BjB;;;;;OAKG;YACW,8BAA8B;YAmC9B,2BAA2B;IAKzC;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EACd,wBAAwB,EACxB,wBAAwB,EACxB,eAAe,EACf,UAAsB,GACvB,EAAE;QACD,wBAAwB,EAAE,kBAAkB,CAAC;QAC7C,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,eAAe,EAAE,eAAe,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG;QACF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAClD,kBAAkB,EAAE,MAAM,CAAC;KAC5B;IA2CK,8BAA8B,CAAC,EACnC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,eAAe,EACf,UAAsB,EACtB,oBAA2B,EAC3B,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,eAAe,CAAC;QACjC,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAc7B;;;;;OAKG;YACW,oCAAoC;YAoCpC,sCAAsC;IA6F9C,cAAc;IAmCpB;;;;OAIG;YACW,8BAA8B;IA8D5C;;;;;;;;;;;OAWG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CjB;;;;;;;;OAQG;YACW,0BAA0B;IAyCxC;;;;;;;;;OASG;IACG,uBAAuB,CAAC,EAC5B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IASjB;;;;;;;OAOG;YACW,qBAAqB;IA8BnC;;;;;;;;;;;;OAYG;YACW,4BAA4B;IAsD1C;;;;;;OAMG;YACW,uBAAuB;IAkC/B,oCAAoC,CAAC,EACzC,cAAc,EACd,QAAQ,EACR,eAAe,EACf,sBAAsB,GACvB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyGX,qBAAqB,CAAC,EAC1B,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAmCK,kBAAkB,CAAC,EACvB,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAYD;;;;;OAKG;YACW,iBAAiB;IAsD/B;;;;OAIG;IACG,cAAc,CAAC,EACnB,cAAc,EACd,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB;IAwBK,mBAAmB,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3F;;OAEG;IACG,4BAA4B,CAAC,EACjC,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpB;;OAEG;IACG,uCAAuC,CAAC,EAC5C,cAAc,EACd,eAAiD,GAClD,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;YAsBN,+BAA+B;IASvC,iCAAiC,CAAC,EAAE,cAAc,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAwBtG,0BAA0B;IAYlC,SAAS,CAAC,EACd,cAAc,EACd,eAA8C,EAC9C,UAAsB,EACtB,QAAoB,EACpB,eAAe,GAChB,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2L7B;;;;;;;;;;;;;;;OAeG;IACG,sBAAsB,CAAC,EAC3B,cAAc,EACd,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4ChC;;;;;OAKG;YACW,4BAA4B;IAiD1C;;;;;;;;OAQG;IACG,YAAY,CAAC,EACjB,cAAc,EACd,QAAQ,EACR,eAAe,EACf,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmI7B;;OAEG;YACW,2BAA2B;IA8BnC,aAAa,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI7C,UAAU;IA8FhB;;;;;;;;;;;;;;;OAeG;YACW,wBAAwB;IAkEtC;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM;IAQzB,WAAW,CAAC,EAChB,QAAQ,EACR,wBAAwB,EACxB,SAAa,GACd,EAAE;QACD,QAAQ,EAAE,YAAY,CAAC;QACvB,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAsEK,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAiC/C,QAAQ,CACZ,QAAQ,CAAC,EAAE,YAAY,EACvB,wBAAwB,CAAC,EAAE,wBAAwB,GAClD,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAQrC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;IAKrD;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,MAAM;IAKhG,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IA0DpH,eAAe,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQ3F"}