@marigoldlabs/web3-tester 0.4.1 → 0.4.2

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 (59) hide show
  1. package/README.md +317 -11
  2. package/dist/anvil.d.ts.map +1 -1
  3. package/dist/anvil.js.map +1 -1
  4. package/dist/benchmark.d.ts +55 -0
  5. package/dist/benchmark.d.ts.map +1 -0
  6. package/dist/benchmark.js +168 -0
  7. package/dist/benchmark.js.map +1 -0
  8. package/dist/fixtures.js +2 -2
  9. package/dist/fixtures.js.map +1 -1
  10. package/dist/index.d.ts +13 -4
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +5 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/injected-provider.d.ts.map +1 -1
  15. package/dist/injected-provider.js +748 -25
  16. package/dist/injected-provider.js.map +1 -1
  17. package/dist/mock-wallet-controller.d.ts +150 -2
  18. package/dist/mock-wallet-controller.d.ts.map +1 -1
  19. package/dist/mock-wallet-controller.js +613 -24
  20. package/dist/mock-wallet-controller.js.map +1 -1
  21. package/dist/private-key-rpc-client.d.ts +144 -132
  22. package/dist/private-key-rpc-client.d.ts.map +1 -1
  23. package/dist/private-key-rpc-client.js +142 -20
  24. package/dist/private-key-rpc-client.js.map +1 -1
  25. package/dist/real-wallet-cache.d.ts +38 -0
  26. package/dist/real-wallet-cache.d.ts.map +1 -1
  27. package/dist/real-wallet-cache.js +143 -57
  28. package/dist/real-wallet-cache.js.map +1 -1
  29. package/dist/real-wallet-extension-fixtures.d.ts +35 -0
  30. package/dist/real-wallet-extension-fixtures.d.ts.map +1 -0
  31. package/dist/real-wallet-extension-fixtures.js +96 -0
  32. package/dist/real-wallet-extension-fixtures.js.map +1 -0
  33. package/dist/real-wallet-extension.d.ts +86 -0
  34. package/dist/real-wallet-extension.d.ts.map +1 -0
  35. package/dist/real-wallet-extension.js +245 -0
  36. package/dist/real-wallet-extension.js.map +1 -0
  37. package/dist/real-wallet-fixtures.d.ts.map +1 -1
  38. package/dist/real-wallet-fixtures.js +46 -31
  39. package/dist/real-wallet-fixtures.js.map +1 -1
  40. package/dist/real-wallet.d.ts +5 -14
  41. package/dist/real-wallet.d.ts.map +1 -1
  42. package/dist/real-wallet.js +668 -435
  43. package/dist/real-wallet.js.map +1 -1
  44. package/dist/safe.d.ts +311 -0
  45. package/dist/safe.d.ts.map +1 -0
  46. package/dist/safe.js +743 -0
  47. package/dist/safe.js.map +1 -0
  48. package/dist/types.d.ts +35 -1
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/wallet-personas.d.ts +99 -0
  51. package/dist/wallet-personas.d.ts.map +1 -0
  52. package/dist/wallet-personas.js +666 -0
  53. package/dist/wallet-personas.js.map +1 -0
  54. package/dist/walletconnect.d.ts +176 -9
  55. package/dist/walletconnect.d.ts.map +1 -1
  56. package/dist/walletconnect.js +514 -74
  57. package/dist/walletconnect.js.map +1 -1
  58. package/examples/playwright.config.ts +8 -0
  59. package/package.json +29 -3
