@safe-global/relay-kit 3.1.0-alpha.0 → 3.1.0-alpha.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 (34) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.js +6 -0
  3. package/dist/src/index.js.map +1 -1
  4. package/dist/src/packs/gelato/GelatoRelayPack.test.js +1 -1
  5. package/dist/src/packs/gelato/GelatoRelayPack.test.js.map +1 -1
  6. package/dist/src/packs/safe-4337/Safe4337Pack.d.ts +11 -5
  7. package/dist/src/packs/safe-4337/Safe4337Pack.js +146 -114
  8. package/dist/src/packs/safe-4337/Safe4337Pack.js.map +1 -1
  9. package/dist/src/packs/safe-4337/Safe4337Pack.test.js +234 -38
  10. package/dist/src/packs/safe-4337/Safe4337Pack.test.js.map +1 -1
  11. package/dist/src/packs/safe-4337/SafeOperation.d.ts +6 -1
  12. package/dist/src/packs/safe-4337/SafeOperation.js +7 -1
  13. package/dist/src/packs/safe-4337/SafeOperation.js.map +1 -1
  14. package/dist/src/packs/safe-4337/SafeOperation.test.js +10 -0
  15. package/dist/src/packs/safe-4337/SafeOperation.test.js.map +1 -1
  16. package/dist/src/packs/safe-4337/constants.d.ts +2 -0
  17. package/dist/src/packs/safe-4337/constants.js +3 -1
  18. package/dist/src/packs/safe-4337/constants.js.map +1 -1
  19. package/dist/src/packs/safe-4337/estimators/PimlicoFeeEstimator.js +2 -1
  20. package/dist/src/packs/safe-4337/estimators/PimlicoFeeEstimator.js.map +1 -1
  21. package/dist/src/packs/safe-4337/testing-utils/fixtures.d.ts +36 -0
  22. package/dist/src/packs/safe-4337/testing-utils/fixtures.js +41 -5
  23. package/dist/src/packs/safe-4337/testing-utils/fixtures.js.map +1 -1
  24. package/dist/src/packs/safe-4337/testing-utils/helpers.js +0 -1
  25. package/dist/src/packs/safe-4337/testing-utils/helpers.js.map +1 -1
  26. package/dist/src/packs/safe-4337/types.d.ts +11 -8
  27. package/dist/src/packs/safe-4337/utils/entrypoint.d.ts +4 -0
  28. package/dist/src/packs/safe-4337/utils/entrypoint.js +23 -0
  29. package/dist/src/packs/safe-4337/utils/entrypoint.js.map +1 -0
  30. package/dist/src/packs/safe-4337/utils.d.ts +61 -5
  31. package/dist/src/packs/safe-4337/utils.js +131 -9
  32. package/dist/src/packs/safe-4337/utils.js.map +1 -1
  33. package/dist/tsconfig.build.tsbuildinfo +1 -1
  34. package/package.json +4 -4
@@ -36,7 +36,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
36
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
38
  };
39
- var _Safe4337Pack_instances, _Safe4337Pack_BUNDLER_URL, _Safe4337Pack_ENTRYPOINT_ADDRESS, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, _Safe4337Pack_bundlerClient, _Safe4337Pack_publicClient, _Safe4337Pack_paymasterOptions, _Safe4337Pack_getSafeUserOperationHash, _Safe4337Pack_sendUserOperation, _Safe4337Pack_signTypedData, _Safe4337Pack_getAccountNonce, _Safe4337Pack_encodeExecuteUserOpCallData, _Safe4337Pack_encodeMultiSendCallData;
39
+ var _Safe4337Pack_instances, _Safe4337Pack_BUNDLER_URL, _Safe4337Pack_ENTRYPOINT_ADDRESS, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, _Safe4337Pack_bundlerClient, _Safe4337Pack_chainId, _Safe4337Pack_paymasterOptions, _Safe4337Pack_toSafeOperation, _Safe4337Pack_timestamp, _Safe4337Pack_getSafeNonceFromEntrypoint, _Safe4337Pack_encodeExecuteUserOpCallData;
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
41
  exports.Safe4337Pack = void 0;
42
42
  const ethers_1 = require("ethers");
