zksync-sso 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +11 -2
  2. package/dist/_cjs/client/session/actions/session.js +53 -1
  3. package/dist/_cjs/client/session/actions/session.js.map +1 -1
  4. package/dist/_cjs/client/session/client.js +19 -0
  5. package/dist/_cjs/client/session/client.js.map +1 -1
  6. package/dist/_cjs/client/session/decorators/wallet.js +39 -0
  7. package/dist/_cjs/client/session/decorators/wallet.js.map +1 -1
  8. package/dist/_cjs/client-auth-server/Signer.js +25 -1
  9. package/dist/_cjs/client-auth-server/Signer.js.map +1 -1
  10. package/dist/_cjs/client-auth-server/WalletProvider.js +3 -1
  11. package/dist/_cjs/client-auth-server/WalletProvider.js.map +1 -1
  12. package/dist/_cjs/utils/helpers.js +26 -0
  13. package/dist/_cjs/utils/helpers.js.map +1 -1
  14. package/dist/_cjs/utils/session.js +283 -1
  15. package/dist/_cjs/utils/session.js.map +1 -1
  16. package/dist/_esm/client/session/actions/session.js +59 -1
  17. package/dist/_esm/client/session/actions/session.js.map +1 -1
  18. package/dist/_esm/client/session/client.js +20 -0
  19. package/dist/_esm/client/session/client.js.map +1 -1
  20. package/dist/_esm/client/session/decorators/wallet.js +47 -0
  21. package/dist/_esm/client/session/decorators/wallet.js.map +1 -1
  22. package/dist/_esm/client-auth-server/Signer.js +25 -1
  23. package/dist/_esm/client-auth-server/Signer.js.map +1 -1
  24. package/dist/_esm/client-auth-server/WalletProvider.js +3 -1
  25. package/dist/_esm/client-auth-server/WalletProvider.js.map +1 -1
  26. package/dist/_esm/utils/helpers.js +24 -0
  27. package/dist/_esm/utils/helpers.js.map +1 -1
  28. package/dist/_esm/utils/session.js +296 -1
  29. package/dist/_esm/utils/session.js.map +1 -1
  30. package/dist/_types/client/session/actions/session.d.ts +26 -1
  31. package/dist/_types/client/session/actions/session.d.ts.map +1 -1
  32. package/dist/_types/client/session/client.d.ts +6 -1
  33. package/dist/_types/client/session/client.d.ts.map +1 -1
  34. package/dist/_types/client/session/decorators/wallet.d.ts.map +1 -1
  35. package/dist/_types/client-auth-server/Signer.d.ts +10 -1
  36. package/dist/_types/client-auth-server/Signer.d.ts.map +1 -1
  37. package/dist/_types/client-auth-server/WalletProvider.d.ts +8 -1
  38. package/dist/_types/client-auth-server/WalletProvider.d.ts.map +1 -1
  39. package/dist/_types/utils/helpers.d.ts +7 -0
  40. package/dist/_types/utils/helpers.d.ts.map +1 -1
  41. package/dist/_types/utils/session.d.ts +51 -0
  42. package/dist/_types/utils/session.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/client/session/actions/session.ts +85 -2
  45. package/src/client/session/client.ts +28 -1
  46. package/src/client/session/decorators/wallet.ts +59 -3
  47. package/src/client-auth-server/Signer.ts +17 -1
  48. package/src/client-auth-server/WalletProvider.ts +6 -1
  49. package/src/utils/helpers.ts +28 -0
  50. package/src/utils/session.ts +356 -1
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPeriodIdsForTransaction = exports.SessionStatus = exports.ConstraintCondition = exports.LimitZero = exports.LimitUnlimited = exports.LimitType = void 0;
3
+ exports.SessionEventType = exports.SessionErrorType = exports.getPeriodIdsForTransaction = exports.SessionStatus = exports.ConstraintCondition = exports.LimitZero = exports.LimitUnlimited = exports.LimitType = void 0;
4
+ exports.validateSessionTransaction = validateSessionTransaction;
4
5
  const viem_1 = require("viem");
6
+ const helpers_js_1 = require("./helpers.js");
5
7
  var LimitType;