@@ -1 +1 @@
1
- {"version":3,"file":"private-key-rpc-client.d.ts","sourceRoot":"","sources":["../src/private-key-rpc-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"private-key-rpc-client.d.ts","sourceRoot":"","sources":["../src/private-key-rpc-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,GAAG,EAET,MAAM,MAAM,CAAC;AAId,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AA4BF,KAAK,oBAAoB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AA4JrF,qBAAa,mBAAoB,YAAW,SAAS;IACnD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAM;IACtC,QAAQ,CAAC,uBAAuB,EAAE,KAAK,CAAC;QACtC,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC;QACV,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,IAAI,CAAC,EAAE,oBAAoB,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAM;IAER,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,gBAAgB,CAAS;gBAErB,OAAO,EAAE,0BAA0B;IAuBzC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA4GxD,kFAAkF;IAClF,IAAI,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qrBAeG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA8DugO,CAAC;uCAA6lC,CAAC;;;;;;;;;;;;;;;;;6eAAumoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA3E3t4B;IAED,wEAAwE;IAClE,iBAAiB,CAAC,OAAO,EAAE;QAC/B,eAAe,EAAE,GAAG,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;YAaa,qBAAqB;IAgBnC,OAAO,CAAC,wBAAwB;CAqCjC"}
@@ -1,6 +1,7 @@
1
1
  import { createPublicClient, createWalletClient, http, isAddress, } from 'viem';
2
2
  import { privateKeyToAccount } from 'viem/accounts';
3
3
  import { sepolia } from 'viem/chains';
4
+ import { providerError } from './errors.js';
4
5
  // Anvil/Hardhat chains are safe targets but viem does not mark them
5
6
  // `testnet: true`, so they need their own allowlist entry.
6
7
  const LOCAL_DEV_CHAIN_IDS = new Set([1337, 31337]);
@@ -18,6 +19,106 @@ const normalizeMessage = (message) => {
18
19
  return hex ? { raw: hex } : String(message ?? '');
19
20
  };
20
21
  const parseParams = (request) => Array.isArray(request.params) ? [...request.params] : [];
22
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
23
+ const parseAddressField = (value, field) => {
24
+ if (value === undefined)
25
+ return undefined;
26
+ if (typeof value === 'string' && isAddress(value))
27
+ return value;
28
+ throw new Error(`${field} must be a valid address.`);
29
+ };
30
+ const parseNullableAddressField = (value, field) => {
31
+ if (value === null)
32
+ return null;
33
+ return parseAddressField(value, field);
34
+ };
35
+ const parseHexField = (value, field) => {
36
+ if (value === undefined)
37
+ return undefined;
38
+ if (typeof value === 'string' && value.startsWith('0x'))
39
+ return value;
40
+ throw new Error(`${field} must be a 0x-prefixed hex string.`);
41
+ };
42
+ const parseHexArrayField = (value, field) => {
43
+ if (value === undefined)
44
+ return undefined;
45
+ if (!Array.isArray(value))
46
+ throw new Error(`${field} must be an array.`);
47
+ return value.map((entry, index) => {
48
+ if (typeof entry === 'string' && entry.startsWith('0x'))
49
+ return entry;
50
+ throw new Error(`${field}[${index}] must be a 0x-prefixed hex string.`);
51
+ });
52
+ };
53
+ const parseQuantity = (value, field) => {
54
+ if (value === undefined)
55
+ return undefined;
56
+ if (typeof value === 'bigint')
57
+ return value;
58
+ if (typeof value === 'number' && Number.isSafeInteger(value) && value >= 0)
59
+ return BigInt(value);
60
+ if (typeof value === 'string') {
61
+ try {
62
+ return BigInt(value);
63
+ }
64
+ catch {
65
+ // Fall through to the shared error below.
66
+ }
67
+ }
68
+ throw new Error(`${field} must be a non-negative integer, bigint, decimal string, or 0x-hex quantity.`);
69
+ };
70
+ const parseIndex = (value, field) => {
71
+ const quantity = parseQuantity(value, field);
72
+ if (quantity === undefined)
73
+ return undefined;
74
+ const parsed = Number(quantity);
75
+ if (!Number.isSafeInteger(parsed))
76
+ throw new Error(`${field} is too large to fit in a JavaScript number.`);
77
+ return parsed;
78
+ };
79
+ const parseChainId = (value) => parseIndex(value, 'chainId');
80
+ const transactionTypeAliases = {
81
+ '0x0': 'legacy',
82
+ '0x1': 'eip2930',
83
+ '0x2': 'eip1559',
84
+ '0x3': 'eip4844',
85
+ '0x4': 'eip7702',
86
+ legacy: 'legacy',
87
+ eip2930: 'eip2930',
88
+ eip1559: 'eip1559',
89
+ eip4844: 'eip4844',
90
+ eip7702: 'eip7702',
91
+ };
92
+ const parseTransactionType = (value) => {
93
+ if (value === undefined)
94
+ return undefined;
95
+ if (typeof value !== 'string')
96
+ throw new Error('type must be a transaction type string.');
97
+ const normalized = value.toLowerCase();
98
+ const type = transactionTypeAliases[normalized];
99
+ if (!type) {
100
+ throw new Error(`Unsupported transaction type "${value}". Expected legacy/eip2930/eip1559/eip4844/eip7702 or 0x0-0x4.`);
101
+ }
102
+ return type;
103
+ };
104
+ const parseAccessList = (value) => {
105
+ if (value === undefined)
106
+ return undefined;
107
+ if (!Array.isArray(value))
108
+ throw new Error('accessList must be an array.');
109
+ return value.map((entry, index) => {
110
+ if (!isRecord(entry))
111
+ throw new Error(`accessList[${index}] must be an object.`);
112
+ const address = parseAddressField(entry.address, `accessList[${index}].address`);
113
+ if (!address)
114
+ throw new Error(`accessList[${index}].address is required.`);
115
+ const storageKeys = parseHexArrayField(entry.storageKeys, `accessList[${index}].storageKeys`);
116
+ return {
117
+ address,
118
+ storageKeys: storageKeys ?? [],
119
+ };
120
+ });
121
+ };
21
122
  // Dapp-supplied authorization entries are RPC-shaped (hex chainId/nonce/
22
123
  // yParity) while viem's sendTransaction expects numbers — a silent
23
124
  // passthrough would RLP-encode garbage, so malformed entries fail loudly.
@@ -142,30 +243,23 @@ export class PrivateKeyRpcClient {
142
243
  throw new Error('eth_sendTransaction requires a transaction object.');
143
244
  }
144
245
  await this.assertRpcChainMatches();
145
- const request = {
146
- account: this.account,
147
- chain: this.chain,
148
- to: transaction.to,
149
- data: transaction.data,
150
- value: transaction.value ? BigInt(transaction.value) : undefined,
151
- gas: transaction.gas ? BigInt(transaction.gas) : undefined,
152
- gasPrice: transaction.gasPrice ? BigInt(transaction.gasPrice) : undefined,
153
- nonce: transaction.nonce ? Number(BigInt(transaction.nonce)) : undefined,
154
- maxFeePerGas: transaction.maxFeePerGas
155
- ? BigInt(transaction.maxFeePerGas)
156
- : undefined,
157
- maxPriorityFeePerGas: transaction.maxPriorityFeePerGas
158
- ? BigInt(transaction.maxPriorityFeePerGas)
159
- : undefined,
160
- authorizationList: parseAuthorizationList(transaction.authorizationList),
161
- };
246
+ const request = this.toSendTransactionRequest(transaction);
162
247
  const hash = await this.walletClient.sendTransaction(request);
163
248
  this.sentTransactions.push(hash);
164
249
  this.sentTransactionRequests.push({
250
+ accessList: request.accessList,
251
+ from: this.account.address,
252
+ gas: request.gas?.toString(),
253
+ gasPrice: request.gasPrice?.toString(),
165
254
  hash,
166
- to: transaction.to,
167
- data: transaction.data,
168
- value: transaction.value ? String(transaction.value) : undefined,
255
+ maxFeePerBlobGas: request.maxFeePerBlobGas?.toString(),
256
+ maxFeePerGas: request.maxFeePerGas?.toString(),
257
+ maxPriorityFeePerGas: request.maxPriorityFeePerGas?.toString(),
258
+ nonce: request.nonce,
259
+ to: request.to,
260
+ data: request.data,
261
+ type: request.type,
262
+ value: request.value?.toString(),
169
263
  });
170
264
  return hash;
171
265
  }
@@ -201,5 +295,33 @@ export class PrivateKeyRpcClient {
201
295
  }
202
296
  this.rpcChainVerified = true;
203
297
  }
