@sidhujag/sysweb3-keyring 2.1.11 → 2.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/cjs/host-keyring.js +3 -1
- package/cjs/host-keyring.js.map +1 -1
- package/cjs/index.js +3 -1
- package/cjs/index.js.map +1 -1
- package/cjs/keyring-core.js +609 -36
- package/cjs/keyring-core.js.map +1 -1
- package/cjs/keyring-host.js +9 -2
- package/cjs/keyring-host.js.map +1 -1
- package/cjs/private-records.js +291 -9
- package/cjs/private-records.js.map +1 -1
- package/cjs/public-session.js +72 -0
- package/cjs/public-session.js.map +1 -0
- package/cjs/software.js +3 -1
- package/cjs/software.js.map +1 -1
- package/cjs/transactions/syscoin-core.js +161 -97
- package/cjs/transactions/syscoin-core.js.map +1 -1
- package/cjs/types.js.map +1 -1
- package/cjs/utils/utxo-fee-rate.js +26 -0
- package/cjs/utils/utxo-fee-rate.js.map +1 -0
- package/esm/keyring-core.js +611 -38
- package/esm/keyring-core.js.map +1 -1
- package/esm/keyring-host.js +9 -2
- package/esm/keyring-host.js.map +1 -1
- package/esm/private-records.js +284 -9
- package/esm/private-records.js.map +1 -1
- package/esm/public-session.js +65 -0
- package/esm/public-session.js.map +1 -0
- package/esm/transactions/syscoin-core.js +161 -97
- package/esm/transactions/syscoin-core.js.map +1 -1
- package/esm/types.js.map +1 -1
- package/esm/utils/utxo-fee-rate.js +23 -0
- package/esm/utils/utxo-fee-rate.js.map +1 -0
- package/package.json +7 -1
- package/types/host-keyring.d.ts +4 -0
- package/types/index.d.ts +3 -1
- package/types/keyring-core.d.ts +37 -5
- package/types/keyring-host.d.ts +4 -0
- package/types/private-records.d.ts +30 -0
- package/types/public-session.d.ts +19 -0
- package/types/software.d.ts +5 -0
- package/types/transactions/syscoin-core.d.ts +13 -1
- package/types/types.d.ts +9 -1
- package/types/utils/utxo-fee-rate.d.ts +5 -0
package/cjs/private-records.js
CHANGED
|
@@ -4,6 +4,13 @@ exports.MAX_PRIVATE_RECORD_LABEL_BYTES = exports.MAX_PRIVATE_RECORD_BYTES = void
|
|
|
4
4
|
exports.privateRecordProfileId = privateRecordProfileId;
|
|
5
5
|
exports.encryptPrivateRecordBytes = encryptPrivateRecordBytes;
|
|
6
6
|
exports.decryptPrivateRecordBytes = decryptPrivateRecordBytes;
|
|
7
|
+
exports.privateRecordDomainSet = privateRecordDomainSet;
|
|
8
|
+
exports.activePrivateRecordDomainSet = activePrivateRecordDomainSet;
|
|
9
|
+
exports.privateRecordAccessCanTransfer = privateRecordAccessCanTransfer;
|
|
10
|
+
exports.transferPrivateRecordAccess = transferPrivateRecordAccess;
|
|
11
|
+
exports.createPrivateRecordAccess = createPrivateRecordAccess;
|
|
12
|
+
exports.sealPublicRecordCheckpoint = sealPublicRecordCheckpoint;
|
|
13
|
+
exports.restorePublicRecordCheckpoint = restorePublicRecordCheckpoint;
|
|
7
14
|
exports.MAX_PRIVATE_RECORD_BYTES = 64 * 1024;
|
|
8
15
|
exports.MAX_PRIVATE_RECORD_LABEL_BYTES = 128;
|
|
9
16
|
const NAMESPACE = 'sysweb3/private-record/v1';
|
|
@@ -64,13 +71,16 @@ async function profileId(key, guard) {
|
|
|
64
71
|
guard();
|
|
65
72
|
return `0x${Buffer.from(bits).toString('hex')}`;
|
|
66
73
|
}
|
|
67
|
-
|
|
68
|
-
|
|
74
|
+
function domainParameters(domain) {
|
|
75
|
+
return {
|
|
69
76
|
name: 'HKDF',
|
|
70
77
|
hash: 'SHA-256',
|
|
71
78
|
salt: bufferSource(encoder.encode(NAMESPACE)),
|
|
72
79
|
info: bufferSource(encoder.encode(JSON.stringify([NAMESPACE, 'encryption-key', domain]))),
|
|
73
|
-
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
async function domainKey(key, domain, guard) {
|
|
83
|
+
const derived = await cryptoProvider().subtle.deriveKey(domainParameters(domain), key, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt']);
|
|
74
84
|
guard();
|
|
75
85
|
return derived;
|
|
76
86
|
}
|
|
@@ -83,6 +93,15 @@ async function privateRecordProfileId(secret, guard) {
|
|
|
83
93
|
return profileId(await importRoot(secret, guard), guard);
|
|
84
94
|
}
|
|
85
95
|
async function encryptPrivateRecordBytes(secret, params, guard) {
|
|
96
|
+
return encryptRecord(params, guard, async (domain) => {
|
|
97
|
+
const key = await importRoot(secret, guard);
|
|
98
|
+
return {
|
|
99
|
+
profile: await profileId(key, guard),
|
|
100
|
+
aesKey: await domainKey(key, domain, guard),
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
async function encryptRecord(params, guard, keys) {
|
|
86
105
|
const domain = label(params.domain);
|
|
87
106
|
const recordId = label(params.recordId);
|
|
88
107
|
if (!(params.plaintext instanceof Uint8Array) ||
|
|
@@ -92,9 +111,8 @@ async function encryptPrivateRecordBytes(secret, params, guard) {
|
|
|
92
111
|
// Own the input before the first await; caller mutations cannot change it.
|
|
93
112
|
const plaintext = new Uint8Array(params.plaintext);
|
|
94
113
|
try {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
const aesKey = await domainKey(key, domain, guard);
|
|
114
|
+
const { profile, aesKey } = await keys(domain);
|
|
115
|
+
guard();
|
|
98
116
|
const nonce = cryptoProvider().getRandomValues(new Uint8Array(NONCE_BYTES));
|
|
99
117
|
const encrypted = await cryptoProvider().subtle.encrypt({
|
|
100
118
|
name: 'AES-GCM',
|
|
@@ -117,6 +135,15 @@ async function encryptPrivateRecordBytes(secret, params, guard) {
|
|
|
117
135
|
}
|
|
118
136
|
}
|
|
119
137
|
async function decryptPrivateRecordBytes(secret, params, guard) {
|
|
138
|
+
return decryptRecord(params, guard, async (domain) => {
|
|
139
|
+
const key = await importRoot(secret, guard);
|
|
140
|
+
return {
|
|
141
|
+
profile: await profileId(key, guard),
|
|
142
|
+
aesKey: await domainKey(key, domain, guard),
|
|
143
|
+
};
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async function decryptRecord(params, guard, keys) {
|
|
120
147
|
const domain = label(params.domain);
|
|
121
148
|
const recordId = label(params.recordId);
|
|
122
149
|
// Copy primitive fields before awaiting. No caller-owned object is retained.
|
|
@@ -133,12 +160,11 @@ async function decryptPrivateRecordBytes(secret, params, guard) {
|
|
|
133
160
|
}
|
|
134
161
|
const nonce = decodeBase64(envelope.nonce, NONCE_BYTES, NONCE_BYTES);
|
|
135
162
|
const ciphertext = decodeBase64(envelope.ciphertext, TAG_BYTES, exports.MAX_PRIVATE_RECORD_BYTES + TAG_BYTES);
|
|
136
|
-
const
|
|
137
|
-
|
|
163
|
+
const { profile, aesKey } = await keys(domain);
|
|
164
|
+
guard();
|
|
138
165
|
if (profile !== envelope.profileId) {
|
|
139
166
|
throw new Error('Private record profile mismatch');
|
|
140
167
|
}
|
|
141
|
-
const aesKey = await domainKey(key, domain, guard);
|
|
142
168
|
let plaintext;
|
|
143
169
|
try {
|
|
144
170
|
plaintext = new Uint8Array(await cryptoProvider().subtle.decrypt({
|
|
@@ -156,4 +182,260 @@ async function decryptPrivateRecordBytes(secret, params, guard) {
|
|
|
156
182
|
throw new Error('Private record authentication failed');
|
|
157
183
|
}
|
|
158
184
|
}
|
|
185
|
+
const recordAccessOwners = new WeakMap();
|
|
186
|
+
/** Canonical exact set, used only to retrieve a previously granted capability. */
|
|
187
|
+
function privateRecordDomainSet(domains) {
|
|
188
|
+
if (!Array.isArray(domains) || domains.length === 0 || domains.length > 8)
|
|
189
|
+
throw new Error('Invalid record domains');
|
|
190
|
+
const names = [];
|
|
191
|
+
for (let i = 0; i < domains.length; i++) {
|
|
192
|
+
const item = Object.getOwnPropertyDescriptor(domains, String(i));
|
|
193
|
+
if (!item || !('value' in item))
|
|
194
|
+
throw new Error('Invalid record domains');
|
|
195
|
+
names.push(label(item.value));
|
|
196
|
+
}
|
|
197
|
+
if (new Set(names).size !== names.length)
|
|
198
|
+
throw new Error('Invalid record domains');
|
|
199
|
+
return JSON.stringify(names.sort());
|
|
200
|
+
}
|
|
201
|
+
function checkRecordOwner(owner) {
|
|
202
|
+
if (!owner.active)
|
|
203
|
+
throw new Error('Record access retired');
|
|
204
|
+
const result = owner.guard();
|
|
205
|
+
if (result !== undefined) {
|
|
206
|
+
void Promise.resolve(result).catch(() => undefined);
|
|
207
|
+
throw new Error('Record access requires a synchronous owner guard');
|
|
208
|
+
}
|
|
209
|
+
if (!owner.active)
|
|
210
|
+
throw new Error('Record access retired');
|
|
211
|
+
}
|
|
212
|
+
function bindRecordAccess(owner) {
|
|
213
|
+
const check = () => checkRecordOwner(owner);
|
|
214
|
+
const keyFor = async (domain) => {
|
|
215
|
+
check();
|
|
216
|
+
const aesKey = owner.keys.get(domain);
|
|
217
|
+
if (!aesKey)
|
|
218
|
+
throw new Error('Record domain not authorized');
|
|
219
|
+
return { profile: owner.profile, aesKey };
|
|
220
|
+
};
|
|
221
|
+
const access = Object.freeze({
|
|
222
|
+
async getPrivateRecordProfileId() {
|
|
223
|
+
check();
|
|
224
|
+
return owner.profile;
|
|
225
|
+
},
|
|
226
|
+
encryptPrivateRecord: (params) => encryptRecord(params, check, keyFor),
|
|
227
|
+
decryptPrivateRecord: (params) => decryptRecord(params, check, keyFor),
|
|
228
|
+
dispose() {
|
|
229
|
+
owner.active = false;
|
|
230
|
+
owner.keys.clear();
|
|
231
|
+
},
|
|
232
|
+
});
|
|
233
|
+
recordAccessOwners.set(access, owner);
|
|
234
|
+
return access;
|
|
235
|
+
}
|
|
236
|
+
/** Internal cache inspection; key material is never returned. */
|
|
237
|
+
function activePrivateRecordDomainSet(access, authority) {
|
|
238
|
+
const owner = recordAccessOwners.get(access);
|
|
239
|
+
if (!owner?.active)
|
|
240
|
+
return null;
|
|
241
|
+
if (owner.authority !== authority)
|
|
242
|
+
throw new Error('Record access owner mismatch');
|
|
243
|
+
checkRecordOwner(owner);
|
|
244
|
+
return owner.domainSet;
|
|
245
|
+
}
|
|
246
|
+
/** Internal transfer policy; callers cannot upgrade an existing grant. */
|
|
247
|
+
function privateRecordAccessCanTransfer(access, authority) {
|
|
248
|
+
const owner = recordAccessOwners.get(access);
|
|
249
|
+
if (!owner?.active)
|
|
250
|
+
return false;
|
|
251
|
+
if (owner.authority !== authority)
|
|
252
|
+
throw new Error('Record access owner mismatch');
|
|
253
|
+
checkRecordOwner(owner);
|
|
254
|
+
return owner.transferable;
|
|
255
|
+
}
|
|
256
|
+
/** Internal trusted SDK transfer. Old methods/dispose cannot affect the moved keys. */
|
|
257
|
+
function transferPrivateRecordAccess(access, sourceAuthority, targetAuthority, guard) {
|
|
258
|
+
const owner = recordAccessOwners.get(access);
|
|
259
|
+
if (!owner ||
|
|
260
|
+
owner.authority !== sourceAuthority ||
|
|
261
|
+
!targetAuthority ||
|
|
262
|
+
typeof targetAuthority !== 'object')
|
|
263
|
+
throw new Error('Record access owner mismatch');
|
|
264
|
+
checkRecordOwner(owner);
|
|
265
|
+
if (!owner.transferable)
|
|
266
|
+
throw new Error('Record access cannot transfer');
|
|
267
|
+
const keys = owner.keys;
|
|
268
|
+
const next = bindRecordAccess({
|
|
269
|
+
active: true,
|
|
270
|
+
domainSet: owner.domainSet,
|
|
271
|
+
guard,
|
|
272
|
+
keys,
|
|
273
|
+
profile: owner.profile,
|
|
274
|
+
transferable: true,
|
|
275
|
+
authority: targetAuthority,
|
|
276
|
+
});
|
|
277
|
+
owner.keys = new Map();
|
|
278
|
+
owner.active = false;
|
|
279
|
+
return next;
|
|
280
|
+
}
|
|
281
|
+
/** Derive only the named record keys, then release the root. No key export or derivation surface escapes. */
|
|
282
|
+
async function createPrivateRecordAccess(secret, domains, options, guard, authority) {
|
|
283
|
+
if (!authority || typeof authority !== 'object')
|
|
284
|
+
throw new Error('Record access owner is required');
|
|
285
|
+
const transfer = options &&
|
|
286
|
+
typeof options === 'object' &&
|
|
287
|
+
Reflect.ownKeys(options).length === 1
|
|
288
|
+
? Object.getOwnPropertyDescriptor(options, 'transferable')
|
|
289
|
+
: undefined;
|
|
290
|
+
if (!transfer ||
|
|
291
|
+
!('value' in transfer) ||
|
|
292
|
+
typeof transfer.value !== 'boolean')
|
|
293
|
+
throw new Error('Explicit record transfer policy is required');
|
|
294
|
+
const domainSet = privateRecordDomainSet(domains);
|
|
295
|
+
const names = JSON.parse(domainSet);
|
|
296
|
+
const owner = {
|
|
297
|
+
active: true,
|
|
298
|
+
domainSet,
|
|
299
|
+
guard,
|
|
300
|
+
keys: new Map(),
|
|
301
|
+
profile: '',
|
|
302
|
+
transferable: transfer.value,
|
|
303
|
+
authority,
|
|
304
|
+
};
|
|
305
|
+
const check = () => checkRecordOwner(owner);
|
|
306
|
+
check();
|
|
307
|
+
let root;
|
|
308
|
+
try {
|
|
309
|
+
root = await importRoot(secret, check);
|
|
310
|
+
owner.profile = await profileId(root, check);
|
|
311
|
+
for (const domain of names) {
|
|
312
|
+
owner.keys.set(domain, await domainKey(root, domain, check));
|
|
313
|
+
check();
|
|
314
|
+
}
|
|
315
|
+
return bindRecordAccess(owner);
|
|
316
|
+
}
|
|
317
|
+
catch (error) {
|
|
318
|
+
owner.active = false;
|
|
319
|
+
owner.keys.clear();
|
|
320
|
+
throw error;
|
|
321
|
+
}
|
|
322
|
+
finally {
|
|
323
|
+
root = undefined;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
// This separate HKDF domain cannot decrypt the vault. Checkpoints contain only
|
|
327
|
+
// explicitly selected record-domain keys, never the mnemonic or vault key.
|
|
328
|
+
// No compatibility fallback to the previous password-wrapped checkpoint.
|
|
329
|
+
const PUBLIC_SESSION_DOMAIN = 'sysweb3.public-view.v1';
|
|
330
|
+
const CHECKPOINT_HEADER = new Uint8Array([0x50, 0x56, 0x43, 1]);
|
|
331
|
+
const CHECKPOINT_FIXED_BYTES = 4 + 32 + 32 + 32 + 1;
|
|
332
|
+
const sameBytes = (left, right) => {
|
|
333
|
+
let difference = left.length ^ right.length;
|
|
334
|
+
for (let i = 0; i < left.length; i++)
|
|
335
|
+
difference |= left[i] ^ (right[i] ?? 0);
|
|
336
|
+
return difference === 0;
|
|
337
|
+
};
|
|
338
|
+
function checkpointContext(context) {
|
|
339
|
+
if (!/^[0-9a-f]{64}$/.test(context.walletBindingId) ||
|
|
340
|
+
!/^[0-9a-f]{64}$/.test(context.pairFingerprint) ||
|
|
341
|
+
!(context.stateDigest instanceof Uint8Array) ||
|
|
342
|
+
context.stateDigest.length !== 32)
|
|
343
|
+
throw new Error('Invalid public record checkpoint context');
|
|
344
|
+
return JSON.parse(privateRecordDomainSet(context.domains));
|
|
345
|
+
}
|
|
346
|
+
/** Internal sealing only. No record key or extractable CryptoKey leaves this module. */
|
|
347
|
+
async function sealPublicRecordCheckpoint(rootSecret, wrappingSecret, context, guard) {
|
|
348
|
+
const domains = checkpointContext(context);
|
|
349
|
+
const payload = new Uint8Array(CHECKPOINT_FIXED_BYTES +
|
|
350
|
+
domains.reduce((size, domain) => size + 1 + domain.length + 32, 0));
|
|
351
|
+
let derived;
|
|
352
|
+
try {
|
|
353
|
+
const root = await importRoot(rootSecret, guard);
|
|
354
|
+
payload.set(CHECKPOINT_HEADER);
|
|
355
|
+
payload.set(Buffer.from(context.pairFingerprint, 'hex'), 4);
|
|
356
|
+
payload.set(context.stateDigest, 36);
|
|
357
|
+
payload.set(Buffer.from((await profileId(root, guard)).slice(2), 'hex'), 68);
|
|
358
|
+
payload[100] = domains.length;
|
|
359
|
+
let offset = CHECKPOINT_FIXED_BYTES;
|
|
360
|
+
for (const domain of domains) {
|
|
361
|
+
const name = encoder.encode(domain);
|
|
362
|
+
payload[offset++] = name.length;
|
|
363
|
+
payload.set(name, offset);
|
|
364
|
+
offset += name.length;
|
|
365
|
+
// Same v1 HKDF inputs as domainKey, imported non-extractably on restore.
|
|
366
|
+
derived = new Uint8Array(await cryptoProvider().subtle.deriveBits(domainParameters(domain), root, 256));
|
|
367
|
+
guard();
|
|
368
|
+
payload.set(derived, offset);
|
|
369
|
+
offset += 32;
|
|
370
|
+
derived.fill(0);
|
|
371
|
+
derived = undefined;
|
|
372
|
+
}
|
|
373
|
+
return await encryptPrivateRecordBytes(wrappingSecret, {
|
|
374
|
+
domain: PUBLIC_SESSION_DOMAIN,
|
|
375
|
+
recordId: context.walletBindingId,
|
|
376
|
+
plaintext: payload,
|
|
377
|
+
}, guard);
|
|
378
|
+
}
|
|
379
|
+
finally {
|
|
380
|
+
derived?.fill(0);
|
|
381
|
+
payload.fill(0);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
/** Internal restore imports only the sealed exact domain set as non-extractable keys. */
|
|
385
|
+
async function restorePublicRecordCheckpoint(wrappingSecret, envelope, context, guard, authority) {
|
|
386
|
+
const domains = checkpointContext(context);
|
|
387
|
+
const owner = {
|
|
388
|
+
active: true,
|
|
389
|
+
domainSet: privateRecordDomainSet(domains),
|
|
390
|
+
keys: new Map(),
|
|
391
|
+
guard,
|
|
392
|
+
profile: '',
|
|
393
|
+
transferable: true,
|
|
394
|
+
authority,
|
|
395
|
+
};
|
|
396
|
+
let payload, material;
|
|
397
|
+
try {
|
|
398
|
+
payload = await decryptPrivateRecordBytes(wrappingSecret, {
|
|
399
|
+
domain: PUBLIC_SESSION_DOMAIN,
|
|
400
|
+
recordId: context.walletBindingId,
|
|
401
|
+
envelope,
|
|
402
|
+
}, guard);
|
|
403
|
+
if (payload.length < CHECKPOINT_FIXED_BYTES ||
|
|
404
|
+
!sameBytes(payload.subarray(0, 4), CHECKPOINT_HEADER) ||
|
|
405
|
+
!sameBytes(payload.subarray(4, 36), new Uint8Array(Buffer.from(context.pairFingerprint, 'hex'))) ||
|
|
406
|
+
!sameBytes(payload.subarray(36, 68), context.stateDigest) ||
|
|
407
|
+
payload[100] !== domains.length)
|
|
408
|
+
throw new Error('Public session checkpoint context changed');
|
|
409
|
+
owner.profile = `0x${Buffer.from(payload.subarray(68, 100)).toString('hex')}`;
|
|
410
|
+
let offset = CHECKPOINT_FIXED_BYTES;
|
|
411
|
+
for (const domain of domains) {
|
|
412
|
+
const length = payload[offset++];
|
|
413
|
+
if (length !== domain.length ||
|
|
414
|
+
offset + length + 32 > payload.length ||
|
|
415
|
+
!sameBytes(payload.subarray(offset, offset + length), encoder.encode(domain)))
|
|
416
|
+
throw new Error('Public session checkpoint domains changed');
|
|
417
|
+
offset += length;
|
|
418
|
+
material = new Uint8Array(payload.subarray(offset, offset + 32));
|
|
419
|
+
offset += 32;
|
|
420
|
+
const key = await cryptoProvider().subtle.importKey('raw', bufferSource(material), { name: 'AES-GCM' }, false, ['encrypt', 'decrypt']);
|
|
421
|
+
material.fill(0);
|
|
422
|
+
material = undefined;
|
|
423
|
+
guard();
|
|
424
|
+
owner.keys.set(domain, key);
|
|
425
|
+
}
|
|
426
|
+
if (offset !== payload.length)
|
|
427
|
+
throw new Error('Invalid public session checkpoint');
|
|
428
|
+
guard();
|
|
429
|
+
return bindRecordAccess(owner);
|
|
430
|
+
}
|
|
431
|
+
catch (error) {
|
|
432
|
+
owner.active = false;
|
|
433
|
+
owner.keys.clear();
|
|
434
|
+
throw error;
|
|
435
|
+
}
|
|
436
|
+
finally {
|
|
437
|
+
payload?.fill(0);
|
|
438
|
+
material?.fill(0);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
159
441
|
//# sourceMappingURL=private-records.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-records.js","sourceRoot":"","sources":["../../src/private-records.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"private-records.js","sourceRoot":"","sources":["../../src/private-records.ts"],"names":[],"mappings":";;;AAsKA,wDAKC;AAED,8DAYC;AA8CD,8DAYC;AA0ED,wDAYC;AAqCD,oEAUC;AAGD,wEAUC;AAGD,kEA6BC;AAGD,8DAkDC;AA+BD,gEAuDC;AAGD,sEAiFC;AA9lBY,QAAA,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;AACrC,QAAA,8BAA8B,GAAG,GAAG,CAAC;AAElD,MAAM,SAAS,GAAG,2BAA2B,CAAC;AAC9C,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,WAAW,GAAG,cAAc,CAAC;AACnC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AACpD,MAAM,OAAO,GAAG,kBAAkB,CAAC;AACnC,MAAM,MAAM,GACV,kEAAkE,CAAC;AAGrE,6EAA6E;AAC7E,0EAA0E;AAC1E,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAgB,EAAE,CACvD,KAAgC,CAAC;AAEnC,SAAS,cAAc;IACrB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC;AAC3B,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,MAAM,GAAG,sCAA8B;QAC7C,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EACnC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAiB;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAC3D,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACrC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EACnB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3D,IACE,KAAK,CAAC,MAAM,GAAG,GAAG;QAClB,KAAK,CAAC,MAAM,GAAG,GAAG;QAClB,YAAY,CAAC,KAAK,CAAC,KAAK,KAAK,EAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,MAAkB,EAClB,KAAY;IAEZ,MAAM,GAAG,GAAG,MAAM,cAAc,EAAE,CAAC,MAAM,CAAC,SAAS,CACjD,KAAK,EACL,YAAY,CAAC,MAAM,CAAC,EACpB,MAAM,EACN,KAAK,EACL,CAAC,YAAY,EAAE,WAAW,CAAC,CAC5B,CAAC;IACF,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAc,EAAE,KAAY;IACnD,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC,MAAM,CAAC,UAAU,CACnD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,EAAE,YAAY,CAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAC1D;KACF,EACD,GAAG,EACH,GAAG,CACJ,CAAC;IACF,KAAK,EAAE,CAAC;IACR,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,EAAE,YAAY,CAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CACtE;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,GAAc,EACd,MAAc,EACd,KAAY;IAEZ,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC,MAAM,CAAC,SAAS,CACrD,gBAAgB,CAAC,MAAM,CAAC,EACxB,GAAG,EACH,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,EAChC,KAAK,EACL,CAAC,SAAS,EAAE,SAAS,CAAC,CACvB,CAAC;IACF,KAAK,EAAE,CAAC;IACR,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAe;IACvE,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,+EAA+E;AACxE,KAAK,UAAU,sBAAsB,CAC1C,MAAkB,EAClB,KAAY;IAEZ,OAAO,SAAS,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,MAAkB,EAClB,MAAmC,EACnC,KAAY;IAEZ,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO;YACL,OAAO,EAAE,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC;YACpC,MAAM,EAAE,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;SAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,KAAK,UAAU,aAAa,CAC1B,MAAmC,EACnC,KAAY,EACZ,IAA4C;IAE5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,IACE,CAAC,CAAC,MAAM,CAAC,SAAS,YAAY,UAAU,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,gCAAwB,EAClD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,2EAA2E;IAC3E,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,KAAK,EAAE,CAAC;QACR,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAC,MAAM,CAAC,OAAO,CACrD;YACE,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC;YACvB,SAAS,EAAE,GAAG;YACd,cAAc,EAAE,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SACxE,EACD,MAAM,EACN,YAAY,CAAC,SAAS,CAAC,CACxB,CAAC;QACF,KAAK,EAAE,CAAC;QACR,OAAO;YACL,OAAO,EAAE,CAAC;YACV,MAAM;YACN,QAAQ;YACR,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;YAC1B,UAAU,EAAE,YAAY,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;SACpD,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,MAAkB,EAClB,MAAmC,EACnC,KAAY;IAEZ,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO;YACL,OAAO,EAAE,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC;YACpC,MAAM,EAAE,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;SAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,MAAmC,EACnC,KAAY,EACZ,IAA4C;IAE5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3D,IACE,CAAC,QAAQ;QACT,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAClC,QAAQ,CAAC,OAAO,KAAK,CAAC;QACtB,QAAQ,CAAC,MAAM,KAAK,MAAM;QAC1B,QAAQ,CAAC,QAAQ,KAAK,QAAQ;QAC9B,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;QACtC,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE;QAChC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,YAAY,CAC7B,QAAQ,CAAC,UAAU,EACnB,SAAS,EACT,gCAAwB,GAAG,SAAS,CACrC,CAAC;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,KAAK,EAAE,CAAC;IACR,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,SAAiC,CAAC;IACtC,IAAI,CAAC;QACH,SAAS,GAAG,IAAI,UAAU,CACxB,MAAM,cAAc,EAAE,CAAC,MAAM,CAAC,OAAO,CACnC;YACE,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC;YACvB,SAAS,EAAE,GAAG;YACd,cAAc,EAAE,YAAY,CAC1B,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAC1C;SACF,EACD,MAAM,EACN,YAAY,CAAC,UAAU,CAAC,CACzB,CACF,CAAC;QACF,KAAK,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAWD,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAGnC,CAAC;AAEJ,kFAAkF;AAClF,SAAgB,sBAAsB,CAAC,OAA0B;IAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;QACtC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAwB;IAChD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAY,KAAK,CAAC,KAAK,EAAE,CAAC;IACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC9D,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAwB;IAChD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,EAAE,MAAc,EAAsB,EAAE;QAC1D,KAAK,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,MAAM,GAAyB,MAAM,CAAC,MAAM,CAAC;QACjD,KAAK,CAAC,yBAAyB;YAC7B,KAAK,EAAE,CAAC;YACR,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QACD,oBAAoB,EAAE,CAAC,MAAmC,EAAE,EAAE,CAC5D,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;QACtC,oBAAoB,EAAE,CAAC,MAAmC,EAAE,EAAE,CAC5D,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;QACtC,OAAO;YACL,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;IACH,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iEAAiE;AACjE,SAAgB,4BAA4B,CAC1C,MAA4B,EAC5B,SAAiB;IAEjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAC/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC,SAAS,CAAC;AACzB,CAAC;AAED,0EAA0E;AAC1E,SAAgB,8BAA8B,CAC5C,MAA4B,EAC5B,SAAiB;IAEjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAC/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC,YAAY,CAAC;AAC5B,CAAC;AAED,uFAAuF;AACvF,SAAgB,2BAA2B,CACzC,MAA4B,EAC5B,eAAuB,EACvB,eAAuB,EACvB,KAAY;IAEZ,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,IACE,CAAC,KAAK;QACN,KAAK,CAAC,SAAS,KAAK,eAAe;QACnC,CAAC,eAAe;QAChB,OAAO,eAAe,KAAK,QAAQ;QAEnC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,gBAAgB,CAAC;QAC5B,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK;QACL,IAAI;QACJ,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6GAA6G;AACtG,KAAK,UAAU,yBAAyB,CAC7C,MAAkB,EAClB,OAA0B,EAC1B,OAAmC,EACnC,KAAY,EACZ,SAAiB;IAEjB,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;QAC7C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,MAAM,QAAQ,GACZ,OAAO;QACP,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QACnC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IAChB,IACE,CAAC,QAAQ;QACT,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC;QACtB,OAAO,QAAQ,CAAC,KAAK,KAAK,SAAS;QAEnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,KAAK,GAAa,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAsB;QAC/B,MAAM,EAAE,IAAI;QACZ,SAAS;QACT,KAAK;QACL,IAAI,EAAE,IAAI,GAAG,EAAE;QACf,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,QAAQ,CAAC,KAAK;QAC5B,SAAS;KACV,CAAC;IACF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,EAAE,CAAC;IACR,IAAI,IAA2B,CAAC;IAChC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,KAAK,CAAC,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7D,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,GAAG,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AACvD,MAAM,iBAAiB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAOpD,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAE,KAAiB,EAAE,EAAE;IACxD,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,OAAO,UAAU,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF,SAAS,iBAAiB,CAAC,OAAsC;IAC/D,IACE,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QAC/C,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QAC/C,CAAC,CAAC,OAAO,CAAC,WAAW,YAAY,UAAU,CAAC;QAC5C,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,EAAE;QAEjC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAa,CAAC;AACzE,CAAC;AAED,wFAAwF;AACjF,KAAK,UAAU,0BAA0B,CAC9C,UAAsB,EACtB,cAA0B,EAC1B,OAAsC,EACtC,KAAY;IAEZ,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,UAAU,CAC5B,sBAAsB;QACpB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CACrE,CAAC;IACF,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAC3D,EAAE,CACH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,MAAM,GAAG,sBAAsB,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1B,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;YACtB,yEAAyE;YACzE,OAAO,GAAG,IAAI,UAAU,CACtB,MAAM,cAAc,EAAE,CAAC,MAAM,CAAC,UAAU,CACtC,gBAAgB,CAAC,MAAM,CAAC,EACxB,IAAI,EACJ,GAAG,CACJ,CACF,CAAC;YACF,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,IAAI,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;QACD,OAAO,MAAM,yBAAyB,CACpC,cAAc,EACd;YACE,MAAM,EAAE,qBAAqB;YAC7B,QAAQ,EAAE,OAAO,CAAC,eAAe;YACjC,SAAS,EAAE,OAAO;SACnB,EACD,KAAK,CACN,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,yFAAyF;AAClF,KAAK,UAAU,6BAA6B,CACjD,cAA0B,EAC1B,QAAiC,EACjC,OAAsC,EACtC,KAAY,EACZ,SAAiB;IAEjB,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAsB;QAC/B,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,sBAAsB,CAAC,OAAO,CAAC;QAC1C,IAAI,EAAE,IAAI,GAAG,EAAE;QACf,KAAK;QACL,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,SAAS;KACV,CAAC;IACF,IAAI,OAA+B,EAAE,QAAgC,CAAC;IACtE,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,yBAAyB,CACvC,cAAc,EACd;YACE,MAAM,EAAE,qBAAqB;YAC7B,QAAQ,EAAE,OAAO,CAAC,eAAe;YACjC,QAAQ;SACT,EACD,KAAK,CACN,CAAC;QACF,IACE,OAAO,CAAC,MAAM,GAAG,sBAAsB;YACvC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC;YACrD,CAAC,SAAS,CACR,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EACvB,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAC5D;YACD,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM;YAE/B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,KAAK,CAAC,OAAO,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAClE,KAAK,CACN,EAAE,CAAC;QACJ,IAAI,MAAM,GAAG,sBAAsB,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACjC,IACE,MAAM,KAAK,MAAM,CAAC,MAAM;gBACxB,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM;gBACrC,CAAC,SAAS,CACR,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EACzC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CACvB;gBAED,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,MAAM,IAAI,MAAM,CAAC;YACjB,QAAQ,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,IAAI,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,cAAc,EAAE,CAAC,MAAM,CAAC,SAAS,CACjD,KAAK,EACL,YAAY,CAAC,QAAQ,CAAC,EACtB,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,KAAK,EACL,CAAC,SAAS,EAAE,SAAS,CAAC,CACvB,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,QAAQ,GAAG,SAAS,CAAC;YACrB,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,CAAC,MAAM;YAC3B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,KAAK,EAAE,CAAC;QACR,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAX_PUBLIC_SESSION_STATE_BYTES = void 0;
|
|
4
|
+
exports.capturePublicSessionKey = capturePublicSessionKey;
|
|
5
|
+
exports.capturePublicSessionRequest = capturePublicSessionRequest;
|
|
6
|
+
exports.capturePublicSessionCheckpoint = capturePublicSessionCheckpoint;
|
|
7
|
+
exports.publicSessionStateDigest = publicSessionStateDigest;
|
|
8
|
+
const private_records_1 = require("./private-records");
|
|
9
|
+
exports.MAX_PUBLIC_SESSION_STATE_BYTES = 4 * 1024 * 1024;
|
|
10
|
+
function capturePublicSessionKey(value) {
|
|
11
|
+
if (!(value instanceof Uint8Array))
|
|
12
|
+
throw new TypeError('Invalid public session key');
|
|
13
|
+
const key = new Uint8Array(value);
|
|
14
|
+
// A caller may shadow length on a typed array or its subclass. Validate the
|
|
15
|
+
// owned plain copy, whose actual byte count is used by the crypto provider.
|
|
16
|
+
if (key.length !== 32) {
|
|
17
|
+
key.fill(0);
|
|
18
|
+
throw new TypeError('Invalid public session key');
|
|
19
|
+
}
|
|
20
|
+
return key;
|
|
21
|
+
}
|
|
22
|
+
function capturePublicSessionRequest(input) {
|
|
23
|
+
if (!input || typeof input !== 'object')
|
|
24
|
+
throw new Error('Invalid public session request');
|
|
25
|
+
const fields = Object.getOwnPropertyDescriptors(input);
|
|
26
|
+
for (const name of ['walletBindingId', 'publicState', 'recordDomains']) {
|
|
27
|
+
if (!fields[name] || !('value' in fields[name]))
|
|
28
|
+
throw new Error('Invalid public session request');
|
|
29
|
+
}
|
|
30
|
+
const walletBindingId = fields.walletBindingId.value;
|
|
31
|
+
const state = fields.publicState.value;
|
|
32
|
+
if (typeof walletBindingId !== 'string' ||
|
|
33
|
+
!/^[0-9a-f]{64}$/.test(walletBindingId) ||
|
|
34
|
+
!(state instanceof Uint8Array) ||
|
|
35
|
+
state.length === 0 ||
|
|
36
|
+
state.length > exports.MAX_PUBLIC_SESSION_STATE_BYTES)
|
|
37
|
+
throw new Error('Invalid public session request');
|
|
38
|
+
const domains = JSON.parse((0, private_records_1.privateRecordDomainSet)(fields.recordDomains.value));
|
|
39
|
+
return Object.freeze({
|
|
40
|
+
walletBindingId,
|
|
41
|
+
publicState: new Uint8Array(state),
|
|
42
|
+
recordDomains: Object.freeze(domains),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function capturePublicSessionCheckpoint(input) {
|
|
46
|
+
const descriptor = Object.getOwnPropertyDescriptor(input, 'checkpoint');
|
|
47
|
+
if (!descriptor || !('value' in descriptor))
|
|
48
|
+
throw new Error('Invalid public session checkpoint');
|
|
49
|
+
const value = descriptor.value;
|
|
50
|
+
if (!value || typeof value !== 'object')
|
|
51
|
+
throw new Error('Invalid public session checkpoint');
|
|
52
|
+
const fields = Object.getOwnPropertyDescriptors(value);
|
|
53
|
+
const names = [
|
|
54
|
+
'version',
|
|
55
|
+
'domain',
|
|
56
|
+
'recordId',
|
|
57
|
+
'profileId',
|
|
58
|
+
'nonce',
|
|
59
|
+
'ciphertext',
|
|
60
|
+
];
|
|
61
|
+
if (Reflect.ownKeys(fields).length !== names.length ||
|
|
62
|
+
names.some((name) => !fields[name] || !('value' in fields[name])))
|
|
63
|
+
throw new Error('Invalid public session checkpoint');
|
|
64
|
+
return Object.freeze(Object.fromEntries(names.map((name) => [name, fields[name].value])));
|
|
65
|
+
}
|
|
66
|
+
async function publicSessionStateDigest(state, guard) {
|
|
67
|
+
guard();
|
|
68
|
+
const digest = new Uint8Array(await globalThis.crypto.subtle.digest('SHA-256', state));
|
|
69
|
+
guard();
|
|
70
|
+
return digest;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=public-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-session.js","sourceRoot":"","sources":["../../src/public-session.ts"],"names":[],"mappings":"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"}
|
package/cjs/software.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.evmSubmissionFailure = exports.submitSignedEvmTransaction = exports.captureEvmSubmission = exports.INetworkType = exports.KeyringAccountType = exports.createKeyringHost = exports.SoftwareKeyring = void 0;
|
|
3
|
+
exports.MAX_PUBLIC_SESSION_STATE_BYTES = exports.evmSubmissionFailure = exports.submitSignedEvmTransaction = exports.captureEvmSubmission = exports.INetworkType = exports.KeyringAccountType = exports.createKeyringHost = exports.SoftwareKeyring = void 0;
|
|
4
4
|
/** Software-only entry: explicit host storage, no browser/device initialization. */
|
|
5
5
|
const host_keyring_1 = require("./host-keyring");
|
|
6
6
|
class SoftwareKeyring extends host_keyring_1.HostKeyring {
|
|
@@ -28,4 +28,6 @@ var evm_submission_1 = require("./transactions/evm-submission");
|
|
|
28
28
|
Object.defineProperty(exports, "captureEvmSubmission", { enumerable: true, get: function () { return evm_submission_1.captureEvmSubmission; } });
|
|
29
29
|
Object.defineProperty(exports, "submitSignedEvmTransaction", { enumerable: true, get: function () { return evm_submission_1.submitSignedEvmTransaction; } });
|
|
30
30
|
Object.defineProperty(exports, "evmSubmissionFailure", { enumerable: true, get: function () { return evm_submission_1.evmSubmissionFailure; } });
|
|
31
|
+
var public_session_1 = require("./public-session");
|
|
32
|
+
Object.defineProperty(exports, "MAX_PUBLIC_SESSION_STATE_BYTES", { enumerable: true, get: function () { return public_session_1.MAX_PUBLIC_SESSION_STATE_BYTES; } });
|
|
31
33
|
//# sourceMappingURL=software.js.map
|
package/cjs/software.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"software.js","sourceRoot":"","sources":["../../src/software.ts"],"names":[],"mappings":";;;AAAA,oFAAoF;AACpF,iDAA6C;AAI7C,MAAa,eAAgB,SAAQ,0BAAiC;IACpE,YAAY,IAAiB,EAAE,OAAuB;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,iBAAiB,CACnC,IAAiB,EACjB,IAAY,EACZ,QAAgB,EAChB,gBAA2B,EAC3B,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AApBD,0CAoBC;AAED,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAE1B,iCAA6C;AAApC,2GAAA,kBAAkB,OAAA;AAC3B,6DAAyD;AAAhD,+GAAA,YAAY,OAAA;AAiCrB,gEAIuC;AAHrC,sHAAA,oBAAoB,OAAA;AACpB,4HAAA,0BAA0B,OAAA;AAC1B,sHAAA,oBAAoB,OAAA"}
|
|
1
|
+
{"version":3,"file":"software.js","sourceRoot":"","sources":["../../src/software.ts"],"names":[],"mappings":";;;AAAA,oFAAoF;AACpF,iDAA6C;AAI7C,MAAa,eAAgB,SAAQ,0BAAiC;IACpE,YAAY,IAAiB,EAAE,OAAuB;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,iBAAiB,CACnC,IAAiB,EACjB,IAAY,EACZ,QAAgB,EAChB,gBAA2B,EAC3B,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AApBD,0CAoBC;AAED,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAE1B,iCAA6C;AAApC,2GAAA,kBAAkB,OAAA;AAC3B,6DAAyD;AAAhD,+GAAA,YAAY,OAAA;AAiCrB,gEAIuC;AAHrC,sHAAA,oBAAoB,OAAA;AACpB,4HAAA,0BAA0B,OAAA;AAC1B,sHAAA,oBAAoB,OAAA;AA0BtB,mDAAkE;AAAzD,gIAAA,8BAA8B,OAAA"}
|