@seams/wallet 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/esm/sdk/export-private-key-viewer.js +55 -8809
  2. package/dist/esm/sdk/halo-border.js +8 -8892
  3. package/dist/esm/sdk/passkey-halo-loading.js +27 -8855
  4. package/dist/esm/sdk/tx-confirm-ui.js +206 -9575
  5. package/dist/esm/sdk/w3a-tx-confirmer.js +206 -8340
  6. package/dist/public/headers.manifest.json +1 -1
  7. package/dist/public/sdk/export-private-key-viewer.js +55 -8809
  8. package/dist/public/sdk/halo-border.js +8 -8892
  9. package/dist/public/sdk/passkey-halo-loading.js +27 -8855
  10. package/dist/public/sdk/tx-confirm-ui.js +206 -9575
  11. package/dist/public/sdk/w3a-tx-confirmer.js +206 -8340
  12. package/dist/public/sdk/workers/device-linking-key.worker.js +3 -8610
  13. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +1 -12414
  14. package/dist/public/sdk/workers/ecdsa-online-client.worker.js +1 -624
  15. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +1 -1277
  16. package/dist/public/sdk/workers/email-otp.worker.js +7 -15666
  17. package/dist/public/sdk/workers/email_otp_runtime.js +3 -39
  18. package/dist/public/sdk/workers/email_otp_runtime_bg.wasm +0 -0
  19. package/dist/public/sdk/workers/evm-crypto.worker.js +5 -1157
  20. package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
  21. package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
  22. package/dist/public/sdk/workers/near-signer.worker.js +2 -1631
  23. package/dist/public/sdk/workers/passkey-confirm.worker.js +1 -606
  24. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +2 -5416
  25. package/dist/public/sdk/workers/passkey-mpc-session.worker.js +1 -1717
  26. package/dist/public/sdk/workers/shamir3pass.worker.js +4 -874
  27. package/dist/public/sdk/workers/shamir3pass_runtime.js +31 -84
  28. package/dist/public/sdk/workers/shamir3pass_runtime_bg.wasm +0 -0
  29. package/dist/public/sdk/workers/tempo-signer.worker.js +5 -987
  30. package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
  31. package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
  32. package/dist/public/wallet-assets.manifest.json +2 -2
  33. package/dist/workers/device-linking-key.worker.js +3 -8610
  34. package/dist/workers/ecdsa-derivation-client.worker.js +1 -12414
  35. package/dist/workers/ecdsa-online-client.worker.js +1 -624
  36. package/dist/workers/ecdsa-presign-client.worker.js +1 -1277
  37. package/dist/workers/email-otp.worker.js +7 -15666
  38. package/dist/workers/email_otp_runtime.js +3 -39
  39. package/dist/workers/email_otp_runtime_bg.wasm +0 -0
  40. package/dist/workers/evm-crypto.worker.js +5 -1157
  41. package/dist/workers/evm_crypto.wasm +0 -0
  42. package/dist/workers/evm_crypto_bg.wasm +0 -0
  43. package/dist/workers/near-signer.worker.js +2 -1631
  44. package/dist/workers/passkey-confirm.worker.js +1 -606
  45. package/dist/workers/passkey-mpc-export.worker.js +2 -5416
  46. package/dist/workers/passkey-mpc-session.worker.js +1 -1717
  47. package/dist/workers/shamir3pass.worker.js +4 -874
  48. package/dist/workers/shamir3pass_runtime.js +31 -84
  49. package/dist/workers/shamir3pass_runtime_bg.wasm +0 -0
  50. package/dist/workers/tempo-signer.worker.js +5 -987
  51. package/dist/workers/tempo_signer.wasm +0 -0
  52. package/dist/workers/tempo_signer_bg.wasm +0 -0
  53. package/package.json +2 -2