298
+ toSendTransactionRequest(transaction) {
299
+ const from = parseAddressField(transaction.from, 'from');
300
+ if (from && from.toLowerCase() !== this.account.address.toLowerCase()) {
301
+ throw providerError(4100, `eth_sendTransaction requested from ${from}, but this PrivateKeyRpcClient only controls ${this.account.address}.`);
302
+ }
303
+ const chainId = parseChainId(transaction.chainId);
304
+ if (chainId !== undefined && chainId !== this.chain.id) {
305
+ throw new Error(`eth_sendTransaction chainId ${chainId} does not match configured chain "${this.chain.name}" (id ${this.chain.id}).`);
306
+ }
307
+ return {
308
+ account: this.account,
309
+ accessList: parseAccessList(transaction.accessList),
310
+ authorizationList: parseAuthorizationList(transaction.authorizationList),
311
+ blobVersionedHashes: parseHexArrayField(transaction.blobVersionedHashes, 'blobVersionedHashes'),
312
+ blobs: parseHexArrayField(transaction.blobs, 'blobs'),
313
+ chain: this.chain,
314
+ data: parseHexField(transaction.data ?? transaction.input, 'data'),
315
+ gas: parseQuantity(transaction.gas, 'gas'),
316
+ gasPrice: parseQuantity(transaction.gasPrice, 'gasPrice'),
317
+ maxFeePerBlobGas: parseQuantity(transaction.maxFeePerBlobGas, 'maxFeePerBlobGas'),
318
+ maxFeePerGas: parseQuantity(transaction.maxFeePerGas, 'maxFeePerGas'),
319
+ maxPriorityFeePerGas: parseQuantity(transaction.maxPriorityFeePerGas, 'maxPriorityFeePerGas'),
320
+ nonce: parseIndex(transaction.nonce, 'nonce'),
321
+ to: parseNullableAddressField(transaction.to, 'to'),
322
+ type: parseTransactionType(transaction.type),
323
+ value: parseQuantity(transaction.value, 'value'),
324
+ };
325
+ }
204
326
  }