@@ -48,18 +48,17 @@ const safe_modules_deployments_1 = require("@safe-global/safe-modules-deployment
48
48
  const SafeOperation_1 = __importDefault(require("./SafeOperation"));
49
49
  const constants_1 = require("./constants");
50
50
  const utils_1 = require("./utils");
51
+ const entrypoint_1 = require("./utils/entrypoint");
51
52
  const PimlicoFeeEstimator_1 = require("./estimators/PimlicoFeeEstimator");
52
53
  const MAX_ERC20_AMOUNT_TO_APPROVE = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn;
53
- /*
54
+ const EQ_OR_GT_1_4_1 = '>=1.4.1';
55
+ /**
54
56
  Some of the contracts used in the PoC app are still experimental, and not included in
55
57
  the production deployment packages, thus we need to hardcode their addresses here.
56
58
  Deployment commit: https://github.com/safe-global/safe-modules/commit/3853f34f31837e0a0aee47a4452564278f8c62ba
57
59
  */
58
60
  // FIXME: use the production deployment packages instead of a hardcoded address
59
61
  const SAFE_WEBAUTHN_SHARED_SIGNER_ADDRESS = '0x608Cf2e3412c6BDA14E6D8A0a7D27c4240FeD6F1';
60
- // FIXME: use the production deployment packages instead of a hardcoded address
61
- // Sepolia only
62
- const P256_VERIFIER_ADDRESS = '0xcA89CBa4813D5B40AeC6E57A30d0Eeb500d6531b'; // FCLP256Verifier
63
62
  /**
64
63
  * Safe4337Pack class that extends RelayKitBasePack.
65
64
  * This class provides an implementation of the ERC-4337 that enables Safe accounts to wrk with UserOperations.
@@ -75,18 +74,18 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
75
74
  *
76
75
  * @param {Safe4337Options} options - The initialization parameters.
77
76
  */
78
- constructor({ protocolKit, bundlerClient, publicClient, bundlerUrl, paymasterOptions, entryPointAddress, safe4337ModuleAddress }) {
77
+ constructor({ protocolKit, bundlerClient, bundlerUrl, chainId, paymasterOptions, entryPointAddress, safe4337ModuleAddress }) {
79
78
  super(protocolKit);
80
79
  _Safe4337Pack_instances.add(this);
81
80
  _Safe4337Pack_BUNDLER_URL.set(this, void 0);
82
81
  _Safe4337Pack_ENTRYPOINT_ADDRESS.set(this, void 0);
83
82
  _Safe4337Pack_SAFE_4337_MODULE_ADDRESS.set(this, '0x');
84
83
  _Safe4337Pack_bundlerClient.set(this, void 0);
85
- _Safe4337Pack_publicClient.set(this, void 0);
84
+ _Safe4337Pack_chainId.set(this, void 0);
86
85
  _Safe4337Pack_paymasterOptions.set(this, void 0);
87
86
  __classPrivateFieldSet(this, _Safe4337Pack_BUNDLER_URL, bundlerUrl, "f");
88
87
  __classPrivateFieldSet(this, _Safe4337Pack_bundlerClient, bundlerClient, "f");
89
- __classPrivateFieldSet(this, _Safe4337Pack_publicClient, publicClient, "f");
88
+ __classPrivateFieldSet(this, _Safe4337Pack_chainId, chainId, "f");
90
89
  __classPrivateFieldSet(this, _Safe4337Pack_paymasterOptions, paymasterOptions, "f");
91
90
  __classPrivateFieldSet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, entryPointAddress, "f");
92
91
  __classPrivateFieldSet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, safe4337ModuleAddress, "f");
@@ -102,17 +101,20 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
102
101
  * @return {Promise<Safe4337Pack>} The Promise object that will be resolved into an instance of Safe4337Pack.
103
102
  */
104
103
  static async init(initOptions) {
105
- const { provider, signer, options, bundlerUrl, rpcUrl, customContracts, paymasterOptions } = initOptions;
104
+ const { provider, signer, options, bundlerUrl, customContracts, paymasterOptions } = initOptions;
106
105
  let protocolKit;
107
106
  const bundlerClient = (0, utils_1.getEip4337BundlerProvider)(bundlerUrl);
108
- const publicClient = (0, utils_1.getEip1193Provider)(rpcUrl);
109
107
  const chainId = await bundlerClient.send(constants_1.RPC_4337_CALLS.CHAIN_ID, []);
110
108
  let addModulesLibAddress = customContracts?.addModulesLibAddress;
111
109
  const network = parseInt(chainId, 16).toString();
110
+ const safeModulesVersion = initOptions.safeModulesVersion || constants_1.DEFAULT_SAFE_MODULES_VERSION;
111
+ if ((0, satisfies_1.default)(safeModulesVersion, entrypoint_1.EQ_OR_GT_0_3_0)) {
112
+ throw new Error(`Incompatibility detected: Safe modules version ${safeModulesVersion} is not supported. The SDK can use 0.2.0 only.`);
113
+ }
112
114
  if (!addModulesLibAddress) {
113
115
  const addModulesDeployment = (0, safe_modules_deployments_1.getAddModulesLibDeployment)({
114
116
  released: true,
115
- version: initOptions.safeModulesVersion || constants_1.DEFAULT_SAFE_MODULES_VERSION,
117
+ version: safeModulesVersion,
116
118
  network
117
119
  });
118
120
  addModulesLibAddress = addModulesDeployment?.networkAddresses[network];
@@ -121,13 +123,13 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
121
123
  if (!safe4337ModuleAddress) {
122
124
  const safe4337ModuleDeployment = (0, safe_modules_deployments_1.getSafe4337ModuleDeployment)({
123
125
  released: true,
124
- version: initOptions.safeModulesVersion || constants_1.DEFAULT_SAFE_MODULES_VERSION,
126
+ version: safeModulesVersion,
125
127
  network
126
128
  });
127
129
  safe4337ModuleAddress = safe4337ModuleDeployment?.networkAddresses[network];
128
130
  }
129
131
  if (!addModulesLibAddress || !safe4337ModuleAddress) {
130
- throw new Error(`Safe4337Module and/or AddModulesLib not available for chain ${network} and modules version ${constants_1.DEFAULT_SAFE_MODULES_VERSION}`);
132
+ throw new Error(`Safe4337Module and/or AddModulesLib not available for chain ${network} and modules version ${safeModulesVersion}`);
131
133
  }
132
134
  // Existing Safe
133
135
  if ('safeAddress' in options) {
@@ -137,7 +139,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
137
139
  safeAddress: options.safeAddress
138
140
  });
139
141
  const safeVersion = await protocolKit.getContractVersion();
140
- const isSafeVersion4337Compatible = (0, satisfies_1.default)(safeVersion, '>=1.4.1');
142
+ const isSafeVersion4337Compatible = (0, satisfies_1.default)(safeVersion, EQ_OR_GT_1_4_1);
141
143
  if (!isSafeVersion4337Compatible) {
142
144
  throw new Error(`Incompatibility detected: The current Safe Account version (${safeVersion}) is not supported. EIP-4337 requires the Safe to use at least v1.4.1.`);
143
145
  }
@@ -167,35 +169,32 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
167
169
  operation: safe_core_sdk_types_1.OperationType.DelegateCall // DelegateCall required for enabling the 4337 module
168
170
  };
169
171
  const setupTransactions = [enable4337ModuleTransaction];
170
- const { isSponsored, paymasterTokenAddress } = paymasterOptions || {};
171
- const isApproveTransactionRequired = !!paymasterOptions && !isSponsored && !!paymasterTokenAddress;
172
+ const isApproveTransactionRequired = !!paymasterOptions &&
173
+ !paymasterOptions.isSponsored &&
174
+ !!paymasterOptions.paymasterTokenAddress;
172
175
  if (isApproveTransactionRequired) {
173
176
  const { paymasterAddress, amountToApprove = MAX_ERC20_AMOUNT_TO_APPROVE } = paymasterOptions;
174
177
  // second transaction: approve ERC-20 paymaster token
175
178
  const approveToPaymasterTransaction = {
176
- to: paymasterTokenAddress,
179
+ to: paymasterOptions.paymasterTokenAddress,
177
180
  data: constants_1.INTERFACES.encodeFunctionData('approve', [paymasterAddress, amountToApprove]),
178
181
  value: '0',
179
182
  operation: safe_core_sdk_types_1.OperationType.Call // Call for approve
180
183
  };
181
184
  setupTransactions.push(approveToPaymasterTransaction);
182
185
  }
183
- const safeProvider = await protocol_kit_1.SafeProvider.init(provider, signer);
186
+ const safeProvider = await protocol_kit_1.SafeProvider.init(provider, signer, safeVersion);
184
187
  // third transaction: passkey support via shared signer SafeWebAuthnSharedSigner
185
188
  // see: https://github.com/safe-global/safe-modules/blob/main/modules/passkey/contracts/4337/experimental/README.md
186
189
  const isPasskeySigner = await safeProvider.isPasskeySigner();
187
190
  if (isPasskeySigner) {
188
191
  const passkeySigner = (await safeProvider.getExternalSigner());
189
- const ownerAddress = await passkeySigner.getAddress();
190
- if (!options.owners.includes(ownerAddress)) {
191
- options.owners.push(ownerAddress);
192
- }
193
192
  if (!options.owners.includes(SAFE_WEBAUTHN_SHARED_SIGNER_ADDRESS)) {
194
193
  options.owners.push(SAFE_WEBAUTHN_SHARED_SIGNER_ADDRESS);
195
194
  }
196
195
  const passkeyOwnerConfiguration = {
197
196
  ...passkeySigner.coordinates,
198
- verifiers: P256_VERIFIER_ADDRESS
197
+ verifiers: passkeySigner.verifierAddress
199
198
  };
200
199
  const sharedSignerTransaction = {
201
200
  to: SAFE_WEBAUTHN_SHARED_SIGNER_ADDRESS,
@@ -244,20 +243,33 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
244
243
  }
245
244
  });
246
245
  }