@@ -1,624 +1 @@
1
- // ../../node_modules/base-x/src/esm/index.js
2
- function base(ALPHABET) {
3
- if (ALPHABET.length >= 255) {
4
- throw new TypeError("Alphabet too long");
5
- }
6
- const BASE_MAP = new Uint8Array(256);
7
- for (let j = 0;j < BASE_MAP.length; j++) {
8
- BASE_MAP[j] = 255;
9
- }
10
- for (let i = 0;i < ALPHABET.length; i++) {
11
- const x = ALPHABET.charAt(i);
12
- const xc = x.charCodeAt(0);
13
- if (BASE_MAP[xc] !== 255) {
14
- throw new TypeError(x + " is ambiguous");
15
- }
16
- BASE_MAP[xc] = i;
17
- }
18
- const BASE = ALPHABET.length;
19
- const LEADER = ALPHABET.charAt(0);
20
- const FACTOR = Math.log(BASE) / Math.log(256);
21
- const iFACTOR = Math.log(256) / Math.log(BASE);
22
- function encode(source) {
23
- if (source instanceof Uint8Array) {} else if (ArrayBuffer.isView(source)) {
24
- source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
25
- } else if (Array.isArray(source)) {
26
- source = Uint8Array.from(source);
27
- }
28
- if (!(source instanceof Uint8Array)) {
29
- throw new TypeError("Expected Uint8Array");
30
- }
31
- if (source.length === 0) {
32
- return "";
33
- }
34
- let zeroes = 0;
35
- let length = 0;
36
- let pbegin = 0;
37
- const pend = source.length;
38
- while (pbegin !== pend && source[pbegin] === 0) {
39
- pbegin++;
40
- zeroes++;
41
- }
42
- const size = (pend - pbegin) * iFACTOR + 1 >>> 0;
43
- const b58 = new Uint8Array(size);
44
- while (pbegin !== pend) {
45
- let carry = source[pbegin];
46
- let i = 0;
47
- for (let it1 = size - 1;(carry !== 0 || i < length) && it1 !== -1; it1--, i++) {
48
- carry += 256 * b58[it1] >>> 0;
49
- b58[it1] = carry % BASE >>> 0;
50
- carry = carry / BASE >>> 0;
51
- }
52
- if (carry !== 0) {
53
- throw new Error("Non-zero carry");
54
- }
55
- length = i;
56
- pbegin++;
57
- }
58
- let it2 = size - length;
59
- while (it2 !== size && b58[it2] === 0) {
60
- it2++;
61
- }
62
- let str = LEADER.repeat(zeroes);
63
- for (;it2 < size; ++it2) {
64
- str += ALPHABET.charAt(b58[it2]);
65
- }
66
- return str;
67
- }
68
- function decodeUnsafe(source) {
69
- if (typeof source !== "string") {
70
- throw new TypeError("Expected String");
71
- }
72
- if (source.length === 0) {
73
- return new Uint8Array;
74
- }
75
- let psz = 0;
76
- let zeroes = 0;
77
- let length = 0;
78
- while (source[psz] === LEADER) {
79
- zeroes++;
80
- psz++;
81
- }
82
- const size = (source.length - psz) * FACTOR + 1 >>> 0;
83
- const b256 = new Uint8Array(size);
84
- while (psz < source.length) {
85
- const charCode = source.charCodeAt(psz);
86
- if (charCode > 255) {
87
- return;
88
- }
89
- let carry = BASE_MAP[charCode];
90
- if (carry === 255) {
91
- return;
92
- }
93
- let i = 0;
94
- for (let it3 = size - 1;(carry !== 0 || i < length) && it3 !== -1; it3--, i++) {
95
- carry += BASE * b256[it3] >>> 0;
96
- b256[it3] = carry % 256 >>> 0;
97
- carry = carry / 256 >>> 0;
98
- }
99
- if (carry !== 0) {
100
- throw new Error("Non-zero carry");
101
- }
102
- length = i;
103
- psz++;
104
- }
105
- let it4 = size - length;
106
- while (it4 !== size && b256[it4] === 0) {
107
- it4++;
108
- }
109
- const vch = new Uint8Array(zeroes + (size - it4));
110
- let j = zeroes;
111
- while (it4 !== size) {
112
- vch[j++] = b256[it4++];
113
- }
114
- return vch;
115
- }
116
- function decode(string) {
117
- const buffer = decodeUnsafe(string);
118
- if (buffer) {
119
- return buffer;
120
- }
121
- throw new Error("Non-base" + BASE + " character");
122
- }
123
- return {
124
- encode,
125
- decodeUnsafe,
126
- decode
127
- };
128
- }
129
- var esm_default = base;
130
-
131
- // ../../node_modules/bs58/src/esm/index.js
132
- var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
133
- var esm_default2 = esm_default(ALPHABET);
134
-
135
- // ../shared-ts/src/utils/errors.ts
136
- function errorMessage(err) {
137
- try {
138
- if (typeof err === "string")
139
- return err;
140
- if (err && typeof err.message === "string") {
141
- return err.message;
142
- }
143
- return String(err ?? "");
144
- } catch {
145
- return "";
146
- }
147
- }
148
- function b64uField(prefix) {
149
- return `${prefix}B64u`;
150
- }
151
- var SENSITIVE_ERROR_FIELD_NAMES = [
152
- "nearPrivateKey",
153
- "near_private_key",
154
- "privateKey",
155
- "private_key",
156
- b64uField("seed"),
157
- "seed_b64u",
158
- b64uField("canonicalSeed"),
159
- "canonical_seed_b64u",
160
- b64uField("xClientBase"),
161
- "x_client_base_b64u",
162
- b64uField("clientOutputMask"),
163
- "client_output_mask_b64u",
164
- b64uField("clientRecoverableSecret"),
165
- "client_recoverable_secret_b64u",
166
- "prfOutput",
167
- "prf_output",
168
- "prfFirst",
169
- "prf_first",
170
- b64uField("prfFirst"),
171
- "prf_first_b64u",
172
- "prfSecond",
173
- "prf_second",
174
- b64uField("prfSecond"),
175
- "prf_second_b64u",
176
- b64uField("signingShare32"),
177
- "signing_share32_b64u",
178
- b64uField("clientNonceHandle"),
179
- "client_nonce_handle_b64u"
180
- ];
181
- function redactJsonStringField(input, fieldName) {
182
- const escapedFieldName = fieldName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
183
- return input.replace(new RegExp(`("${escapedFieldName}"\\s*:\\s*")([^"]*)(")`, "g"), `$1[REDACTED]$3`);
184
- }
185
- function redactAssignmentField(input, fieldName) {
186
- const escapedFieldName = fieldName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
187
- return input.replace(new RegExp(`\\b(${escapedFieldName}\\s*[=:]\\s*)([^\\s,}\\]]+)`, "g"), "$1[REDACTED]");
188
- }
189
- function redactSensitiveErrorText(input) {
190
- let redacted = String(input || "");
191
- for (const fieldName of SENSITIVE_ERROR_FIELD_NAMES) {
192
- redacted = redactJsonStringField(redacted, fieldName);
193
- redacted = redactAssignmentField(redacted, fieldName);
194
- }
195
- return redacted;
196
- }
197
- function safeErrorMessage(err) {
198
- return redactSensitiveErrorText(errorMessage(err));
199
- }
200
-
201
- // src/core/signingEngine/workerManager/workerTypes.ts
202
- var WorkerControlMessage = {
203
- WORKER_READY: "WORKER_READY"
204
- };
205
- var EcdsaOnlineClientRequestType = {
206
- ComputeSignatureShare: 72000,
207
- RetirePool: 72001
208
- };
209
- // ../shared-ts/src/utils/validation.ts
210
- function isObject(x) {
211
- return x !== null && typeof x === "object";
212
- }
213
- // ../shared-ts/src/authorization/capabilityKinds.ts
214
- var CAPABILITY_KINDS = {
215
- vaultAccess: "vault_access",
216
- nearEd25519MpcSigning: "near_ed25519_mpc_signing",
217
- evmEcdsaMpcSigning: "evm_ecdsa_mpc_signing"
218
- };
219
- var VAULT_OPERATION_KINDS = {
220
- proxyUse: "vault.proxy_use",
221
- reveal: "vault.reveal"
222
- };
223
- var NEAR_ED25519_MPC_OPERATION_KINDS = {
224
- signTransaction: "near.sign_transaction",
225
- signDelegateAction: "near.sign_delegate_action",
226
- signNep413Message: "near.sign_nep413_message",
227
- exportKey: "near.export_key"
228
- };
229
- var EVM_ECDSA_MPC_OPERATION_KINDS = {
230
- signTransaction: "evm.sign_transaction",
231
- exportKey: "evm.export_key"
232
- };
233
- var AUTHORIZATION_EVIDENCE_KINDS = {
234
- seamsSession: "seams_session",
235
- passkeyAssertion: "passkey_assertion",
236
- emailOtp: "email_otp"
237
- };
238
- var CAPABILITY_KIND_VALUES = Object.values(CAPABILITY_KINDS);
239
- var VAULT_OPERATION_KIND_VALUES = Object.values(VAULT_OPERATION_KINDS);
240
- var NEAR_ED25519_MPC_OPERATION_KIND_VALUES = Object.values(NEAR_ED25519_MPC_OPERATION_KINDS);
241
- var EVM_ECDSA_MPC_OPERATION_KIND_VALUES = Object.values(EVM_ECDSA_MPC_OPERATION_KINDS);
242
- var AUTHORIZATION_EVIDENCE_KIND_VALUES = Object.values(AUTHORIZATION_EVIDENCE_KINDS);
243
-
244
- // ../shared-ts/src/authorization/delegatedAuthority.ts
245
- var FULL_OWNER_PERMISSIONS = Object.freeze([
246
- "export_keys",
247
- "link_devices",
248
- "revoke_devices",
249
- "sign"
250
- ]);
251
- var SIGNING_ONLY_PERMISSIONS = Object.freeze([
252
- "sign"
253
- ]);
254
- var DELEGATED_WALLET_PERMISSION_VALUES = [
255
- "export_keys",
256
- "link_devices",
257
- "revoke_devices",
258
- "sign"
259
- ];
260
- var DELEGATED_WALLET_PERMISSION_VALUE_SET = new Set(DELEGATED_WALLET_PERMISSION_VALUES);
261
- var canonicalPermissionSetBrand = Symbol("canonicalPermissionSetBrand");
262
-
263
- // ../shared-ts/src/authorization/walletAuthority.ts
264
- var TEXT_ENCODER = new TextEncoder;
265
-
266
- // ../shared-ts/src/utils/registrationIntent.ts
267
- var SERVER_ALLOCATED_WALLET_ADJECTIVES = [
268
- "alpine",
269
- "amber",
270
- "azure",
271
- "brisk",
272
- "bright",
273
- "calm",
274
- "cedar",
275
- "cobalt",
276
- "copper",
277
- "coral",
278
- "crimson",
279
- "crystal",
280
- "dawn",
281
- "deep",
282
- "dusky",
283
- "evergreen",
284
- "fair",
285
- "fern",
286
- "frost",
287
- "gentle",
288
- "glacier",
289
- "glowing",
290
- "golden",
291
- "harbor",
292
- "humble",
293
- "indigo",
294
- "ivory",
295
- "jade",
296
- "keen",
297
- "lunar",
298
- "maple",
299
- "misty",
300
- "mossy",
301
- "noble",
302
- "ocean",
303
- "opal",
304
- "polar",
305
- "quiet",
306
- "rapid",
307
- "redwood",
308
- "river",
309
- "royal",
310
- "sage",
311
- "scarlet",
312
- "serene",
313
- "silver",
314
- "solar",
315
- "steady",
316
- "stone",
317
- "swift",
318
- "tranquil",
319
- "twilight",
320
- "umber",
321
- "verdant",
322
- "vibrant",
323
- "violet",
324
- "vivid",
325
- "warm",
326
- "wild",
327
- "willow",
328
- "winter",
329
- "woodland",
330
- "young",
331
- "zephyr"
332
- ];
333
- var SERVER_ALLOCATED_WALLET_NOUNS = [
334
- "anchor",
335
- "arbor",
336
- "atlas",
337
- "aurora",
338
- "badger",
339
- "beacon",
340
- "bloom",
341
- "brook",
342
- "canyon",
343
- "cascade",
344
- "comet",
345
- "cove",
346
- "crane",
347
- "delta",
348
- "dune",
349
- "eagle",
350
- "ember",
351
- "falcon",
352
- "feather",
353
- "fjord",
354
- "forest",
355
- "galaxy",
356
- "garden",
357
- "giant",
358
- "grove",
359
- "harvest",
360
- "heron",
361
- "horizon",
362
- "island",
363
- "lagoon",
364
- "lantern",
365
- "lark",
366
- "meadow",
367
- "meteor",
368
- "monolith",
369
- "nebula",
370
- "oasis",
371
- "orchid",
372
- "otter",
373
- "peak",
374
- "pebble",
375
- "phoenix",
376
- "pine",
377
- "prism",
378
- "quartz",
379
- "raven",
380
- "reef",
381
- "ridge",
382
- "sable",
383
- "sequoia",
384
- "shore",
385
- "solstice",
386
- "sparrow",
387
- "star",
388
- "summit",
389
- "tempo",
390
- "thunder",
391
- "tundra",
392
- "valley",
393
- "vermillion",
394
- "voyage",
395
- "wave",
396
- "wren",
397
- "zenith"
398
- ];
399
- var SERVER_ALLOCATED_WALLET_ADJECTIVE_SET = new Set(SERVER_ALLOCATED_WALLET_ADJECTIVES);
400
- var SERVER_ALLOCATED_WALLET_NOUN_SET = new Set(SERVER_ALLOCATED_WALLET_NOUNS);
401
-
402
- // ../shared-ts/src/utils/routerAbEd25519Yao.ts
403
- var ED25519_YAO_CONTROL_CIPHERTEXT_MAX_BYTES_V1 = 64 * 1024;
404
- var UTF8 = new TextEncoder;
405
-
406
- // ../shared-ts/src/device-linking/parsers.ts
407
- var QR_FIELDS = [
408
- "version",
409
- "purpose",
410
- "linkSessionId",
411
- "linkPublicKeyB64u",
412
- "devicePublicKeyB64u",
413
- "requestedPermission",
414
- "targetFactor",
415
- "issuedAtMs",
416
- "expiresAtMs"
417
- ];
418
- var QR_EMAIL_FIELDS = [...QR_FIELDS, "targetEmail"];
419
- var COMPACT_QR_FIELDS = ["v", "s", "l", "d", "a", "f", "i", "e"];
420
- var COMPACT_QR_EMAIL_FIELDS = [...COMPACT_QR_FIELDS, "t"];
421
- var ENROLLMENT_FIELDS = [
422
- "kind",
423
- "linkSessionId",
424
- "walletId",
425
- "enrollmentId",
426
- "deviceId",
427
- "linkPublicKeyB64u",
428
- "devicePublicKeyB64u",
429
- "permission",
430
- "targetFactor",
431
- "ownerAuthorization",
432
- "approvedAtMs",
433
- "expiresAtMs"
434
- ];
435
- var ENROLLMENT_FIELDS_WITH_SOURCE_CONTRIBUTION = [
436
- ...ENROLLMENT_FIELDS,
437
- "sourceContribution"
438
- ];
439
- var CREDENTIAL_BASE_FIELDS = [
440
- "kind",
441
- "linkSessionId",
442
- "walletId",
443
- "enrollmentId",
444
- "deviceId",
445
- "walletAuthMethodId",
446
- "targetFactor",
447
- "targetPreparationDigestB64u",
448
- "ordinarySignerMaterialRecipientRequests",
449
- "registeredAtMs"
450
- ];
451
- var PASSKEY_CREDENTIAL_FIELDS = [...CREDENTIAL_BASE_FIELDS, "webauthnRegistration"];
452
- var EMAIL_OTP_CREDENTIAL_FIELDS = [
453
- ...CREDENTIAL_BASE_FIELDS,
454
- "targetEmail",
455
- "emailOtpVerificationGrant"
456
- ];
457
- var EMAIL_OTP_CREDENTIAL_NEW_FIELDS = [
458
- ...EMAIL_OTP_CREDENTIAL_FIELDS,
459
- "emailOtpEnrollment"
460
- ];
461
- var TARGET_PREPARATION_BASE_FIELDS = [
462
- "kind",
463
- "linkSessionId",
464
- "walletId",
465
- "enrollmentId",
466
- "deviceId",
467
- "deliveryRecipientPublicKey65B64u",
468
- "walletAuthMethodId",
469
- "ed25519ExportRoot",
470
- "targetFactor",
471
- "ordinarySignerMaterialRecipientRequirements",
472
- "issuedAtMs",
473
- "expiresAtMs"
474
- ];
475
- var TARGET_PREPARATION_PASSKEY_FIELDS = [
476
- ...TARGET_PREPARATION_BASE_FIELDS,
477
- "passkeyCreationOptions",
478
- "passkeyConfigurationDigestB64u"
479
- ];
480
- var TARGET_PREPARATION_EMAIL_FIELDS = [
481
- ...TARGET_PREPARATION_BASE_FIELDS,
482
- "targetEmail",
483
- "enrollment",
484
- "baseWalletAuthMethodId"
485
- ];
486
- var TARGET_PREPARATION_EMAIL_NEW_FIELDS = [
487
- ...TARGET_PREPARATION_BASE_FIELDS,
488
- "targetEmail",
489
- "enrollment"
490
- ];
491
- var EMAIL_OTP_VERIFICATION_GRANT_BASE_FIELDS = [
492
- "kind",
493
- "grantId",
494
- "grantToken",
495
- "challengeId",
496
- "linkSessionId",
497
- "walletId",
498
- "enrollmentId",
499
- "deviceId",
500
- "targetPreparationDigestB64u",
501
- "targetEmail",
502
- "enrollment",
503
- "emailHashHex",
504
- "registrationAuthorityId",
505
- "providerUserId",
506
- "authorityDigestB64u",
507
- "issuedAtMs",
508
- "expiresAtMs"
509
- ];
510
- var EMAIL_OTP_VERIFICATION_GRANT_FIELDS = [
511
- ...EMAIL_OTP_VERIFICATION_GRANT_BASE_FIELDS,
512
- "baseWalletAuthMethodId"
513
- ];
514
- var P256_FIELD_PRIME = BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff");
515
- var P256_CURVE_A = P256_FIELD_PRIME - 3n;
516
- var P256_CURVE_B = BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b");
517
-
518
- // src/core/signingEngine/workerManager/ecdsaClientWorkerChannels.ts
519
- var EcdsaClientWorkerControlKind = {
520
- AttachDerivationToPresign: "attach_ecdsa_derivation_to_presign_v1",
521
- AttachLinkedHolderToPresign: "attach_linked_holder_to_ecdsa_presign_v1",
522
- AttachPresignToOnline: "attach_ecdsa_presign_to_online_v1"
523
- };
524
- var ECDSA_CLIENT_CHANNEL_PROBE_DIGEST_B64U = "A".repeat(43);
525
- function parseWorkerChannelControl(value) {
526
- if (!isObject(value))
527
- return null;
528
- return { kind: value.kind, port: value.port };
529
- }
530
- function isAttachPresignToOnlinePort(value) {
531
- const parsed = parseWorkerChannelControl(value);
532
- return parsed?.kind === EcdsaClientWorkerControlKind.AttachPresignToOnline && parsed.port instanceof MessagePort;
533
- }
534
-
535
- // src/core/signingEngine/workerManager/workerDeferred.ts
536
- class WorkerDeferred {
537
- promise;
538
- resolveValue = null;
539
- rejectValue = null;
540
- constructor() {
541
- this.promise = new Promise(this.capture);
542
- }
543
- resolve(value) {
544
- if (!this.resolveValue)
545
- throw new Error("Worker deferred resolver is unavailable");
546
- this.resolveValue(value);
547
- }
548
- reject(error) {
549
- if (!this.rejectValue)
550
- throw new Error("Worker deferred rejecter is unavailable");
551
- this.rejectValue(error);
552
- }
553
- capture = (resolve, reject) => {
554
- this.resolveValue = resolve;
555
- this.rejectValue = reject;
556
- };
557
- }
558
-
559
- // src/core/signingEngine/workerManager/workers/ecdsa-online-client.worker.ts
560
- var pending = new Map;
561
- var presignPort = null;
562
- function handlePresignResponse(event) {
563
- const response = event.data;
564
- const deferred = pending.get(response.id);
565
- if (!deferred)
566
- return;
567
- pending.delete(response.id);
568
- if (response.ok)
569
- deferred.resolve(response.result);
570
- else
571
- deferred.reject(new Error(response.error));
572
- }
573
- function attachPresignPort(port) {
574
- presignPort?.close();
575
- for (const deferred of pending.values()) {
576
- deferred.reject(new Error("ECDSA presign authority channel was replaced"));
577
- }
578
- pending.clear();
579
- presignPort = port;
580
- port.onmessage = handlePresignResponse;
581
- port.onmessageerror = () => rejectPending("ECDSA presign authority channel failed");
582
- port.start();
583
- }
584
- function rejectPending(message) {
585
- for (const deferred of pending.values())
586
- deferred.reject(new Error(message));
587
- pending.clear();
588
- }
589
- async function forwardRequest(request) {
590
- try {
591
- const port = presignPort;
592
- if (!port)
593
- throw new Error("ECDSA online client has no opaque presign authority channel");
594
- if (pending.has(request.id))
595
- throw new Error("ECDSA online request id is already pending");
596
- const deferred = new WorkerDeferred;
597
- pending.set(request.id, deferred);
598
- const transfer = request.type === EcdsaOnlineClientRequestType.ComputeSignatureShare ? [
599
- request.payload.groupPublicKey33,
600
- request.payload.expectedPresignBigR33,
601
- request.payload.digest32,
602
- request.payload.clientRerandomizationContribution32,
603
- request.payload.signingWorkerRerandomizationContribution32
604
- ] : [];
605
- try {
606
- port.postMessage(request, transfer);
607
- } catch (error) {
608
- pending.delete(request.id);
609
- throw error;
610
- }
611
- self.postMessage({ id: request.id, ok: true, result: await deferred.promise });
612
- } catch (error) {
613
- self.postMessage({ id: request.id, ok: false, error: safeErrorMessage(error) });
614
- }
615
- }
616
- function processMessage(event) {
617
- if (isAttachPresignToOnlinePort(event.data)) {
618
- attachPresignPort(event.data.port);
619
- return;
620
- }
621
- forwardRequest(event.data);
622
- }
623
- self.addEventListener("message", processMessage);
624
- self.postMessage({ type: WorkerControlMessage.WORKER_READY, ready: true });
1
+ function W4(C){if(C.length>=255)throw new TypeError("Alphabet too long");let $=new Uint8Array(256);for(let J=0;J<$.length;J++)$[J]=255;for(let J=0;J<C.length;J++){let X=C.charAt(J),E=X.charCodeAt(0);if($[E]!==255)throw new TypeError(X+" is ambiguous");$[E]=J}let Y=C.length,z=C.charAt(0),y=Math.log(Y)/Math.log(256),G4=Math.log(256)/Math.log(Y);function H4(J){if(J instanceof Uint8Array);else if(ArrayBuffer.isView(J))J=new Uint8Array(J.buffer,J.byteOffset,J.byteLength);else if(Array.isArray(J))J=Uint8Array.from(J);if(!(J instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(J.length===0)return"";let X=0,E=0,G=0,T=J.length;while(G!==T&&J[G]===0)G++,X++;let F=(T-G)*G4+1>>>0,H=new Uint8Array(F);while(G!==T){let V=J[G],U=0;for(let L=F-1;(V!==0||U<E)&&L!==-1;L--,U++)V+=256*H[L]>>>0,H[L]=V%Y>>>0,V=V/Y>>>0;if(V!==0)throw new Error("Non-zero carry");E=U,G++}let N=F-E;while(N!==F&&H[N]===0)N++;let S=z.repeat(X);for(;N<F;++N)S+=C.charAt(H[N]);return S}function v(J){if(typeof J!=="string")throw new TypeError("Expected String");if(J.length===0)return new Uint8Array;let X=0,E=0,G=0;while(J[X]===z)E++,X++;let T=(J.length-X)*y+1>>>0,F=new Uint8Array(T);while(X<J.length){let V=J.charCodeAt(X);if(V>255)return;let U=$[V];if(U===255)return;let L=0;for(let R=T-1;(U!==0||L<G)&&R!==-1;R--,L++)U+=Y*F[R]>>>0,F[R]=U%256>>>0,U=U/256>>>0;if(U!==0)throw new Error("Non-zero carry");G=L,X++}let H=T-G;while(H!==T&&F[H]===0)H++;let N=new Uint8Array(E+(T-H)),S=E;while(H!==T)N[S++]=F[H++];return N}function U4(J){let X=v(J);if(X)return X;throw new Error("Non-base"+Y+" character")}return{encode:H4,decodeUnsafe:v,decode:U4}}var n=W4;var E4="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",T4=n(E4);function N4(C){try{if(typeof C==="string")return C;if(C&&typeof C.message==="string")return C.message;return String(C??"")}catch{return""}}function O(C){return`${C}B64u`}var V4=["nearPrivateKey","near_private_key","privateKey","private_key",O("seed"),"seed_b64u",O("canonicalSeed"),"canonical_seed_b64u",O("xClientBase"),"x_client_base_b64u",O("clientOutputMask"),"client_output_mask_b64u",O("clientRecoverableSecret"),"client_recoverable_secret_b64u","prfOutput","prf_output","prfFirst","prf_first",O("prfFirst"),"prf_first_b64u","prfSecond","prf_second",O("prfSecond"),"prf_second_b64u",O("signingShare32"),"signing_share32_b64u",O("clientNonceHandle"),"client_nonce_handle_b64u"];function O4(C,$){let Y=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return C.replace(new RegExp(`("${Y}"\\s*:\\s*")([^"]*)(")`,"g"),"$1[REDACTED]$3")}function D4(C,$){let Y=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return C.replace(new RegExp(`\\b(${Y}\\s*[=:]\\s*)([^\\s,}\\]]+)`,"g"),"$1[REDACTED]")}function L4(C){let $=String(C||"");for(let Y of V4)$=O4($,Y),$=D4($,Y);return $}function b(C){return L4(N4(C))}var c={WORKER_READY:"WORKER_READY"};var u={ComputeSignatureShare:72000,RetirePool:72001};function o(C){return C!==null&&typeof C==="object"}var z4={vaultAccess:"vault_access",nearEd25519MpcSigning:"near_ed25519_mpc_signing",evmEcdsaMpcSigning:"evm_ecdsa_mpc_signing"},S4={proxyUse:"vault.proxy_use",reveal:"vault.reveal"},R4={signTransaction:"near.sign_transaction",signDelegateAction:"near.sign_delegate_action",signNep413Message:"near.sign_nep413_message",exportKey:"near.export_key"},i={signTransaction:"evm.sign_transaction",exportKey:"evm.export_key"};var I4={seamsSession:"seams_session",passkeyAssertion:"passkey_assertion",emailOtp:"email_otp"};var _0=Object.values(z4),j0=Object.values(S4),P0=Object.values(R4),M0=Object.values(i),q0=Object.values(I4);var K0=Object.freeze(["export_keys","link_devices","revoke_devices","sign"]),z0=Object.freeze(["sign"]),k4=["export_keys","link_devices","revoke_devices","sign"],S0=new Set(k4),R0=Symbol("canonicalPermissionSetBrand");var x4=["alpine","amber","azure","brisk","bright","calm","cedar","cobalt","copper","coral","crimson","crystal","dawn","deep","dusky","evergreen","fair","fern","frost","gentle","glacier","glowing","golden","harbor","humble","indigo","ivory","jade","keen","lunar","maple","misty","mossy","noble","ocean","opal","polar","quiet","rapid","redwood","river","royal","sage","scarlet","serene","silver","solar","steady","stone","swift","tranquil","twilight","umber","verdant","vibrant","violet","vivid","warm","wild","willow","winter","woodland","young","zephyr"],y4=["anchor","arbor","atlas","aurora","badger","beacon","bloom","brook","canyon","cascade","comet","cove","crane","delta","dune","eagle","ember","falcon","feather","fjord","forest","galaxy","garden","giant","grove","harvest","heron","horizon","island","lagoon","lantern","lark","meadow","meteor","monolith","nebula","oasis","orchid","otter","peak","pebble","phoenix","pine","prism","quartz","raven","reef","ridge","sable","sequoia","shore","solstice","sparrow","star","summit","tempo","thunder","tundra","valley","vermillion","voyage","wave","wren","zenith"];var N$=new Set(x4),V$=new Set(y4);var i4=["version","purpose","linkSessionId","linkPublicKeyB64u","devicePublicKeyB64u","requestedPermission","targetFactor","issuedAtMs","expiresAtMs"],KJ=[...i4,"targetEmail"],r4=["v","s","l","d","a","f","i","e"],zJ=[...r4,"t"];var a4=["kind","linkSessionId","walletId","enrollmentId","deviceId","linkPublicKeyB64u","devicePublicKeyB64u","permission","targetFactor","ownerAuthorization","approvedAtMs","expiresAtMs"],SJ=[...a4,"sourceContribution"];var Y4=["kind","linkSessionId","walletId","enrollmentId","deviceId","walletAuthMethodId","targetFactor","targetPreparationDigestB64u","ordinarySignerMaterialRecipientRequests","registeredAtMs"],RJ=[...Y4,"webauthnRegistration"],l4=[...Y4,"targetEmail","emailOtpVerificationGrant"],IJ=[...l4,"emailOtpEnrollment"],g=["kind","linkSessionId","walletId","enrollmentId","deviceId","deliveryRecipientPublicKey65B64u","walletAuthMethodId","ed25519ExportRoot","targetFactor","ordinarySignerMaterialRecipientRequirements","issuedAtMs","expiresAtMs"];var kJ=[...g,"passkeyCreationOptions","passkeyConfigurationDigestB64u"],AJ=[...g,"targetEmail","enrollment","baseWalletAuthMethodId"],xJ=[...g,"targetEmail","enrollment"],e4=["kind","grantId","grantToken","challengeId","linkSessionId","walletId","enrollmentId","deviceId","targetPreparationDigestB64u","targetEmail","enrollment","emailHashHex","registrationAuthorityId","providerUserId","authorityDigestB64u","issuedAtMs","expiresAtMs"],yJ=[...e4,"baseWalletAuthMethodId"];var CC=BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),mJ=CC-3n,hJ=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b");var GC={AttachDerivationToPresign:"attach_ecdsa_derivation_to_presign_v1",AttachLinkedHolderToPresign:"attach_linked_holder_to_ecdsa_presign_v1",AttachPresignToOnline:"attach_ecdsa_presign_to_online_v1"};var SY="A".repeat(43);function HC(C){if(!o(C))return null;return{kind:C.kind,port:C.port}}function Z4(C){let $=HC(C);return $?.kind===GC.AttachPresignToOnline&&$.port instanceof MessagePort}class p{promise;resolveValue=null;rejectValue=null;constructor(){this.promise=new Promise(this.capture)}resolve(C){if(!this.resolveValue)throw new Error("Worker deferred resolver is unavailable");this.resolveValue(C)}reject(C){if(!this.rejectValue)throw new Error("Worker deferred rejecter is unavailable");this.rejectValue(C)}capture=(C,$)=>{this.resolveValue=C,this.rejectValue=$}}var D=new Map,s=null;function UC(C){let $=C.data,Y=D.get($.id);if(!Y)return;if(D.delete($.id),$.ok)Y.resolve($.result);else Y.reject(new Error($.error))}function WC(C){s?.close();for(let $ of D.values())$.reject(new Error("ECDSA presign authority channel was replaced"));D.clear(),s=C,C.onmessage=UC,C.onmessageerror=()=>EC("ECDSA presign authority channel failed"),C.start()}function EC(C){for(let $ of D.values())$.reject(new Error(C));D.clear()}async function TC(C){try{let $=s;if(!$)throw new Error("ECDSA online client has no opaque presign authority channel");if(D.has(C.id))throw new Error("ECDSA online request id is already pending");let Y=new p;D.set(C.id,Y);let z=C.type===u.ComputeSignatureShare?[C.payload.groupPublicKey33,C.payload.expectedPresignBigR33,C.payload.digest32,C.payload.clientRerandomizationContribution32,C.payload.signingWorkerRerandomizationContribution32]:[];try{$.postMessage(C,z)}catch(y){throw D.delete(C.id),y}self.postMessage({id:C.id,ok:!0,result:await Y.promise})}catch($){self.postMessage({id:C.id,ok:!1,error:b($)})}}function FC(C){if(Z4(C.data)){WC(C.data.port);return}TC(C.data)}self.addEventListener("message",FC);self.postMessage({type:c.WORKER_READY,ready:!0});