205
327
  //# sourceMappingURL=private-key-rpc-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"private-key-rpc-client.js","sourceRoot":"","sources":["../src/private-key-rpc-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"private-key-rpc-client.js","sourceRoot":"","sources":["../src/private-key-rpc-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,EACJ,SAAS,GAOV,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAW5C,oEAAoE;AACpE,2DAA2D;AAC3D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnD,MAAM,WAAW,GAAG,CAAC,KAAY,EAAW,EAAE,CAC5C,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAE9D,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAO,EAAE;IACtD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,OAAe,CAAC,CAAC,CAAE,KAAK,OAAO,EAAU,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,KAAc,EAAmB,EAAE,CAChD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AAEnF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAyB,EAAE;IACnE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAuB,EAAa,EAAE,CACzD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAuB3D,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAE,KAAa,EAAuB,EAAE;IAC/E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,2BAA2B,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAAc,EAAE,KAAa,EAA8B,EAAE;IAC9F,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,KAAa,EAAmB,EAAE;IACvE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAY,CAAC;IAC7E,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oCAAoC,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAE,KAAa,EAA8B,EAAE;IACvF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,KAAY,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,qCAAqC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,KAAa,EAAsB,EAAE;IAC1E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACjG,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8EAA8E,CAAC,CAAC;AAC1G,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,KAAa,EAAsB,EAAE;IACvE,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8CAA8C,CAAC,CAAC;IAC3G,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAc,EAAsB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAE1F,MAAM,sBAAsB,GAAyC;IACnE,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAoC,EAAE;IAChF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,iCAAiC,KAAK,gEAAgE,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAc,EAA0B,EAAE;IACjE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,sBAAsB,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,KAAK,WAAW,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,wBAAwB,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,KAAK,eAAe,CAAC,CAAC;QAC9F,OAAO;YACL,OAAO;YACP,WAAW,EAAE,WAAW,IAAI,EAAE;SAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,yEAAyE;AACzE,mEAAmE;AACnE,0EAA0E;AAC1E,MAAM,sBAAsB,GAAG,CAC7B,KAAc,EACwF,EAAE;IACxG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAY,CAAC;QAClE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,qBAAqB,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAE,IAAY,EAAU,EAAE;YACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,GAAG,CAAC;YACb,CAAC;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,KAAK,IAAI,qCAAqC,CAAC,CAAC;QAC5F,CAAC,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,OAAc;YACvB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;YAC1C,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;YACpC,CAAC,EAAE,IAAI,CAAC,CAAQ;YAChB,CAAC,EAAE,IAAI,CAAC,CAAQ;YAChB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,SAAS,CAAC;SAChD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,OAAO,mBAAmB;IACrB,OAAO,CAAU;IACjB,KAAK,CAAQ;IACb,gBAAgB,GAAU,EAAE,CAAC;IAC7B,uBAAuB,GAc3B,EAAE,CAAC;IAES,YAAY,CAAC;IACb,YAAY,CAAe;IACpC,gBAAgB,GAAG,KAAK,CAAC;IAEjC,YAAY,OAAmC;QAC7C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,2CAA2C;gBACpH,uHAAuH;gBACvH,+CAA+C,CAClD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAE5E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS;SACV,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEpC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,qEAAqE;YACrE,sEAAsE;YACtE,2DAA2D;YAC3D,KAAK,cAAc;gBACjB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEhC,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,iEAAiE;gBACjE,oEAAoE;gBACpE,qEAAqE;gBACrE,WAAW;gBACX,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;gBAC/B,MAAM,cAAc,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;gBACrE,MAAM,eAAe,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;gBACxE,MAAM,OAAO,GACX,cAAc,IAAI,CAAC,eAAe,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9E,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;oBACnC,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;gBAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;oBACnC,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,sEAAsE;YACtE,0DAA0D;YAC1D,KAAK,sBAAsB,CAAC;YAC5B,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC7B,MAAM,MAAM,GACV,OAAO,SAAS,KAAK,QAAQ;oBAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;oBACvB,CAAC,CAAC,SAAS,CAAC;gBAEhB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;oBACrC,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,KAAK,mBAAmB;gBACtB,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;YAEJ,uEAAuE;YACvE,uBAAuB;YACvB,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAC3C,OAA0D,CAC3D,CAAQ,CAAC;gBACV,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,WAAW,CAAC,GAAG,MAA+C,CAAC;gBACtE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACxE,CAAC;gBAED,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBAE3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAClD,OAAyD,CAC1D,CAAC;gBACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE;oBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;oBACtC,IAAI;oBACJ,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,QAAQ,EAAE;oBACtD,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE;oBAC9C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,EAAE,QAAQ,EAAE;oBAC9D,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE;iBACjC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAC9B,OAA0D,CAC3D,CAAC;QACN,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,iBAAiB,CAAC,OAKvB;QACC,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SACyB,CAAC,CAAC;IACzD,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,8BAA8B;IACtB,KAAK,CAAC,qBAAqB;QACjC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QAC7D,IAAI,eAAe,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,qCAAqC,eAAe,uCAAuC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK;gBACnI,4DAA4D,CAC/D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAEO,wBAAwB,CAC9B,WAAoC;QAEpC,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YACtE,MAAM,aAAa,CACjB,IAAI,EACJ,sCAAsC,IAAI,gDAAgD,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAClH,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CACb,+BAA+B,OAAO,qCAAqC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CACrH,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC;YACnD,iBAAiB,EAAE,sBAAsB,CAAC,WAAW,CAAC,iBAAiB,CAAC;YACxE,mBAAmB,EAAE,kBAAkB,CAAC,WAAW,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;YAC/F,KAAK,EAAE,kBAAkB,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;YACrD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;YAClE,GAAG,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;YAC1C,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC;YACzD,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;YACjF,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC;YACrE,oBAAoB,EAAE,aAAa,CAAC,WAAW,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;YAC7F,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;YAC7C,EAAE,EAAE,yBAAyB,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC;YACnD,IAAI,EAAE,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5C,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;SACjD,CAAC;IACJ,CAAC;CACF"}