247
- let supportedEntryPoints;
248
- if (!customContracts?.entryPointAddress) {
249
- supportedEntryPoints = await bundlerClient.send(constants_1.RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS, []);
246
+ let selectedEntryPoint;
247
+ if (customContracts?.entryPointAddress) {
248
+ const requiredSafeModulesVersion = (0, entrypoint_1.entryPointToSafeModules)(customContracts?.entryPointAddress);
249
+ if (!(0, satisfies_1.default)(safeModulesVersion, requiredSafeModulesVersion))
250
+ throw new Error(`The selected entrypoint ${customContracts?.entryPointAddress} is not compatible with version ${safeModulesVersion} of Safe modules`);
251
+ selectedEntryPoint = customContracts?.entryPointAddress;
252
+ }
253
+ else {
254
+ const supportedEntryPoints = await bundlerClient.send(constants_1.RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS, []);
250
255
  if (!supportedEntryPoints.length) {
251
256
  throw new Error('No entrypoint provided or available through the bundler');
252
257
  }
258
+ selectedEntryPoint = supportedEntryPoints.find((entryPoint) => {
259
+ const requiredSafeModulesVersion = (0, entrypoint_1.entryPointToSafeModules)(entryPoint);
260
+ return (0, satisfies_1.default)(safeModulesVersion, requiredSafeModulesVersion);
261
+ });
262
+ if (!selectedEntryPoint) {
263
+ throw new Error(`Incompatibility detected: None of the entrypoints provided by the bundler is compatible with the Safe modules version ${safeModulesVersion}`);
264
+ }
253
265
  }
254
266
  return new Safe4337Pack({
267
+ chainId: BigInt(chainId),
255
268
  protocolKit,
256
269
  bundlerClient,
257
- publicClient,
258
270
  paymasterOptions,
259
271
  bundlerUrl,
260
- entryPointAddress: customContracts?.entryPointAddress || supportedEntryPoints[0],
272
+ entryPointAddress: selectedEntryPoint,
261
273
  safe4337ModuleAddress
262
274
  });
263
275
  }
@@ -270,6 +282,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
270
282
  * @return {Promise<EthSafeOperation>} The Promise object that will be resolved into the gas estimation.
271
283
  */