6
8
  (function (LimitType) {
7
9
  LimitType[LimitType["Unlimited"] = 0] = "Unlimited";
@@ -61,4 +63,284 @@ const getPeriodIdsForTransaction = (args) => {
61
63
  return periodIds;
62
64
  };
63
65
  exports.getPeriodIdsForTransaction = getPeriodIdsForTransaction;
66
+ var SessionErrorType;
67
+ (function (SessionErrorType) {
68
+ SessionErrorType["SessionInactive"] = "session_inactive";
69
+ SessionErrorType["SessionExpired"] = "session_expired";
70
+ SessionErrorType["FeeLimitExceeded"] = "fee_limit_exceeded";
71
+ SessionErrorType["NoCallPolicy"] = "no_call_policy";
72
+ SessionErrorType["NoTransferPolicy"] = "no_transfer_policy";
73
+ SessionErrorType["MaxValuePerUseExceeded"] = "max_value_per_use_exceeded";
74
+ SessionErrorType["ValueLimitExceeded"] = "value_limit_exceeded";
75
+ SessionErrorType["ConstraintIndexOutOfBounds"] = "constraint_index_out_of_bounds";
76
+ SessionErrorType["NoLimitStateFound"] = "no_limit_state_found";
77
+ SessionErrorType["ParameterLimitExceeded"] = "parameter_limit_exceeded";
78
+ SessionErrorType["ConstraintEqualViolated"] = "constraint_equal_violated";
79
+ SessionErrorType["ConstraintGreaterViolated"] = "constraint_greater_violated";
80
+ SessionErrorType["ConstraintLessViolated"] = "constraint_less_violated";
81
+ SessionErrorType["ConstraintGreaterEqualViolated"] = "constraint_greater_equal_violated";
82
+ SessionErrorType["ConstraintLessEqualViolated"] = "constraint_less_equal_violated";
83
+ SessionErrorType["ConstraintNotEqualViolated"] = "constraint_not_equal_violated";
84
+ })(SessionErrorType || (exports.SessionErrorType = SessionErrorType = {}));
85
+ var SessionEventType;
86
+ (function (SessionEventType) {
87
+ SessionEventType["Expired"] = "session_expired";
88
+ SessionEventType["Revoked"] = "session_revoked";
89
+ SessionEventType["Inactive"] = "session_inactive";
90
+ })(SessionEventType || (exports.SessionEventType = SessionEventType = {}));
91
+ function validateSessionTransaction(args) {
92
+ const { sessionState, sessionConfig, transaction, currentTimestamp } = args;
93
+ const timestamp = currentTimestamp || BigInt(Math.floor(Date.now() / 1000));
94
+ if (sessionState.status !== SessionStatus.Active) {
95
+ return {
96
+ valid: false,
97
+ error: {
98
+ type: SessionErrorType.SessionInactive,
99
+ message: "Session is not active",
100
+ },
101
+ };
102
+ }
103
+ if (sessionConfig.expiresAt <= timestamp) {
104
+ return {
105
+ valid: false,
106
+ error: {
107
+ type: SessionErrorType.SessionExpired,
108
+ message: "Session has expired",
109
+ },
110
+ };
111
+ }
112
+ const to = (0, viem_1.getAddress)(transaction.to.toLowerCase());
113
+ const value = transaction.value || 0n;
114
+ const data = transaction.data || "0x";
115
+ const gas = transaction.gas || 0n;
116
+ const selector = data.length >= 10 ? data.slice(0, 10) : undefined;
117
+ if (!transaction.paymaster) {
118
+ const maxFee = (0, helpers_js_1.calculateMaxFee)({
119
+ gas,
120
+ gasPrice: transaction.gasPrice,
121
+ maxFeePerGas: transaction.maxFeePerGas,
122
+ maxPriorityFeePerGas: transaction.maxPriorityFeePerGas,
123
+ });
124
+ if (maxFee > sessionState.feesRemaining) {
125
+ return {
126
+ valid: false,
127
+ error: {
128
+ type: SessionErrorType.FeeLimitExceeded,
129
+ message: `Transaction max fee ${maxFee} exceeds remaining fee limit ${sessionState.feesRemaining}`,
130
+ },
131
+ };
132
+ }
133
+ }
134
+ const isContractCall = !!selector;
135
+ if (isContractCall) {
136
+ const policies = sessionConfig.callPolicies.filter((policy) => policy.target === to && policy.selector === selector);
137
+ if (!policies.length) {
138
+ return {
139
+ valid: false,
140
+ error: {
141
+ type: SessionErrorType.NoCallPolicy,
142
+ message: `No call policy found for target ${to} with selector ${selector}`,
143
+ },
144
+ };
145
+ }
146
+ const lowestMaxValuePerUse = (0, helpers_js_1.findSmallestBigInt)(policies.map((policy) => policy.maxValuePerUse));
147
+ if (value > lowestMaxValuePerUse) {
148
+ return {
149
+ valid: false,
150
+ error: {
151
+ type: SessionErrorType.MaxValuePerUseExceeded,
152
+ message: `Transaction value ${value} exceeds max value per use ${lowestMaxValuePerUse}`,
153
+ },
154
+ };
155
+ }
156
+ const remainingValue = findLowestRemainingValue(sessionState.callValue, to, selector);
157
+ if (value > remainingValue) {
158
+ return {
159
+ valid: false,
160
+ error: {
161
+ type: SessionErrorType.ValueLimitExceeded,
162
+ message: `Transaction value ${value} exceeds remaining value limit ${remainingValue || 0n}`,
163
+ },
164
+ };
165
+ }
166
+ for (const policy of policies) {
167
+ const constraintResult = validateConstraints(data, policy.constraints, sessionState.callParams);
168
+ if (!constraintResult.valid)
169
+ return constraintResult;
170
+ }
171
+ }
172
+ else {
173
+ const policies = sessionConfig.transferPolicies.filter((policy) => policy.target === to);
174
+ if (!policies.length) {
175
+ return {
176
+ valid: false,
177
+ error: {
178
+ type: SessionErrorType.NoTransferPolicy,
179
+ message: `No transfer policy found for target ${to}`,
180
+ },
181
+ };
182
+ }
183
+ const lowestMaxValuePerUse = (0, helpers_js_1.findSmallestBigInt)(policies.map((policy) => policy.maxValuePerUse));
184
+ if (value > lowestMaxValuePerUse) {
185
+ return {
186
+ valid: false,
187
+ error: {
188
+ type: SessionErrorType.MaxValuePerUseExceeded,
189
+ message: `Transaction value ${value} exceeds max value per use ${lowestMaxValuePerUse}`,
190
+ },
191
+ };
192
+ }
193
+ const remainingValue = findLowestRemainingValue(sessionState.transferValue, to);
194
+ if (value > remainingValue) {
195
+ return {
196
+ valid: false,
197
+ error: {
198
+ type: SessionErrorType.ValueLimitExceeded,
199
+ message: `Transaction value ${value} exceeds remaining value limit ${remainingValue || 0n}`,
200
+ },
201
+ };
202
+ }
203
+ }
204
+ return {
205
+ valid: true,
206
+ error: null,
207
+ };
208
+ }
209
+ function findLowestRemainingValue(valueArray, target, selector) {
210
+ if (selector) {
211
+ const filtered = valueArray
212
+ .filter((item) => item.target === target && item.selector === selector)
213
+ .map((item) => item.remaining);
214
+ if (!filtered.length)
215
+ return 0n;
216
+ return (0, helpers_js_1.findSmallestBigInt)(filtered);
217
+ }
218
+ else {
219
+ const filtered = valueArray
220
+ .filter((item) => item.target === target)
221
+ .map((item) => item.remaining);
222
+ if (!filtered.length)
223
+ return 0n;
224
+ return (0, helpers_js_1.findSmallestBigInt)(filtered);
225
+ }
226
+ }
227
+ function validateConstraints(data, constraints, callParams) {
228
+ const dataBytes = (0, viem_1.hexToBytes)(data);
229
+ for (const constraint of constraints) {
230
+ const index = Number(constraint.index);
231
+ if (index + 32 > dataBytes.length) {
232
+ return {
233
+ valid: false,
234
+ error: {
235
+ type: SessionErrorType.ConstraintIndexOutOfBounds,
236
+ message: `Constraint index ${index} out of bounds for data length ${dataBytes.length}`,
237
+ },
238
+ };
239
+ }
240
+ const parameterBytes = dataBytes.slice(index, index + 32);
241
+ const parameterValue = (0, viem_1.bytesToHex)(parameterBytes);
242
+ const refValue = constraint.refValue;
243
+ let remaining;
244
+ if (constraint.limit.limitType !== LimitType.Unlimited) {
245
+ const paramItem = callParams.find((item) => Number(item.index) === index);
246
+ remaining = paramItem?.remaining;
247
+ if (remaining === undefined) {
248
+ return {
249
+ valid: false,
250
+ error: {
251
+ type: SessionErrorType.NoLimitStateFound,
252
+ message: `No remaining limit state found for constraint at index ${index}`,
253
+ },
254
+ };
255
+ }
256
+ const parameterValueBigInt = (0, viem_1.hexToBigInt)(parameterValue);
257
+ if (parameterValueBigInt > remaining) {
258
+ return {
259
+ valid: false,
260
+ error: {
261
+ type: SessionErrorType.ParameterLimitExceeded,
262
+ message: `Parameter value ${parameterValueBigInt} at index ${index} exceeds remaining limit ${remaining}`,
263
+ },
264
+ };
265
+ }
266
+ }
267
+ switch (constraint.condition) {
268
+ case ConstraintCondition.Equal:
269
+ if (parameterValue !== refValue) {
270
+ return {
271
+ valid: false,
272
+ error: {
273
+ type: SessionErrorType.ConstraintEqualViolated,
274
+ message: `Parameter value ${parameterValue} must equal ${refValue}`,
275
+ },
276
+ };
277
+ }
278
+ break;
279
+ case ConstraintCondition.Greater:
280
+ if (parameterValue <= refValue) {
281
+ return {
282
+ valid: false,
283
+ error: {
284
+ type: SessionErrorType.ConstraintGreaterViolated,
285
+ message: `Parameter value ${parameterValue} must be greater than ${refValue}`,
286
+ },
287
+ };
288
+ }
289
+ break;
290
+ case ConstraintCondition.Less:
291
+ if (parameterValue >= refValue) {
292
+ return {
293
+ valid: false,
294
+ error: {
295
+ type: SessionErrorType.ConstraintLessViolated,
296
+ message: `Parameter value ${parameterValue} must be less than ${refValue}`,
297
+ },
298
+ };
299
+ }
300
+ break;
301
+ case ConstraintCondition.GreaterEqual:
302
+ if (parameterValue < refValue) {
303
+ return {
304
+ valid: false,
305
+ error: {
306
+ type: SessionErrorType.ConstraintGreaterEqualViolated,
307
+ message: `Parameter value ${parameterValue} must be greater than or equal to ${refValue}`,
308
+ },
309
+ };
310
+ }
311
+ break;
312
+ case ConstraintCondition.LessEqual:
313
+ if (parameterValue > refValue) {
314
+ return {
315
+ valid: false,
316
+ error: {
317
+ type: SessionErrorType.ConstraintLessEqualViolated,
318
+ message: `Parameter value ${parameterValue} must be less than or equal to ${refValue}`,
319
+ },
320
+ };
321
+ }
322
+ break;
323
+ case ConstraintCondition.NotEqual:
324
+ if (parameterValue === refValue) {
325
+ return {
326
+ valid: false,
327
+ error: {
328
+ type: SessionErrorType.ConstraintNotEqualViolated,
329
+ message: `Parameter value ${parameterValue} must not equal ${refValue}`,
330
+ },
331
+ };
332
+ }
333
+ break;
334
+ case ConstraintCondition.Unconstrained:
335
+ break;
336
+ default:
337
+ console.warn(`Unhandled constraint condition: ${constraint.condition}`);
338
+ break;
339
+ }
340
+ }
341
+ return {
342
+ valid: true,
343
+ error: null,
344
+ };
345
+ }
64
346
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/utils/session.ts"],"names":[],"mappings":";;;AAAA,+BAAqE;AAErE,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,mDAAa,CAAA;IACb,iDAAY,CAAA;IACZ,mDAAa,CAAA;AACf,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAcY,QAAA,cAAc,GAAG;IAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;IAC9B,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACX,CAAC;AAEW,QAAA,SAAS,GAAG;IACvB,SAAS,EAAE,SAAS,CAAC,QAAQ;IAC7B,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACX,CAAC;AAKF,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC7B,+EAAiB,CAAA;IACjB,+DAAS,CAAA;IACT,mEAAW,CAAA;IACX,6DAAQ,CAAA;IACR,6EAAgB,CAAA;IAChB,uEAAa,CAAA;IACb,qEAAY,CAAA;AACd,CAAC,EARW,mBAAmB,mCAAnB,mBAAmB,QAQ9B;AA6DD,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,qEAAkB,CAAA;IAClB,qDAAU,CAAA;IACV,qDAAU,CAAA;AACZ,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAyBM,MAAM,0BAA0B,GAAG,CAAC,IAK1C,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG,CAAC,KAAY,EAAU,EAAE;QACrC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;YAC5C,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACxF,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CACzC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CACzE,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACvC,MAAM,MAAM,GAA4C,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACjH,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAEpE,MAAM,SAAS,GAAG;QAChB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;QACxB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAE,MAAqB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3G,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAnCW,QAAA,0BAA0B,8BAmCrC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/utils/session.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { encodeFunctionData } from "viem";
2
- import { waitForTransactionReceipt } from "viem/actions";
2
+ import { readContract, waitForTransactionReceipt } from "viem/actions";
3
3
  import { getGeneralPaymasterInput, sendTransaction } from "viem/zksync";
4
4
  import { SessionKeyValidatorAbi } from "../../../abi/SessionKeyValidator.js";
5
5
  import { getTransactionWithPaymasterData } from "../../../paymaster/index.js";
6
6
  import { noThrow } from "../../../utils/helpers.js";
7
+ import { SessionEventType, SessionStatus } from "../../../utils/session.js";
7
8
  export const createSession = async (client, args) => {
8
9
  const callData = encodeFunctionData({
9
10
  abi: SessionKeyValidatorAbi,
@@ -58,4 +59,61 @@ export const revokeSession = async (client, args) => {
58
59
  transactionReceipt,
59
60
  };
60
61
  };
62
+ export const getSessionState = async (client, args) => {
63
+ const sessionState = await readContract(client, {
64
+ address: args.contracts.session,
65
+ abi: SessionKeyValidatorAbi,
66
+ functionName: "sessionState",
67
+ args: [args.account, args.sessionConfig],
68
+ });
69
+ return {
70
+ sessionState: sessionState,
71
+ };
72
+ };
73
+ /**
74
+ * Checks the current session state and sets up expiry notification.
75
+ * This function will trigger the callback with the session state.
76
+ */
77
+ export const sessionStateNotify = (args) => {
78
+ // Generate a session ID for tracking timeouts
79
+ const { sessionState } = args;
80
+ const now = BigInt(Math.floor(Date.now() / 1000));
81
+ // Check session status
82
+ if (sessionState.status === SessionStatus.NotInitialized) { // Not initialized
83
+ args.onSessionStateChange({
84
+ type: SessionEventType.Inactive,
85
+ message: "Session is not initialized",
86
+ });
87
+ }
88
+ else if (sessionState.status === SessionStatus.Closed) { // Closed/Revoked
89
+ args.onSessionStateChange({
90
+ type: SessionEventType.Revoked,
91
+ message: "Session has been revoked",
92
+ });
93
+ }
94
+ else if (args.sessionConfig.expiresAt <= now) {
95
+ // Session has expired
96
+ args.onSessionStateChange({
97
+ type: SessionEventType.Expired,
98
+ message: "Session has expired",
99
+ });
100
+ }
101
+ else {
102
+ // Session is active, set up expiry notification
103
+ const timeToExpiry = Number(args.sessionConfig.expiresAt - now) * 1000;
104
+ if (args.sessionNotifyTimeout) {
105
+ clearTimeout(args.sessionNotifyTimeout);
106
+ }
107
+ const newTimeout = setTimeout(() => {
108
+ args.onSessionStateChange({
109
+ type: SessionEventType.Expired,
110
+ message: "Session has expired",
111
+ });
112
+ }, timeToExpiry);
113
+ return {
114
+ newTimeout,
115
+ };
116
+ }
117
+ return {};
118
+ };
61
119
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../../src/client/session/actions/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,kBAAkB,EAA+E,MAAM,MAAM,CAAC;AAC5K,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAA+B,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAkBpD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAIhC,MAAyC,EAAE,IAAiC,EAA8C,EAAE;IAC5H,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,GAAG,EAAE,sBAAsB;QAC3B,YAAY,EAAE,eAAe;QAC7B,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;KAC3B,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;QAC1B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO;QAClC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,IAAI,wBAAwB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACxI,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,SAAW,EAAE,4CAA4C;QAC9D,8DAA8D;KACxD,CAAC;IAET,MAAM,4BAA4B,GAAQ,MAAM,+BAA+B,CAC7E,MAAM,CAAC,KAAK,CAAC,EAAE,EACf,MAAM,CAAC,OAAO,CAAC,OAAO,EACtB,mBAAmB,EACnB,IAAI,CAAC,gBAAgB,CACtB,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;IACpF,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAC9F,IAAI,kBAAkB,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEnG,OAAO;QACL,kBAAkB;KACnB,CAAC;AACJ,CAAC,CAAC;AAiBF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAIhC,MAAyC,EAAE,IAAiC,EAA8C,EAAE;IAC5H,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,GAAG,EAAE,sBAAsB;QAC3B,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;KACvB,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;QAC1B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO;QAClC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,IAAI,wBAAwB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACxI,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,SAAW,EAAE,4CAA4C;QAC9D,8DAA8D;KACxD,CAAC;IAET,MAAM,4BAA4B,GAAQ,MAAM,+BAA+B,CAC7E,MAAM,CAAC,KAAK,CAAC,EAAE,EACf,MAAM,CAAC,OAAO,CAAC,OAAO,EACtB,mBAAmB,EACnB,IAAI,CAAC,gBAAgB,CACtB,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;IAEpF,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAC9F,IAAI,kBAAkB,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEnG,OAAO;QACL,kBAAkB;KACnB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../../src/client/session/actions/session.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { privateKeyToAccount } from "viem/accounts";
3
3
  import { zksyncInMemoryNode } from "viem/chains";
4
4
  import { encodeSessionTx } from "../../utils/encoding.js";
5
5
  import { toSessionAccount } from "./account.js";
6
+ import { getSessionState, sessionStateNotify } from "./actions/session.js";
6
7
  import { publicActionsRewrite } from "./decorators/publicActionsRewrite.js";
7
8
  import { zksyncSsoWalletActions } from "./decorators/wallet.js";
8
9
  export const signSessionTransaction = (args) => {
@@ -63,10 +64,29 @@ export function createZksyncSessionClient(_parameters) {
63
64
  sessionConfig: parameters.sessionConfig,
64
65
  contracts: parameters.contracts,
65
66
  paymasterHandler: parameters.paymasterHandler,
67
+ onSessionStateChange: parameters.onSessionStateChange,
68
+ _sessionNotifyTimeout: undefined,
66
69
  }))
67
70
  .extend(publicActions)
68
71
  .extend(publicActionsRewrite)
69
72
  .extend(zksyncSsoWalletActions);
73
+ // Check session state on initialization if callback is provided
74
+ if (client.onSessionStateChange) {
75
+ getSessionState(client, {
76
+ account: client.account.address,
77
+ sessionConfig: client.sessionConfig,
78
+ contracts: client.contracts,
79
+ }).then(({ sessionState }) => {
80
+ sessionStateNotify({
81
+ sessionConfig: client.sessionConfig,
82
+ sessionState,
83
+ onSessionStateChange: client.onSessionStateChange,
84
+ sessionNotifyTimeout: client._sessionNotifyTimeout,
85
+ });
86
+ }).catch((error) => {
87
+ console.error("Failed to get session state on initialization:", error);
88
+ });
89
+ }
70
90
  return client;
71
91
  }
72
92
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/session/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/session/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAA4B,aAAa,EAAuG,MAAM,MAAM,CAAC;AAC5R,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAA+B,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE7F,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAOtC,EAAE,EAAE;IACH,OAAO,mBAAmB,CACxB;QACE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE;QAC/C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;QAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE;KACzC,EACD;QACE,IAAI,CAAC,oBAAoB;QACzB,IAAI,CAAC,eAAe;QACpB,eAAe,CAAC;YACd,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;KACH,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAIvC,WAAsE;IAEtE,MAAM,UAAU,GAGZ;QACF,GAAG,WAAW;QACd,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,2BAA2B;QACnD,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,2BAA2B;KACtD,CAAC;IAEF,MAAM,wBAAwB,GAAG,KAAK,IAAI,EAAE;QAC1C,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;QACtG,8DAA8D;QAC9D,MAAM,SAAS,GAAW,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,4BAAmC,EAAE,CAAC,CAAC;QACtG,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,gBAAgB,CAAC;QAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,eAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAChD,4FAA4F;YAC5F,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,kBAAkB,CAAC,EAAE;gBAC7D,CAAC,CAAC,MAAM,wBAAwB,EAAE;gBAClC,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5D,OAAO,sBAAsB,CAAC;gBAC5B,oBAAoB,EAAE,aAAa;gBACnC,eAAe,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO;gBAC7C,aAAa,EAAE,UAAU,CAAC,aAAa;gBACvC,EAAE;gBACF,QAAQ;gBACR,SAAS;aACV,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,YAAY,CAAuC;QAChE,GAAG,UAAU;QACb,OAAO;QACP,IAAI,EAAE,cAAc;KACrB,CAAC;SACC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACb,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;QACrD,qBAAqB,EAAE,SAAuC;KAC/D,CAAC,CAAC;SACF,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,oBAAoB,CAAC;SAC5B,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAElC,gEAAgE;IAChE,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChC,eAAe,CAAC,MAAM,EAAE;YACtB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YAC3B,kBAAkB,CAAC;gBACjB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,YAAY;gBACZ,oBAAoB,EAAE,MAAM,CAAC,oBAAqB;gBAClD,oBAAoB,EAAE,MAAM,CAAC,qBAAqB;aACnD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -2,7 +2,32 @@ import { bytesToHex, formatTransaction } from "viem";
2
2
  import { deployContract, getAddresses, getCallsStatus, getCapabilities, getChainId, prepareAuthorization, sendCalls, sendRawTransaction, showCallsStatus, signAuthorization, signMessage, signTypedData, waitForCallsStatus, writeContract, } from "viem/actions";
3
3
  import { signTransaction } from "viem/zksync";
4
4
  import { getTransactionWithPaymasterData } from "../../../paymaster/index.js";
5
+ import { SessionErrorType, SessionEventType, validateSessionTransaction } from "../../../utils/session.js";
5
6
  import { sendEip712Transaction } from "../actions/sendEip712Transaction.js";
7
+ import { getSessionState, sessionStateNotify } from "../actions/session.js";
8
+ const sessionErrorToSessionEventType = {
9
+ [SessionErrorType.SessionInactive]: SessionEventType.Inactive,
10
+ [SessionErrorType.SessionExpired]: SessionEventType.Expired,
11
+ };
12
+ /**
13
+ * Helper function to check session state and notify via callback
14
+ */
15
+ async function getSessionStateAndNotify(client) {
16
+ const { sessionState } = await getSessionState(client, {
17
+ account: client.account.address,
18
+ sessionConfig: client.sessionConfig,
19
+ contracts: client.contracts,
20
+ });
21
+ if (client.onSessionStateChange) {
22
+ sessionStateNotify({
23
+ sessionConfig: client.sessionConfig,
24
+ sessionState,
25
+ onSessionStateChange: client.onSessionStateChange,
26
+ sessionNotifyTimeout: client._sessionNotifyTimeout,
27
+ });
28
+ }
29
+ return sessionState;
30
+ }
6
31
  export function zksyncSsoWalletActions(client) {
7
32
  return {
8
33
  deployContract: (args) => deployContract(client, args),
@@ -29,6 +54,27 @@ export function zksyncSsoWalletActions(client) {
29
54
  ...format(unformattedTxWithPaymaster),
30
55
  type: "eip712",
31
56
  };
57
+ if (client.skipPreTransactionStateValidation !== false) {
58
+ // Get current session state and trigger callback if needed
59
+ const sessionState = await getSessionStateAndNotify(client);
60
+ // Validate transaction against session constraints
61
+ const validationResult = validateSessionTransaction({
62
+ sessionState,
63
+ sessionConfig: client.sessionConfig,
64
+ transaction: tx,
65
+ });
66
+ // Throw error if validation fails
67
+ if (validationResult.error) {
68
+ // If validation fails due to session issues, notify via callback
69
+ if (client.onSessionStateChange && Object.keys(sessionErrorToSessionEventType).includes(validationResult.error.type)) {
70
+ client.onSessionStateChange({
71
+ type: sessionErrorToSessionEventType[validationResult.error.type],
72
+ message: validationResult.error.message,
73
+ });
74
+ }
75
+ throw new Error(`Session validation failed: ${validationResult.error.message} (${validationResult.error.type})`);
76
+ }
77
+ }
32
78
  return await sendEip712Transaction(client, tx);
33
79
  },
34
80
  signMessage: (args) => signMessage(client, args),
@@ -37,6 +83,7 @@ export function zksyncSsoWalletActions(client) {
37
83
  return signTransaction(client, {
38
84
  ...args,
39
85
  unformattedTxWithPaymaster,
86
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
87
  });
41
88
  },
42
89
  signTypedData: (args) => signTypedData(client, args),
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../../src/client/session/decorators/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../../src/client/session/decorators/wallet.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { getTransactionWithPaymasterData } from "../paymaster/index.js";
4
4
  import { StorageItem } from "../utils/storage.js";
5
5
  import { parseSessionConfigJSON } from "./session/utils.js";
6
6
  export class Signer {
7
- constructor({ metadata, communicator, updateListener, session, chains, transports, paymasterHandler }) {
7
+ constructor({ metadata, communicator, updateListener, session, chains, transports, paymasterHandler, onSessionStateChange, skipPreTransactionStateValidation }) {
8
8
  Object.defineProperty(this, "getMetadata", {
9
9
  enumerable: true,
10
10
  configurable: true,
@@ -47,6 +47,18 @@ export class Signer {
47
47
  writable: true,
48
48
  value: void 0
49
49
  });
50
+ Object.defineProperty(this, "onSessionStateChange", {
51
+ enumerable: true,
52
+ configurable: true,
53
+ writable: true,
54
+ value: void 0
55
+ });
56
+ Object.defineProperty(this, "skipPreTransactionStateValidation", {
57
+ enumerable: true,
58
+ configurable: true,
59
+ writable: true,
60
+ value: void 0
61
+ });
50
62
  Object.defineProperty(this, "_account", {
51
63
  enumerable: true,
52
64
  configurable: true,
@@ -83,6 +95,8 @@ export class Signer {
83
95
  this.chains = chains;
84
96
  this.transports = transports || {};
85
97
  this.paymasterHandler = paymasterHandler;
98
+ this.onSessionStateChange = onSessionStateChange;
99
+ this.skipPreTransactionStateValidation = skipPreTransactionStateValidation;
86
100
  this._account = new StorageItem(StorageItem.scopedStorageKey("account"), null, {
87
101
  onChange: (newValue) => {
88
102
  if (newValue) {
@@ -153,6 +167,16 @@ export class Signer {
153
167
  chain,
154
168
  transport: this.transports[chain.id] || http(),
155
169
  paymasterHandler: this.paymasterHandler,
170
+ onSessionStateChange: (event) => {
171
+ if (!this.onSessionStateChange)
172
+ return;
173
+ this.onSessionStateChange({
174
+ state: event,
175
+ address: this.account.address,
176
+ chainId: chain.id,
177
+ });
178
+ },
179
+ skipPreTransactionStateValidation: this.skipPreTransactionStateValidation,
156
180
  }),
157
181
  };
158
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Signer.js","sourceRoot":"","sources":["../../../src/client-auth-server/Signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Signer.js","sourceRoot":"","sources":["../../../src/client-auth-server/Signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,kBAAkB,EAAE,MAAM,EAAa,IAAI,EAAyG,MAAM,MAAM,CAAC;AAGpM,OAAO,EAAE,yBAAyB,EAA+B,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAA+B,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAErG,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,EAAE,sBAAsB,EAA0B,MAAM,oBAAoB,CAAC;AAuCpF,MAAM,OAAO,MAAM;IAejB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iCAAiC,EAA2B;QAdtK;;;;;WAA+B;QAC/B;;;;;WAA2B;QAC3B;;;;;WAA+B;QAC/B;;;;;WAAyB;QACzB;;;;mBAAwC,EAAE;WAAC;QAC3C;;;;;WAA6E;QAC7E;;;;;WAA0C;QAC1C;;;;;WAAuE;QACvE;;;;;WAA4C;QAErD;;;;;WAAsC;QACtC;;;;mBAAc,IAAI,WAAW,CAAa,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;WAAC;QAC1F;;;;;WAA4H;QA4DnH;;;;mBAAa,GAAG,EAAE;gBACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC5B,CAAC;WAAC;QA5DA,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAEzF,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,iCAAiC,GAAG,iCAAiC,CAAC;QAE3E,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAiB,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE;YAC7F,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBACzD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,EAAE,QAAoC,CAAC;IAC3D,CAAC;IAED,SAAS,CAAC,UAAiC;QACzC,MAAM,OAAO,GAAG,UAAU,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,mBAAmB,CAAC,CAAC;QAEzE,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAY,OAAO;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QACtE,OAAO;YACL,GAAG,OAAO;YACV,aAAa,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE;SAC/C,CAAC;IACJ,CAAC;IAED,IAAY,OAAO,KAAK,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,IAAY,UAAU,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAM3D,IAAW,QAAQ,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5E,IAAW,KAAK;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAE,CAAC;IACpD,CAAC;IAED,kBAAkB;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,8BAA8B,CAAC,CAAC;QACvF,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,GAAG;gBACZ,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,yBAAyB,CAAC;oBAClC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,aAAa,EAAE,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC5D,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,KAAK;oBACL,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;oBAC9C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,oBAAoB,EAAE,CAAC,KAAwB,EAAE,EAAE;wBACjD,IAAI,CAAC,IAAI,CAAC,oBAAoB;4BAAE,OAAO;wBACvC,IAAI,CAAC,oBAAoB,CAAC;4BACxB,KAAK,EAAE,KAAK;4BACZ,OAAO,EAAE,IAAI,CAAC,OAAQ,CAAC,OAAO;4BAC9B,OAAO,EAAE,KAAK,CAAC,EAAE;yBAClB,CAAC,CAAC;oBACL,CAAC;oBACD,iCAAiC,EAAE,IAAI,CAAC,iCAAiC;iBAC1E,CAAC;aACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG;gBACZ,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,kBAAkB,CAAC;oBAC3B,GAAG,EAAE,+BAA+B;oBACpC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,KAAK;oBACL,SAAS,EAAE,MAAM,CAAC;wBAChB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;qBACjC,CAAC;iBACH,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,kBAAkD,CAAC;QACvD,IAAI,QAAQ,GAAgB;YAC1B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,EAAE;SACf,CAAC;QACF,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8DAA8D,EAAE,KAAK,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,kBAAkB,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,oEAAoE,EAAE,KAAK,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAA6C;YAC5F,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE;gBACN,QAAQ;gBACR,kBAAkB;aACnB;SACF,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,MAAO,CAAC;QAEtD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAChB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO;YACtC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;YACnE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO;SACvC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,8DAA8D,CAAC,CAAC;YAC9F,OAAO,KAAK,CAAC;QACf,CAAC;QAAA,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,kCAAkC,CAAC,CAAC;YAClE,OAAO,KAAK,CAAC;QACf,CAAC;QAAA,CAAC;QACF,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAE5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAChB,GAAG,IAAI,CAAC,OAAQ;YAChB,aAAa,EAAE,KAAK,CAAC,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAyB,OAAkC;QACtE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,WAAW,CAAC;QAElD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAoC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAyB,OAAkC;QACvF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QAEnC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,MAAM;oBAAE,OAAO,SAAS,CAAC;gBAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAA0C,CAAC;gBAClE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7E,OAAO,GAAiC,CAAC;YAC3C,CAAC;YACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,IAAI,cAAc,EAAE,IAAI,KAAK,SAAS;oBAAE,OAAO,SAAS,CAAC;gBACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAA8C,CAAC;gBACtE,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAA0D,CAAC,CAAC;gBACtH,OAAO,GAAiC,CAAC;YAC3C,CAAC;YACD,KAAK,4BAA4B,CAAC,CAAC,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACxD,gFAAgF;gBAChF,qCAAqC;gBACrC,2GAA2G;gBAC3G,sEAAsE;YACxE,CAAC;YACD,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACzD,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,YAAY,EAAgC,CAAC;YACnF,CAAC;YACD,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC,QAAsC,CAAC;YACrD,CAAC;YACD;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAG1B,OAA2C;QAC3C,uEAAuE;QACvE,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAEhC,IAAI,OAAO,CAAC,MAAM,KAAK,qBAAqB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC,CAAC,CAA6B,CAAC;YAC9D,IAAI,MAAM,EAAE,CAAC;gBACX,sDAAsD;gBACtD,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,+BAA+B,CAC1E,IAAI,CAAC,KAAK,CAAC,EAAE,EACb,MAAM,CAAC,IAAK,EACZ,MAAM,EACN,IAAI,CAAC,gBAAgB,CACtB,CAAC;gBACF,OAAO,GAAG;oBACR,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,MAAM,EAAE,CAAC,WAAW,CAAoC;iBACzD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAmB;YAC1D,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;SACvB,CAAC,CAAC;QACH,MAAM,QAAQ,GACV,MAAM,IAAI,CAAC,YAAY,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,IAAI,OAAO,IAAI,OAAO;YAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAE5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,oBAAoB,CAG1B,OAAuD;QACvD,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,OAAO;SACR,CAAC;IACJ,CAAC;CACF"}