@@ -1,3 +1,4 @@
1
+ import { type RealWalletExtensionLaunchOptions, type RealWalletExtensionSession } from './real-wallet-extension.js';
1
2
  import { type RealWalletSession, type RealWalletSetup, type WalletGeneration } from './real-wallet.js';
2
3
  export type BuildWalletProfileOptions = {
3
4
  /** Unpacked MetaMask extension directory (see prepareMetaMaskExtension). */
@@ -34,6 +35,35 @@ export type BuildWalletProfileOptions = {
34
35
  run(session: RealWalletSession): Promise<void>;
35
36
  };
36
37
  };
38
+ export type BuildWalletExtensionProfileOptions = Omit<RealWalletExtensionLaunchOptions, 'profileDir'> & {
39
+ /**
40
+ * User-controlled cache identity for the setup callback and any external
41
+ * wallet state it depends on (seed phrase, imported key, test account,
42
+ * network config, etc.). Bump this whenever setup changes.
43
+ */
44
+ cacheKey: string;
45
+ /** Directory cached profiles live in. Defaults to ~/.cache/web3-tester/profiles. */
46
+ cacheDir?: string;
47
+ /** Rebuild even if a cached profile exists. */
48
+ force?: boolean;
49
+ /**
50
+ * One-time extension setup baked into the cached profile. Use this to
51
+ * unlock/import/onboard Rabby, Coinbase Wallet, Phantom, or other
52
+ * non-MetaMask Chromium wallets with wallet-specific Playwright locators.
53
+ */
54
+ setup?: {
55
+ run(session: RealWalletExtensionSession): Promise<void>;
56
+ };
57
+ /**
58
+ * Wait for extension storage writes before closing. Defaults to true when
59
+ * setup is provided, false otherwise. Pass false for setup callbacks that do
60
+ * not mutate persisted extension state.
61
+ */
62
+ waitForState?: boolean | {
63
+ quietMs?: number;
64
+ timeoutMs?: number;
65
+ };
66
+ };
37
67
  /**
38
68
  * Polls the profile's extension storage (IndexedDB leveldb + blob and Local
39
69
  * Extension Settings) from Node until a write newer than `since` lands and
@@ -56,6 +86,14 @@ export declare const defaultProfileCacheDir: () => string;
56
86
  * never launch the cached directory directly.
57
87
  */
58
88
  export declare function buildWalletProfile(options: BuildWalletProfileOptions): Promise<string>;