272
284
  async getEstimateFee({ safeOperation, feeEstimator = new PimlicoFeeEstimator_1.PimlicoFeeEstimator() }) {
285
+ const threshold = await this.protocolKit.getThreshold();
273
286
  const setupEstimationData = await feeEstimator?.setupEstimation?.({
274
287
  bundlerUrl: __classPrivateFieldGet(this, _Safe4337Pack_BUNDLER_URL, "f"),
275
288
  entryPoint: __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f"),
@@ -278,7 +291,10 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
278
291
  if (setupEstimationData) {
279
292
  safeOperation.addEstimations(setupEstimationData);
280
293
  }
281
- const estimateUserOperationGas = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.ESTIMATE_USER_OPERATION_GAS, [(0, utils_1.userOperationToHexValues)(safeOperation.toUserOperation()), __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f")]);
294
+ const estimateUserOperationGas = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.ESTIMATE_USER_OPERATION_GAS, [
295
+ (0, utils_1.userOperationToHexValues)((0, utils_1.addDummySignature)(safeOperation.toUserOperation(), SAFE_WEBAUTHN_SHARED_SIGNER_ADDRESS, threshold)),
296
+ __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f")
297
+ ]);
282
298
  if (estimateUserOperationGas) {
283
299
  safeOperation.addEstimations({
284
300
  preVerificationGas: BigInt(estimateUserOperationGas.preVerificationGas),
@@ -299,7 +315,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
299
315
  throw new Error('No paymaster url provided for a sponsored transaction');
300
316
  }
301
317
  const paymasterEstimation = await feeEstimator?.getPaymasterEstimation?.({
302
- userOperation: safeOperation.toUserOperation(),
318
+ userOperation: (0, utils_1.addDummySignature)(safeOperation.toUserOperation(), SAFE_WEBAUTHN_SHARED_SIGNER_ADDRESS, threshold),
303
319
  paymasterUrl: __classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f").paymasterUrl,
304
320
  entryPoint: __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f"),
305
321
  sponsorshipPolicyId: __classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f").sponsorshipPolicyId
@@ -321,17 +337,19 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
321
337
  */
322
338
  async createTransaction({ transactions, options = {} }) {
323
339
  const safeAddress = await this.protocolKit.getAddress();
324
- const nonce = await __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_getAccountNonce).call(this, safeAddress);
340
+ const nonce = await __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_getSafeNonceFromEntrypoint).call(this, safeAddress);
325
341
  const { amountToApprove, validUntil, validAfter, feeEstimator } = options;
326
342
  if (amountToApprove) {
327
- if (!__classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f") || !__classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f").paymasterTokenAddress) {
343
+ const paymasterOptions = __classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f");
344
+ if (!paymasterOptions.paymasterTokenAddress) {
328
345
  throw new Error('Paymaster must be initialized');
329
346
  }
330
- const paymasterAddress = __classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f").paymasterAddress;
331
- const paymasterTokenAddress = __classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f").paymasterTokenAddress;
332
347
  const approveToPaymasterTransaction = {
333
- to: paymasterTokenAddress,
334
- data: constants_1.INTERFACES.encodeFunctionData('approve', [paymasterAddress, amountToApprove]),
348
+ to: paymasterOptions.paymasterTokenAddress,
349
+ data: constants_1.INTERFACES.encodeFunctionData('approve', [
350
+ paymasterOptions.paymasterAddress,
351
+ amountToApprove
352
+ ]),
335
353
  value: '0',
336
354
  operation: safe_core_sdk_types_1.OperationType.Call // Call for approve
337
355
  };
@@ -343,11 +361,13 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
343
361
  ? __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_encodeExecuteUserOpCallData).call(this, {
344
362
  to: multiSendAddress,
345
363
  value: '0',
346
- data: __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_encodeMultiSendCallData).call(this, transactions),
364
+ data: (0, utils_1.encodeMultiSendCallData)(transactions),
347
365
  operation: safe_core_sdk_types_1.OperationType.DelegateCall
348
366
  })
349
367
  : __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_encodeExecuteUserOpCallData).call(this, transactions[0]);
350
- const paymasterAndData = __classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f")?.paymasterAddress || '0x';
368
+ const paymasterAndData = __classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f") && 'paymasterAddress' in __classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f")
369
+ ? __classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f").paymasterAddress
370
+ : '0x';
351
371
  const userOperation = {
352
372
  sender: safeAddress,
353
373
  nonce: nonce,
@@ -366,6 +386,8 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
366
386
  userOperation.initCode = await this.protocolKit.getInitCode();
367
387
  }
368
388
  const safeOperation = new SafeOperation_1.default(userOperation, {
389
+ chainId: __classPrivateFieldGet(this, _Safe4337Pack_chainId, "f"),
390
+ moduleAddress: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f"),
369
391
  entryPoint: __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f"),
370
392
  validUntil,
371
393
  validAfter
@@ -378,29 +400,44 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
378
400
  /**
379
401
  * Signs a safe operation.
380
402
  *
381
- * @param {EthSafeOperation} safeOperation - The SafeOperation to sign.
403
+ * @param {EthSafeOperation | SafeOperationResponse} safeOperation - The SafeOperation to sign. It can be:
404
+ * - A response from the API (Tx Service)
405
+ * - An instance of EthSafeOperation
382
406
  * @param {SigningMethod} signingMethod - The signing method to use.
383
407
  * @return {Promise<EthSafeOperation>} The Promise object will resolve to the signed SafeOperation.
384
408
  */
385
409
  async signSafeOperation(safeOperation, signingMethod = protocol_kit_1.SigningMethod.ETH_SIGN_TYPED_DATA_V4) {
386
- const owners = await this.protocolKit.getOwners();
410
+ let safeOp;
411
+ if ((0, safe_core_sdk_types_1.isSafeOperationResponse)(safeOperation)) {
412
+ safeOp = __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_toSafeOperation).call(this, safeOperation);
413
+ }
414
+ else {
415
+ safeOp = safeOperation;
416
+ }
387
417
  const safeProvider = this.protocolKit.getSafeProvider();
388
418
  const signerAddress = await safeProvider.getSignerAddress();
389
- const chainId = await safeProvider.getChainId();
419
+ const isPasskeySigner = await safeProvider.isPasskeySigner();
390
420
  if (!signerAddress) {
391
421
  throw new Error('There is no signer address available to sign the SafeOperation');
392
422
  }
393
- const addressIsOwner = owners.some((owner) => signerAddress && owner.toLowerCase() === signerAddress.toLowerCase());
394
- if (!addressIsOwner) {
423
+ const isOwner = await this.protocolKit.isOwner(signerAddress);
424
+ const isSafeDeployed = await this.protocolKit.isSafeDeployed();
425
+ if ((!isOwner && isSafeDeployed) || (!isSafeDeployed && !isPasskeySigner && !isOwner)) {
395
426
  throw new Error('UserOperations can only be signed by Safe owners');
396
427
  }
397
428
  let signature;
398
- const isPasskeySigner = await safeProvider.isPasskeySigner();
399
429
  if (isPasskeySigner) {
400
- const safeOpHash = __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_getSafeUserOperationHash).call(this, safeOperation.data, chainId);
401
- const passkeySignature = await this.protocolKit.signHash(safeOpHash);
402
- // SafeWebAuthnSharedSigner signature
403
- signature = new protocol_kit_1.EthSafeSignature(SAFE_WEBAUTHN_SHARED_SIGNER_ADDRESS, passkeySignature.data, true);
430
+ const safeOpHash = safeOp.getHash();
431
+ // if the Safe is not deployed we force the Shared Signer signature
432
+ if (!isSafeDeployed) {
433
+ const passkeySignature = await this.protocolKit.signHash(safeOpHash);
434
+ // SafeWebAuthnSharedSigner signature
435
+ signature = new protocol_kit_1.EthSafeSignature(SAFE_WEBAUTHN_SHARED_SIGNER_ADDRESS, passkeySignature.data, true // passkeys are contract signatures
436
+ );
437
+ }
438
+ else {
439
+ signature = await this.protocolKit.signHash(safeOpHash);
440
+ }
404
441
  }
405
442
  else {
406
443
  if (signingMethod in
@@ -409,19 +446,21 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
409
446
  protocol_kit_1.SigningMethod.ETH_SIGN_TYPED_DATA_V3,
410
447
  protocol_kit_1.SigningMethod.ETH_SIGN_TYPED_DATA
411
448
  ]) {
412
- signature = await __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_signTypedData).call(this, safeOperation.data);
449
+ signature = await (0, utils_1.signSafeOp)(safeOp.data, this.protocolKit.getSafeProvider(), __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f"));
413
450
  }
414
451
  else {
415
- const safeOpHash = __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_getSafeUserOperationHash).call(this, safeOperation.data, chainId);
452
+ const safeOpHash = safeOp.getHash();
416
453
  signature = await this.protocolKit.signHash(safeOpHash);
417
454
  }
418
455
  }
419
- const signedSafeOperation = new SafeOperation_1.default(safeOperation.toUserOperation(), {
456
+ const signedSafeOperation = new SafeOperation_1.default(safeOp.toUserOperation(), {
457
+ chainId: __classPrivateFieldGet(this, _Safe4337Pack_chainId, "f"),
458
+ moduleAddress: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f"),
420
459
  entryPoint: __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f"),
421
- validUntil: safeOperation.data.validUntil,
422
- validAfter: safeOperation.data.validAfter
460
+ validUntil: safeOp.data.validUntil,
461
+ validAfter: safeOp.data.validAfter
423
462
  });
424
- signedSafeOperation.signatures.forEach((signature) => {
463
+ safeOp.signatures.forEach((signature) => {
425
464
  signedSafeOperation.addSignature(signature);
426
465
  });
427
466
  signedSafeOperation.addSignature(signature);
@@ -430,12 +469,25 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
430
469
  /**
431
470
  * Executes the relay transaction.
432
471
  *
433
- * @param {EthSafeOperation} safeOperation - The SafeOperation to execute.
472
+ * @param {Safe4337ExecutableProps} props - The parameters for the transaction execution.
473
+ * @param {EthSafeOperation | SafeOperationResponse} props.executable - The SafeOperation to execute. It can be:
474
+ * - A response from the API (Tx Service)
475
+ * - An instance of EthSafeOperation
434
476
  * @return {Promise<string>} The user operation hash.
435
477
  */
436
- async executeTransaction({ executable: safeOperation }) {
478
+ async executeTransaction({ executable }) {
479
+ let safeOperation;
480
+ if ((0, safe_core_sdk_types_1.isSafeOperationResponse)(executable)) {
481
+ safeOperation = __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_toSafeOperation).call(this, executable);
482
+ }
483
+ else {
484
+ safeOperation = executable;
485
+ }
437
486
  const userOperation = safeOperation.toUserOperation();
438
- return __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_sendUserOperation).call(this, userOperation);
487
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.SEND_USER_OPERATION, [
488
+ (0, utils_1.userOperationToHexValues)(userOperation),
489
+ __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f")
490
+ ]);
439
491
  }
440
492
  /**
441
493
  * Return a UserOperation based on a hash (userOpHash) returned by eth_sendUserOperation
@@ -444,8 +496,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
444
496
  * @returns {UserOperation} - null in case the UserOperation is not yet included in a block, or a full UserOperation, with the addition of entryPoint, blockNumber, blockHash and transactionHash
445
497
  */
446
498
  async getUserOperationByHash(userOpHash) {
447
- const userOperation = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.GET_USER_OPERATION_BY_HASH, [userOpHash]);
448
- return userOperation;
499
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.GET_USER_OPERATION_BY_HASH, [userOpHash]);
449
500
  }
450
501
  /**
451
502
  * Return a UserOperation receipt based on a hash (userOpHash) returned by eth_sendUserOperation
@@ -454,8 +505,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
454
505
  * @returns {UserOperationReceipt} - null in case the UserOperation is not yet included in a block, or UserOperationReceipt object
455
506
  */
456
507
  async getUserOperationReceipt(userOpHash) {
457
- const userOperationReceipt = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.GET_USER_OPERATION_RECEIPT, [userOpHash]);
458
- return userOperationReceipt;
508
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.GET_USER_OPERATION_RECEIPT, [userOpHash]);
459
509
  }
460
510
  /**
461
511
  * Returns an array of the entryPoint addresses supported by the client.
@@ -464,8 +514,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
464
514
  * @returns {string[]} - The supported entry points.
465
515
  */
466
516
  async getSupportedEntryPoints() {
467
- const supportedEntryPoints = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS, []);
468
- return supportedEntryPoints;
517
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS, []);
469
518
  }
470
519
  /**
471
520
  * Returns EIP-155 Chain ID.
@@ -473,60 +522,47 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
473
522
  * @returns {string} - The chain id.
474
523
  */
475
524
  async getChainId() {
476
- const chainId = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.CHAIN_ID, []);
477
- return chainId;
525
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.CHAIN_ID, []);
478
526
  }
479
527
  }
480
528
  exports.Safe4337Pack = Safe4337Pack;
481
- _Safe4337Pack_BUNDLER_URL = new WeakMap(), _Safe4337Pack_ENTRYPOINT_ADDRESS = new WeakMap(), _Safe4337Pack_SAFE_4337_MODULE_ADDRESS = new WeakMap(), _Safe4337Pack_bundlerClient = new WeakMap(), _Safe4337Pack_publicClient = new WeakMap(), _Safe4337Pack_paymasterOptions = new WeakMap(), _Safe4337Pack_instances = new WeakSet(), _Safe4337Pack_getSafeUserOperationHash = function _Safe4337Pack_getSafeUserOperationHash(safeUserOperation, chainId) {
482
- return ethers_1.ethers.TypedDataEncoder.hash({
483
- chainId,
484
- verifyingContract: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f")
485
- }, constants_1.EIP712_SAFE_OPERATION_TYPE, safeUserOperation);
486
- }, _Safe4337Pack_sendUserOperation =
487
- /**
488
- * Send the UserOperation to the bundler.
489
- *
490
- * @param {UserOperation} userOpWithSignature - The signed UserOperation to send to the bundler.
491
- * @return {Promise<string>} The hash.
492
- */
493
- async function _Safe4337Pack_sendUserOperation(userOpWithSignature) {
494
- return await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.SEND_USER_OPERATION, [
495
- (0, utils_1.userOperationToHexValues)(userOpWithSignature),
496
- __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f")
497
- ]);
498
- }, _Safe4337Pack_signTypedData =
499
- /**
500
- * Signs typed data.
501
- *
502
- * @param {SafeUserOperation} safeUserOperation - Safe user operation to sign.
503
- * @return {Promise<SafeSignature>} The SafeSignature object containing the data and the signatures.
504
- */
505
- async function _Safe4337Pack_signTypedData(safeUserOperation) {
506
- const safeProvider = this.protocolKit.getSafeProvider();
507
- const signer = (await safeProvider.getExternalSigner());
508
- const chainId = await safeProvider.getChainId();
509
- const signerAddress = await signer.getAddress();
510
- const signature = await signer.signTypedData({
511
- chainId,
512
- verifyingContract: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f")
513
- }, constants_1.EIP712_SAFE_OPERATION_TYPE, {
514
- ...safeUserOperation,
515
- nonce: ethers_1.ethers.toBeHex(safeUserOperation.nonce),
516
- validAfter: ethers_1.ethers.toBeHex(safeUserOperation.validAfter),
517
- validUntil: ethers_1.ethers.toBeHex(safeUserOperation.validUntil),
518
- maxFeePerGas: ethers_1.ethers.toBeHex(safeUserOperation.maxFeePerGas),
519
- maxPriorityFeePerGas: ethers_1.ethers.toBeHex(safeUserOperation.maxPriorityFeePerGas)
529
+ _Safe4337Pack_BUNDLER_URL = new WeakMap(), _Safe4337Pack_ENTRYPOINT_ADDRESS = new WeakMap(), _Safe4337Pack_SAFE_4337_MODULE_ADDRESS = new WeakMap(), _Safe4337Pack_bundlerClient = new WeakMap(), _Safe4337Pack_chainId = new WeakMap(), _Safe4337Pack_paymasterOptions = new WeakMap(), _Safe4337Pack_instances = new WeakSet(), _Safe4337Pack_toSafeOperation = function _Safe4337Pack_toSafeOperation(safeOperationResponse) {
530
+ const { validUntil, validAfter, userOperation } = safeOperationResponse;
531
+ const safeOperation = new SafeOperation_1.default({
532
+ sender: userOperation?.sender || '0x',
533
+ nonce: userOperation?.nonce?.toString() || '0',
534
+ initCode: userOperation?.initCode || '',
535
+ callData: userOperation?.callData || '',
536
+ callGasLimit: BigInt(userOperation?.callGasLimit || 0n),
537
+ verificationGasLimit: BigInt(userOperation?.verificationGasLimit || 0),
538
+ preVerificationGas: BigInt(userOperation?.preVerificationGas || 0),
539
+ maxFeePerGas: BigInt(userOperation?.maxFeePerGas || 0),
540
+ maxPriorityFeePerGas: BigInt(userOperation?.maxPriorityFeePerGas || 0),
541
+ paymasterAndData: ethers_1.ethers.hexlify(ethers_1.ethers.concat([userOperation?.paymaster || '0x', userOperation?.paymasterData || '0x'])),
542
+ signature: safeOperationResponse.preparedSignature || '0x'
543
+ }, {
544
+ chainId: __classPrivateFieldGet(this, _Safe4337Pack_chainId, "f"),
545
+ moduleAddress: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f"),
546
+ entryPoint: userOperation?.entryPoint || __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f"),
547
+ validAfter: __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_timestamp).call(this, validAfter),
548
+ validUntil: __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_timestamp).call(this, validUntil)
520
549
  });
521
- return new protocol_kit_1.EthSafeSignature(signerAddress, signature);
522
- }, _Safe4337Pack_getAccountNonce =
550
+ if (safeOperationResponse.confirmations) {
551
+ safeOperationResponse.confirmations.forEach((confirmation) => {
552
+ safeOperation.addSignature(new protocol_kit_1.EthSafeSignature(confirmation.owner, confirmation.signature));
553
+ });
554
+ }
555
+ return safeOperation;
556
+ }, _Safe4337Pack_timestamp = function _Safe4337Pack_timestamp(date) {
557
+ return date ? new Date(date).getTime() / 1000 : undefined;
558
+ }, _Safe4337Pack_getSafeNonceFromEntrypoint =
523
559
  /**
524
560
  * Gets account nonce from the bundler.
525
561
  *
526
- * @param {string} sender - Account address for which the nonce is to be fetched.
562
+ * @param {string} safeAddress - Account address for which the nonce is to be fetched.
527
563
  * @returns {Promise<string>} The Promise object will resolve to the account nonce.
528
564
  */