89
+ /**
90
+ * Builds (once) and returns a cached profile for any unpacked Chromium wallet
91
+ * extension. The caller owns wallet-specific onboarding/unlock selectors in
92
+ * `setup.run`; this helper only supplies the persistent profile, extension
93
+ * launch, cache locking, ready marker, and optional extension-state flush.
94
+ * Use cloneWalletProfile to obtain disposable per-test copies.
95
+ */
96
+ export declare function buildWalletExtensionProfile(options: BuildWalletExtensionProfileOptions): Promise<string>;
59
97
  /**
60
98
  * Copies a cached profile into a disposable directory (per test or per
61
99
  * worker) so parallel runs never collide on Chromium's profile singleton
@@ -1 +1 @@
1
- {"version":3,"file":"real-wallet-cache.d.ts","sourceRoot":"","sources":["../src/real-wallet-cache.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAyB1B,MAAM,MAAM,yBAAyB,GAAG;IACtC,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,KAAK,EAAE,eAAe,CAAC;IACvB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CAC7E,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACrE,OAAO,CAAC,IAAI,CAAC,CAsDf;AAED,eAAO,MAAM,sBAAsB,QAAO,MACoB,CAAC;AAiB/D;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwH5F;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAmBjB"}
1
+ {"version":3,"file":"real-wallet-cache.d.ts","sourceRoot":"","sources":["../src/real-wallet-cache.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,gCAAgC,EACrC,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AA0B1B,MAAM,MAAM,yBAAyB,GAAG;IACtC,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,KAAK,EAAE,eAAe,CAAC;IACvB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CAC7E,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG,IAAI,CAAC,gCAAgC,EAAE,YAAY,CAAC,GAAG;IACtG;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACpE;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACrE,OAAO,CAAC,IAAI,CAAC,CAsDf;AAED,eAAO,MAAM,sBAAsB,QAAO,MACoB,CAAC;AA+H/D;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkD5F;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,MAAM,CAAC,CAyCjB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAmBjB"}
@@ -4,9 +4,11 @@ import os from 'node:os';
4
4
  import path from 'node:path';
5
5
  import { mnemonicToAccount } from 'viem/accounts';
6
6
  import { extensionManifestVersion } from './metamask-extension.js';
7
+ import { launchRealWalletExtension, readExtensionManifest, } from './real-wallet-extension.js';
7
8
  import { passwordForSetup } from './real-wallet-setup.js';
8
9
  import { launchRealWallet, resolveRealWalletProfile, } from './real-wallet.js';
9
10
  const READY_MARKER = '.web3-tester-profile-ready';
11
+ const METAMASK_PROFILE_CACHE_SCHEMA = 2;
10
12
  // Chromium singleton artifacts must never travel with a cloned profile.
11
13
  const SINGLETON_FILES = ['SingletonLock', 'SingletonCookie', 'SingletonSocket'];
12
14
  // Regenerable Chromium cache subtrees dominate a cached profile's size;
@@ -92,6 +94,7 @@ export async function waitForExtensionStatePersisted(profileDir, extensionId, op
92
94
  export const defaultProfileCacheDir = () => path.join(os.homedir(), '.cache', 'web3-tester', 'profiles');
93
95
  const cacheKey = (options) => createHash('sha256')
94
96
  .update(JSON.stringify({
97
+ cacheSchema: METAMASK_PROFILE_CACHE_SCHEMA,
95
98
  seedPhrase: options.setup.seedPhrase,
96
99
  password: passwordForSetup(options.setup),
97
100
  extensionVersion: extensionManifestVersion(options.extensionPath),
@@ -99,20 +102,30 @@ const cacheKey = (options) => createHash('sha256')
99
102
  }))
100
103
  .digest('hex')
101
104
  .slice(0, 16);
102
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
103
- /**
104
- * Builds (once) and returns a cached, fully onboarded MetaMask profile
105
- * directory keyed by (seed phrase, password, extension version). The first
106
- * call walks MetaMask onboarding in a real browser; subsequent calls return
107
- * instantly. Use cloneWalletProfile to obtain a disposable per-test copy —
108
- * never launch the cached directory directly.
109
- */
110
- export async function buildWalletProfile(options) {
111
- if (!options.setup.seedPhrase) {
112
- throw new Error('buildWalletProfile requires setup.seedPhrase.');
105
+ const extensionProfileCacheKey = (options) => {
106
+ const manifest = readExtensionManifest(options.extensionPath);
107
+ const userKey = options.cacheKey.trim();
108
+ if (!userKey) {
109
+ throw new Error('buildWalletExtensionProfile requires a non-empty cacheKey.');
113
110
  }
111
+ return createHash('sha256')
112
+ .update(JSON.stringify({
113
+ kind: 'real-wallet-extension',
114
+ extensionPath: path.resolve(options.extensionPath),
115
+ extensionId: options.extensionId,
116
+ extensionName: options.extensionName,
117
+ manifestName: manifest.name,
118
+ manifestVersion: manifest.version,
119
+ initialPage: options.initialPage,
120
+ userKey,
121
+ }))
122
+ .digest('hex')
123
+ .slice(0, 16);
124
+ };
125
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
126
+ const buildCachedProfile = async (options) => {
114
127
  const cacheDir = options.cacheDir ?? defaultProfileCacheDir();
115
- const profileDir = path.join(cacheDir, cacheKey(options));
128
+ const profileDir = path.join(cacheDir, options.cacheKey);
116
129
  const marker = path.join(profileDir, READY_MARKER);
117
130
  if (options.force) {
118
131
  fs.rmSync(profileDir, { recursive: true, force: true });
@@ -139,31 +152,27 @@ export async function buildWalletProfile(options) {
139
152
  catch {
140
153
  if (lockIsStale()) {
141
154
  fs.rmSync(lockDir, { recursive: true, force: true });
142
- return buildWalletProfile(options);
155
+ return buildCachedProfile(options);
143
156
  }
144
157
  // Keep waiting as long as the builder's lock stays fresh — the builder
145
- // heartbeats the lock every 60s precisely because a customize build can
146
- // run well past the 5-minute stale threshold. A fixed deadline shorter
147
- // than that would abandon a healthy builder. The hard ceiling only
148
- // backstops a hang that somehow keeps the lock fresh without finishing.
158
+ // heartbeats the lock every 60s precisely because setup/customize builds
159
+ // can run well past the 5-minute stale threshold. A fixed deadline
160
+ // shorter than that would abandon a healthy builder. The hard ceiling
161
+ // only backstops a hang that somehow keeps the lock fresh without
162
+ // finishing.
149
163
  const deadline = Date.now() + 1_800_000;
150
164
  while (Date.now() < deadline) {
151
165
  if (fs.existsSync(marker)) {
152
166
  return profileDir;
153
167
  }
154
168
  if (!fs.existsSync(lockDir) || lockIsStale()) {
155
- // The builder died (or stalled past the stale threshold) without
156
- // producing a profile; take over.
157
169
  fs.rmSync(lockDir, { recursive: true, force: true });
158
- return buildWalletProfile(options);
170
+ return buildCachedProfile(options);
159
171
  }
160
172
  await sleep(250);
161
173
  }
162
- throw new Error(`Timed out waiting for another process to finish building the wallet profile at ${profileDir}.`);
174
+ throw new Error(`Timed out waiting for another process to finish building the ${options.label} at ${profileDir}.`);
163
175
  }
164
- // Builds with a customize hook can exceed the 5-minute stale-lock
165
- // threshold; refresh the lock mtime so a waiting worker never steals it
166
- // mid-build.
167
176
  const heartbeat = setInterval(() => {
168
177
  try {
169
178
  const now = new Date();
@@ -177,39 +186,7 @@ export async function buildWalletProfile(options) {
177
186
  try {
178
187
  fs.rmSync(profileDir, { recursive: true, force: true });
179
188
  fs.mkdirSync(profileDir, { recursive: true });
180
- const onboardStartedAt = Date.now();
181
- const session = await launchRealWallet({
182
- extensionPath: options.extensionPath,
183
- profileDir,
184
- setup: options.setup,
185
- headless: options.headless,
186
- generation: options.generation,
187
- // Verifying against the seed-derived address guarantees the build
188
- // actually imported a wallet — a silently skipped onboarding would
189
- // otherwise produce a cached profile with no vault.
190
- expectedAddress: mnemonicToAccount(options.setup.seedPhrase).address,
191
- });
192
- // 13.x flushes extension state through a debounced write (safe-reload's
193
- // OperationSafener, a 1000ms trailing-edge debounce around
194
- // persistenceManager.set()); wait for the post-onboarding (and, when
195
- // customizing, post-mutation) write to land and stay quiet before
196
- // closing — a missed flush silently replays onboarding or loses the
197
- // customization.
198
- if (options.customize) {
199
- const mutationsStartedAt = Date.now();
200
- await options.customize.run(session);
201
- await waitForExtensionStatePersisted(profileDir, session.extensionId, {
202
- since: mutationsStartedAt,
203
- timeoutMs: 20_000,
204
- });
205
- }
206
- else {
207
- await waitForExtensionStatePersisted(profileDir, session.extensionId, {
208
- since: onboardStartedAt,
209
- timeoutMs: 15_000,
210
- });
211
- }
212
- await session.close();
189
+ await options.build(profileDir);
213
190
  fs.writeFileSync(marker, JSON.stringify({ createdAt: new Date().toISOString() }));
214
191
  return profileDir;
215
192
  }
@@ -221,6 +198,115 @@ export async function buildWalletProfile(options) {
221
198
  clearInterval(heartbeat);
222
199
  fs.rmSync(lockDir, { recursive: true, force: true });
223
200
  }
201
+ };
202
+ /**
203
+ * Builds (once) and returns a cached, fully onboarded MetaMask profile
204
+ * directory keyed by (seed phrase, password, extension version). The first
205
+ * call walks MetaMask onboarding in a real browser; subsequent calls return
206
+ * instantly. Use cloneWalletProfile to obtain a disposable per-test copy —
207
+ * never launch the cached directory directly.
208
+ */
209
+ export async function buildWalletProfile(options) {
210
+ const seedPhrase = options.setup.seedPhrase;
211
+ if (!seedPhrase) {
212
+ throw new Error('buildWalletProfile requires setup.seedPhrase.');
213
+ }
214
+ return buildCachedProfile({
215
+ cacheDir: options.cacheDir,
216
+ cacheKey: cacheKey(options),
217
+ force: options.force,
218
+ label: 'wallet profile',
219
+ build: async (profileDir) => {
220
+ const onboardStartedAt = Date.now();
221
+ const session = await launchRealWallet({
222
+ extensionPath: options.extensionPath,
223
+ profileDir,
224
+ setup: options.setup,
225
+ headless: options.headless,
226
+ generation: options.generation,
227
+ // Verifying against the seed-derived address guarantees the build
228
+ // actually imported a wallet — a silently skipped onboarding would
229
+ // otherwise produce a cached profile with no vault.
230
+ expectedAddress: mnemonicToAccount(seedPhrase).address,
231
+ });
232
+ try {
233
+ // 13.x flushes extension state through a debounced write (safe-reload's
234
+ // OperationSafener, a 1000ms trailing-edge debounce around
235
+ // persistenceManager.set()); wait for the post-onboarding (and, when
236
+ // customizing, post-mutation) write to land and stay quiet before
237
+ // closing — a missed flush silently replays onboarding or loses the
238
+ // customization.
239
+ if (options.customize) {
240
+ const mutationsStartedAt = Date.now();
241
+ await options.customize.run(session);
242
+ await waitForExtensionStatePersisted(profileDir, session.extensionId, {
243
+ since: mutationsStartedAt,
244
+ timeoutMs: 20_000,
245
+ });
246
+ }
247
+ else {
248
+ await waitForExtensionStatePersisted(profileDir, session.extensionId, {
249
+ since: onboardStartedAt,
250
+ timeoutMs: 15_000,
251
+ });
252
+ }
253
+ }
254
+ finally {
255
+ await session.close();
256
+ }
257
+ },
258
+ });
259
+ }
260
+ /**
261
+ * Builds (once) and returns a cached profile for any unpacked Chromium wallet
262
+ * extension. The caller owns wallet-specific onboarding/unlock selectors in
263
+ * `setup.run`; this helper only supplies the persistent profile, extension
264
+ * launch, cache locking, ready marker, and optional extension-state flush.
265
+ * Use cloneWalletProfile to obtain disposable per-test copies.
266
+ */
267
+ export async function buildWalletExtensionProfile(options) {
268
+ return buildCachedProfile({
269
+ cacheDir: options.cacheDir,
270
+ cacheKey: extensionProfileCacheKey(options),
271
+ force: options.force,
272
+ label: 'wallet extension profile',
273
+ build: async (profileDir) => {
274
+ const session = await launchRealWalletExtension({
275
+ baseURL: options.baseURL,
276
+ extensionId: options.extensionId,
277
+ extensionName: options.extensionName,
278
+ extensionPath: options.extensionPath,
279
+ headless: options.headless,
280
+ initialPage: options.initialPage,
281
+ launchArgs: options.launchArgs,
282
+ locale: options.locale,
283
+ profileDir,
284
+ slowMo: options.slowMo,
285
+ });
286
+ try {
287
+ if (options.setup) {
288
+ const setupStartedAt = Date.now();
289
+ await options.setup.run(session);
290
+ const waitForState = options.waitForState ?? true;
291
+ if (waitForState) {
292
+ await waitForExtensionStatePersisted(profileDir, session.extensionId, {
293
+ since: setupStartedAt,
294
+ ...(typeof waitForState === 'object' ? waitForState : {}),
295
+ });
296
+ }
297
+ }
298
+ else if (options.waitForState && typeof options.waitForState === 'object') {
299
+ await waitForExtensionStatePersisted(profileDir, session.extensionId, options.waitForState);
300
+ }
301
+ else if (options.waitForState === true) {
302
+ await waitForExtensionStatePersisted(profileDir, session.extensionId);
303
+ }
304
+ }
305
+ finally {
306
+ await session.close();
307
+ }
308
+ },
309
+ });
224
310
  }
225
311
  /**
226
312
  * Copies a cached profile into a disposable directory (per test or per
@@ -1 +1 @@
1
- {"version":3,"file":"real-wallet-cache.js","sourceRoot":"","sources":["../src/real-wallet-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"real-wallet-cache.js","sourceRoot":"","sources":["../src/real-wallet-cache.ts"],"names":[],"mappings":"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"}