529
- async function _Safe4337Pack_getAccountNonce(sender) {
565
+ async function _Safe4337Pack_getSafeNonceFromEntrypoint(safeAddress) {
530
566
  const abi = [
531
567
  {
532
568
  inputs: [
@@ -539,8 +575,8 @@ async function _Safe4337Pack_getAccountNonce(sender) {
539
575
  type: 'function'
540
576
  }
541
577
  ];
542
- const contract = new ethers_1.ethers.Contract(__classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f") || '0x', abi, __classPrivateFieldGet(this, _Safe4337Pack_publicClient, "f"));
543
- const newNonce = await contract.getNonce(sender, BigInt(0));
578
+ const contract = new ethers_1.ethers.Contract(__classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f") || '0x', abi, this.protocolKit.getSafeProvider().getExternalProvider());
579
+ const newNonce = await contract.getNonce(safeAddress, BigInt(0));
544
580
  return newNonce.toString();
545
581
  }, _Safe4337Pack_encodeExecuteUserOpCallData = function _Safe4337Pack_encodeExecuteUserOpCallData(transaction) {
546
582
  return constants_1.INTERFACES.encodeFunctionData('executeUserOp', [
@@ -549,9 +585,5 @@ async function _Safe4337Pack_getAccountNonce(sender) {
549
585
  transaction.data,
550
586
  transaction.operation || safe_core_sdk_types_1.OperationType.Call
551
587
  ]);
552
- }, _Safe4337Pack_encodeMultiSendCallData = function _Safe4337Pack_encodeMultiSendCallData(transactions) {
553
- return constants_1.INTERFACES.encodeFunctionData('multiSend', [
554
- (0, protocol_kit_1.encodeMultiSendData)(transactions.map((tx) => ({ ...tx, operation: tx.operation ?? safe_core_sdk_types_1.OperationType.Call })))
555
- ]);
556
588
  };
557
589
  //# sourceMappingURL=Safe4337Pack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Safe4337Pack.js","sourceRoot":"","sources":["../../../../src/packs/safe-4337/Safe4337Pack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA+B;AAC/B,2EAAwD;AACxD,0EAOkC;AAClC,8EAA0E;AAC1E,0EAMyC;AACzC,oFAG8C;AAC9C,oEAA8C;AAW9C,2CAMoB;AACpB,mCAAiG;AACjG,0EAAsE;AAEtE,MAAM,2BAA2B,GAC/B,mEAAmE,CAAA;AAErE;;;;EAIE;AACF,+EAA+E;AAC/E,MAAM,mCAAmC,GAAG,4CAA4C,CAAA;AAExF,+EAA+E;AAC/E,eAAe;AACf,MAAM,qBAAqB,GAAG,4CAA4C,CAAA,CAAC,kBAAkB;AAE7F;;;;;;;;GAQG;AACH,MAAa,YAAa,SAAQ,mCAOhC;IAWA;;;;OAIG;IACH,YAAY,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACL;QAChB,KAAK,CAAC,WAAW,CAAC,CAAA;;QAxBpB,4CAAoB;QAEpB,mDAA2B;QAC3B,iDAAoC,IAAI,EAAA;QAExC,8CAAsC;QACtC,6CAAqC;QAErC,iDAAoC;QAkBlC,uBAAA,IAAI,6BAAgB,UAAU,MAAA,CAAA;QAE9B,uBAAA,IAAI,+BAAkB,aAAa,MAAA,CAAA;QACnC,uBAAA,IAAI,8BAAiB,YAAY,MAAA,CAAA;QAEjC,uBAAA,IAAI,kCAAqB,gBAAgB,MAAA,CAAA;QAEzC,uBAAA,IAAI,oCAAuB,iBAAiB,MAAA,CAAA;QAC5C,uBAAA,IAAI,0CAA6B,qBAAqB,MAAA,CAAA;IACxD,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAgC;QAChD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GACxF,WAAW,CAAA;QACb,IAAI,WAAiB,CAAA;QACrB,MAAM,aAAa,GAAG,IAAA,iCAAyB,EAAC,UAAU,CAAC,CAAA;QAC3D,MAAM,YAAY,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,0BAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAErE,IAAI,oBAAoB,GAAG,eAAe,EAAE,oBAAoB,CAAA;QAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;QAEhD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,MAAM,oBAAoB,GAAG,IAAA,qDAA0B,EAAC;gBACtD,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,WAAW,CAAC,kBAAkB,IAAI,wCAA4B;gBACvE,OAAO;aACR,CAAC,CAAA;YACF,oBAAoB,GAAG,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACxE,CAAC;QAED,IAAI,qBAAqB,GAAG,eAAe,EAAE,qBAAqB,CAAA;QAClE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,MAAM,wBAAwB,GAAG,IAAA,sDAA2B,EAAC;gBAC3D,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,WAAW,CAAC,kBAAkB,IAAI,wCAA4B;gBACvE,OAAO;aACR,CAAC,CAAA;YACF,qBAAqB,GAAG,wBAAwB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAC7E,CAAC;QAED,IAAI,CAAC,oBAAoB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,+DAA+D,OAAO,wBAAwB,wCAA4B,EAAE,CAC7H,CAAA;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,aAAa,IAAI,OAAO,EAAE,CAAC;YAC7B,WAAW,GAAG,MAAM,sBAAI,CAAC,IAAI,CAAC;gBAC5B,QAAQ;gBACR,MAAM;gBACN,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAA;YAEF,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAA;YAC1D,MAAM,2BAA2B,GAAG,IAAA,mBAAe,EAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YAE3E,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,+DAA+D,WAAW,wEAAwE,CACnJ,CAAA;YACH,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,UAAU,EAAE,CAAa,CAAA;YAChE,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,qBAAqB,CAAC,CAAA;YAE1F,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,2HAA2H,qBAAqB,yBAAyB,CAC1K,CAAA;YACH,CAAC;YAED,MAAM,mBAAmB,GAAG,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAA;YAClE,MAAM,4BAA4B,GAAG,mBAAmB,KAAK,qBAAqB,CAAA;YAElF,IAAI,CAAC,4BAA4B,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,qIAAqI,qBAAqB,4BAA4B,CACvL,CAAA;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iGAAiG;YACjG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;YAC3E,CAAC;YAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,gCAAoB,CAAA;YAE/D,2DAA2D;YAE3D,8CAA8C;YAC9C,MAAM,2BAA2B,GAAG;gBAClC,EAAE,EAAE,oBAAoB;gBACxB,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,sBAAU,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC/E,SAAS,EAAE,mCAAa,CAAC,YAAY,CAAC,qDAAqD;aAC5F,CAAA;YAED,MAAM,iBAAiB,GAAG,CAAC,2BAA2B,CAAC,CAAA;YAEvD,MAAM,EAAE,WAAW,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,IAAI,EAAE,CAAA;YAErE,MAAM,4BAA4B,GAChC,CAAC,CAAC,gBAAgB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,qBAAqB,CAAA;YAE/D,IAAI,4BAA4B,EAAE,CAAC;gBACjC,MAAM,EAAE,gBAAgB,EAAE,eAAe,GAAG,2BAA2B,EAAE,GAAG,gBAAgB,CAAA;gBAE5F,qDAAqD;gBACrD,MAAM,6BAA6B,GAAG;oBACpC,EAAE,EAAE,qBAAqB;oBACzB,IAAI,EAAE,sBAAU,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;oBACnF,KAAK,EAAE,GAAG;oBACV,SAAS,EAAE,mCAAa,CAAC,IAAI,CAAC,mBAAmB;iBAClD,CAAA;gBAED,iBAAiB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;YACvD,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAE9D,gFAAgF;YAChF,mHAAmH;YACnH,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;YAE5D,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,aAAa,GAAG,CAAC,MAAM,YAAY,CAAC,iBAAiB,EAAE,CAAkB,CAAA;gBAC/E,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAA;gBAErD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBACnC,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;oBAClE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;gBAC1D,CAAC;gBAED,MAAM,yBAAyB,GAAG;oBAChC,GAAG,aAAa,CAAC,WAAW;oBAC5B,SAAS,EAAE,qBAAqB;iBACjC,CAAA;gBAED,MAAM,uBAAuB,GAAG;oBAC9B,EAAE,EAAE,mCAAmC;oBACvC,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,sBAAU,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,yBAAyB,CAAC,CAAC;oBAC7E,SAAS,EAAE,mCAAa,CAAC,YAAY,CAAC,6GAA6G;iBACpJ,CAAA;gBAED,iBAAiB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;YACjD,CAAC;YAED,IAAI,YAAY,CAAA;YAChB,IAAI,cAAc,CAAA;YAElB,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAA;YAE5C,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,iBAAiB,GAAG,MAAM,IAAA,mCAAoB,EAAC;oBACnD,YAAY;oBACZ,WAAW;iBACZ,CAAC,CAAA;gBAEF,MAAM,SAAS,GAAG,sBAAU,CAAC,kBAAkB,CAAC,WAAW,EAAE;oBAC3D,IAAA,kCAAmB,EAAC,iBAAiB,CAAC;iBACvC,CAAC,CAAA;gBAEF,YAAY,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,CAAA;gBACnD,cAAc,GAAG,SAAS,CAAA;YAC5B,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,2BAA2B,CAAC,EAAE,CAAA;gBAC7C,cAAc,GAAG,2BAA2B,CAAC,IAAI,CAAA;YACnD,CAAC;YAED,WAAW,GAAG,MAAM,sBAAI,CAAC,IAAI,CAAC;gBAC5B,QAAQ;gBACR,MAAM;gBACN,aAAa,EAAE;oBACb,oBAAoB,EAAE;wBACpB,WAAW;wBACX,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;qBAC1C;oBACD,iBAAiB,EAAE;wBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,EAAE,EAAE,YAAY;wBAChB,IAAI,EAAE,cAAc;wBACpB,eAAe,EAAE,qBAAqB;wBACtC,YAAY,EAAE,eAAM,CAAC,WAAW;wBAChC,OAAO,EAAE,CAAC;wBACV,eAAe,EAAE,eAAM,CAAC,WAAW;qBACpC;iBACF;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,oBAAoB,CAAA;QAExB,IAAI,CAAC,eAAe,EAAE,iBAAiB,EAAE,CAAC;YACxC,oBAAoB,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,0BAAc,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;YAE1F,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;YAC5E,CAAC;QACH,CAAC;QAED,OAAO,IAAI,YAAY,CAAC;YACtB,WAAW;YACX,aAAa;YACb,YAAY;YACZ,gBAAgB;YAChB,UAAU;YACV,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,IAAI,oBAAoB,CAAC,CAAC,CAAC;YAChF,qBAAqB;SACtB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IAEH,KAAK,CAAC,cAAc,CAAC,EACnB,aAAa,EACb,YAAY,GAAG,IAAI,yCAAmB,EAAE,EACvB;QACjB,MAAM,mBAAmB,GAAG,MAAM,YAAY,EAAE,eAAe,EAAE,CAAC;YAChE,UAAU,EAAE,uBAAA,IAAI,iCAAa;YAC7B,UAAU,EAAE,uBAAA,IAAI,wCAAoB;YACpC,aAAa,EAAE,aAAa,CAAC,eAAe,EAAE;SAC/C,CAAC,CAAA;QAEF,IAAI,mBAAmB,EAAE,CAAC;YACxB,aAAa,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,wBAAwB,GAAG,MAAM,uBAAA,IAAI,mCAAe,CAAC,IAAI,CAC7D,0BAAc,CAAC,2BAA2B,EAC1C,CAAC,IAAA,gCAAwB,EAAC,aAAa,CAAC,eAAe,EAAE,CAAC,EAAE,uBAAA,IAAI,wCAAoB,CAAC,CACtF,CAAA;QAED,IAAI,wBAAwB,EAAE,CAAC;YAC7B,aAAa,CAAC,cAAc,CAAC;gBAC3B,kBAAkB,EAAE,MAAM,CAAC,wBAAwB,CAAC,kBAAkB,CAAC;gBACvE,oBAAoB,EAAE,MAAM,CAAC,wBAAwB,CAAC,oBAAoB,CAAC;gBAC3E,YAAY,EAAE,MAAM,CAAC,wBAAwB,CAAC,YAAY,CAAC;aAC5D,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,oBAAoB,GAAG,MAAM,YAAY,EAAE,gBAAgB,EAAE,CAAC;YAClE,UAAU,EAAE,uBAAA,IAAI,iCAAa;YAC7B,UAAU,EAAE,uBAAA,IAAI,wCAAoB;YACpC,aAAa,EAAE,aAAa,CAAC,eAAe,EAAE;SAC/C,CAAC,CAAA;QAEF,IAAI,oBAAoB,EAAE,CAAC;YACzB,aAAa,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,uBAAA,IAAI,sCAAkB,EAAE,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,uBAAA,IAAI,sCAAkB,CAAC,YAAY,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;YAC1E,CAAC;YAED,MAAM,mBAAmB,GAAG,MAAM,YAAY,EAAE,sBAAsB,EAAE,CAAC;gBACvE,aAAa,EAAE,aAAa,CAAC,eAAe,EAAE;gBAC9C,YAAY,EAAE,uBAAA,IAAI,sCAAkB,CAAC,YAAY;gBACjD,UAAU,EAAE,uBAAA,IAAI,wCAAoB;gBACpC,mBAAmB,EAAE,uBAAA,IAAI,sCAAkB,CAAC,mBAAmB;aAChE,CAAC,CAAA;YAEF,aAAa,CAAC,IAAI,CAAC,gBAAgB;gBACjC,mBAAmB,EAAE,gBAAgB,IAAI,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAA;YAE9E,IAAI,mBAAmB,EAAE,CAAC;gBACxB,aAAa,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CAAC,EACtB,YAAY,EACZ,OAAO,GAAG,EAAE,EACmB;QAC/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAA;QACvD,MAAM,KAAK,GAAG,MAAM,uBAAA,IAAI,8DAAiB,MAArB,IAAI,EAAkB,WAAW,CAAC,CAAA;QAEtD,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;QAEzE,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,uBAAA,IAAI,sCAAkB,IAAI,CAAC,uBAAA,IAAI,sCAAkB,CAAC,qBAAqB,EAAE,CAAC;gBAC7E,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;YAClD,CAAC;YAED,MAAM,gBAAgB,GAAG,uBAAA,IAAI,sCAAkB,CAAC,gBAAgB,CAAA;YAChE,MAAM,qBAAqB,GAAG,uBAAA,IAAI,sCAAkB,CAAC,qBAAqB,CAAA;YAE1E,MAAM,6BAA6B,GAAG;gBACpC,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,sBAAU,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;gBACnF,KAAK,EAAE,GAAG;gBACV,SAAS,EAAE,mCAAa,CAAC,IAAI,CAAC,mBAAmB;aAClD,CAAA;YAED,YAAY,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;QACvC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAA;QAErE,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,uBAAA,IAAI,0EAA6B,MAAjC,IAAI,EAA8B;gBAChC,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,uBAAA,IAAI,sEAAyB,MAA7B,IAAI,EAA0B,YAAY,CAAC;gBACjD,SAAS,EAAE,mCAAa,CAAC,YAAY;aACtC,CAAC;YACJ,CAAC,CAAC,uBAAA,IAAI,0EAA6B,MAAjC,IAAI,EAA8B,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QAEtD,MAAM,gBAAgB,GAAG,uBAAA,IAAI,sCAAkB,EAAE,gBAAgB,IAAI,IAAI,CAAA;QAEzE,MAAM,aAAa,GAAkB;YACnC,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI;YACd,QAAQ;YACR,YAAY,EAAE,EAAE;YAChB,oBAAoB,EAAE,EAAE;YACxB,kBAAkB,EAAE,EAAE;YACtB,YAAY,EAAE,EAAE;YAChB,oBAAoB,EAAE,EAAE;YACxB,gBAAgB;YAChB,SAAS,EAAE,IAAI;SAChB,CAAA;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAA;QAE9D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,aAAa,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;QAC/D,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,uBAAgB,CAAC,aAAa,EAAE;YACxD,UAAU,EAAE,uBAAA,IAAI,wCAAoB;YACpC,UAAU;YACV,UAAU;SACX,CAAC,CAAA;QAEF,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC;YAC/B,aAAa;YACb,YAAY;SACb,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CACrB,aAA+B,EAC/B,gBAA+B,4BAAa,CAAC,sBAAsB;QAEnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAA;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;QACvD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAA;QAC3D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAA;QAE/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;QACnF,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAChC,CAAC,KAAa,EAAE,EAAE,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,CACxF,CAAA;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QAED,IAAI,SAAwB,CAAA;QAE5B,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE5D,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,uBAAA,IAAI,uEAA0B,MAA9B,IAAI,EAA2B,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAE9E,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YAEpE,qCAAqC;YACrC,SAAS,GAAG,IAAI,+BAAgB,CAC9B,mCAAmC,EACnC,gBAAgB,CAAC,IAAI,EACrB,IAAI,CACL,CAAA;QACH,CAAC;aAAM,CAAC;YACN,IACE,aAAa;gBACb;oBACE,4BAAa,CAAC,sBAAsB;oBACpC,4BAAa,CAAC,sBAAsB;oBACpC,4BAAa,CAAC,mBAAmB;iBAClC,EACD,CAAC;gBACD,SAAS,GAAG,MAAM,uBAAA,IAAI,4DAAe,MAAnB,IAAI,EAAgB,aAAa,CAAC,IAAI,CAAC,CAAA;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,uBAAA,IAAI,uEAA0B,MAA9B,IAAI,EAA2B,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;gBAE9E,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,uBAAgB,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE;YAChF,UAAU,EAAE,uBAAA,IAAI,wCAAoB;YACpC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU;YACzC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU;SAC1C,CAAC,CAAA;QAEF,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAwB,EAAE,EAAE;YAClE,mBAAmB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,mBAAmB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QAE3C,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,EACvB,UAAU,EAAE,aAAa,EACD;QACxB,MAAM,aAAa,GAAG,aAAa,CAAC,eAAe,EAAE,CAAA;QAErD,OAAO,uBAAA,IAAI,gEAAmB,MAAvB,IAAI,EAAoB,aAAa,CAAC,CAAA;IAC/C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,sBAAsB,CAAC,UAAkB;QAC7C,MAAM,aAAa,GAAG,MAAM,uBAAA,IAAI,mCAAe,CAAC,IAAI,CAClD,0BAAc,CAAC,0BAA0B,EACzC,CAAC,UAAU,CAAC,CACb,CAAA;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAAC,UAAkB;QAC9C,MAAM,oBAAoB,GAAG,MAAM,uBAAA,IAAI,mCAAe,CAAC,IAAI,CACzD,0BAAc,CAAC,0BAA0B,EACzC,CAAC,UAAU,CAAC,CACb,CAAA;QAED,OAAO,oBAAoB,CAAA;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB;QAC3B,MAAM,oBAAoB,GAAG,MAAM,uBAAA,IAAI,mCAAe,CAAC,IAAI,CACzD,0BAAc,CAAC,sBAAsB,EACrC,EAAE,CACH,CAAA;QAED,OAAO,oBAAoB,CAAA;IAC7B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAG,MAAM,uBAAA,IAAI,mCAAe,CAAC,IAAI,CAAC,0BAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAE3E,OAAO,OAAO,CAAA;IAChB,CAAC;CAqHF;AA/pBD,oCA+pBC;gaA5G2B,iBAAoC,EAAE,OAAe;IAC7E,OAAO,eAAM,CAAC,gBAAgB,CAAC,IAAI,CACjC;QACE,OAAO;QACP,iBAAiB,EAAE,uBAAA,IAAI,8CAA0B;KAClD,EACD,sCAA0B,EAC1B,iBAAiB,CAClB,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,0CAAoB,mBAAkC;IACzD,OAAO,MAAM,uBAAA,IAAI,mCAAe,CAAC,IAAI,CAAC,0BAAc,CAAC,mBAAmB,EAAE;QACxE,IAAA,gCAAwB,EAAC,mBAAmB,CAAC;QAC7C,uBAAA,IAAI,wCAAoB;KACzB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,sCAAgB,iBAAoC;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;IACvD,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,iBAAiB,EAAE,CAAkB,CAAA;IACxE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAA;IAC/C,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;IAC/C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAC1C;QACE,OAAO;QACP,iBAAiB,EAAE,uBAAA,IAAI,8CAA0B;KAClD,EACD,sCAA0B,EAC1B;QACE,GAAG,iBAAiB;QACpB,KAAK,EAAE,eAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC;QAC9C,UAAU,EAAE,eAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC;QACxD,UAAU,EAAE,eAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC;QACxD,YAAY,EAAE,eAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC;QAC5D,oBAAoB,EAAE,eAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;KAC7E,CACF,CAAA;IACD,OAAO,IAAI,+BAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;AACvD,CAAC;AAED;;;;;GAKG;AACH,KAAK,wCAAkB,MAAc;IACnC,MAAM,GAAG,GAAG;QACV;YACE,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;gBACnC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;aACjC;YACD,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,eAAe,EAAE,MAAM;YACvB,IAAI,EAAE,UAAU;SACjB;KACF,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,uBAAA,IAAI,wCAAoB,IAAI,IAAI,EAAE,GAAG,EAAE,uBAAA,IAAI,kCAAc,CAAC,CAAA;IAE/F,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAE3D,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAA;AAC5B,CAAC,iGAQ4B,WAAgC;IAC3D,OAAO,sBAAU,CAAC,kBAAkB,CAAC,eAAe,EAAE;QACpD,WAAW,CAAC,EAAE;QACd,WAAW,CAAC,KAAK;QACjB,WAAW,CAAC,IAAI;QAChB,WAAW,CAAC,SAAS,IAAI,mCAAa,CAAC,IAAI;KAC5C,CAAC,CAAA;AACJ,CAAC,yFAQwB,YAAmC;IAC1D,OAAO,sBAAU,CAAC,kBAAkB,CAAC,WAAW,EAAE;QAChD,IAAA,kCAAmB,EACjB,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,mCAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CACrF;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"Safe4337Pack.js","sourceRoot":"","sources":["../../../../src/packs/safe-4337/Safe4337Pack.ts"],"names":[],"mappings":"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"}