@safe-global/relay-kit 3.0.0 → 3.0.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 (28) hide show
  1. package/README.md +2 -2
  2. package/dist/src/packs/safe-4337/Safe4337Pack.d.ts +11 -5
  3. package/dist/src/packs/safe-4337/Safe4337Pack.js +104 -85
  4. package/dist/src/packs/safe-4337/Safe4337Pack.js.map +1 -1
  5. package/dist/src/packs/safe-4337/Safe4337Pack.test.js +83 -25
  6. package/dist/src/packs/safe-4337/Safe4337Pack.test.js.map +1 -1
  7. package/dist/src/packs/safe-4337/SafeOperation.d.ts +3 -1
  8. package/dist/src/packs/safe-4337/SafeOperation.js +2 -1
  9. package/dist/src/packs/safe-4337/SafeOperation.js.map +1 -1
  10. package/dist/src/packs/safe-4337/SafeOperation.test.js +5 -0
  11. package/dist/src/packs/safe-4337/SafeOperation.test.js.map +1 -1
  12. package/dist/src/packs/safe-4337/constants.d.ts +2 -0
  13. package/dist/src/packs/safe-4337/constants.js +3 -1
  14. package/dist/src/packs/safe-4337/constants.js.map +1 -1
  15. package/dist/src/packs/safe-4337/testing-utils/fixtures.d.ts +36 -0
  16. package/dist/src/packs/safe-4337/testing-utils/fixtures.js +41 -5
  17. package/dist/src/packs/safe-4337/testing-utils/fixtures.js.map +1 -1
  18. package/dist/src/packs/safe-4337/testing-utils/helpers.js +6 -1
  19. package/dist/src/packs/safe-4337/testing-utils/helpers.js.map +1 -1
  20. package/dist/src/packs/safe-4337/types.d.ts +2 -4
  21. package/dist/src/packs/safe-4337/utils/entrypoint.d.ts +4 -0
  22. package/dist/src/packs/safe-4337/utils/entrypoint.js +23 -0
  23. package/dist/src/packs/safe-4337/utils/entrypoint.js.map +1 -0
  24. package/dist/src/packs/safe-4337/utils.d.ts +32 -5
  25. package/dist/src/packs/safe-4337/utils.js +71 -9
  26. package/dist/src/packs/safe-4337/utils.js.map +1 -1
  27. package/dist/tsconfig.build.tsbuildinfo +1 -1
  28. package/package.json +9 -7
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Relay Kit
2
2
 
3
- [![NPM Version](https://badge.fury.io/js/%40safe-global%2Frelay-kit.svg)](https://badge.fury.io/js/%40safe-global%2Frelay-kit)
3
+ [![npm Version](https://badge.fury.io/js/%40safe-global%2Frelay-kit.svg)](https://badge.fury.io/js/%40safe-global%2Frelay-kit)
4
4
  [![GitHub Release](https://img.shields.io/github/release/safe-global/safe-core-sdk.svg?style=flat)](https://github.com/safe-global/safe-core-sdk/releases)
5
5
  [![GitHub](https://img.shields.io/github/license/safe-global/safe-core-sdk)](https://github.com/safe-global/safe-core-sdk/blob/main/LICENSE.md)
6
6
 
7
- The Relay Kit lets users pay transaction fees (gas fees) using the native blockchain token or ERC-20 tokens. Gas fees can be payed with this kit using any ERC-20 token in your Safe, even if there is no native token balance. This kit enables the use of ERC-4337 with Safe.
7
+ The Relay Kit enables ERC-4337 with Safe and allows users to pay for the transaction fees from their Safe account balance using the blockchain native token or ERC-20 tokens, or to get their transactions sponsored.
8
8
 
9
9
  ## Table of contents
10
10
 
@@ -1,5 +1,6 @@
1
1
  import { SigningMethod } from '@safe-global/protocol-kit';
2
2
  import { RelayKitBasePack } from '../../RelayKitBasePack';
3
+ import { SafeOperationResponse } from '@safe-global/safe-core-sdk-types';
3
4
  import EthSafeOperation from './SafeOperation';
4
5
  import { EstimateFeeProps, Safe4337CreateTransactionProps, Safe4337ExecutableProps, Safe4337InitOptions, Safe4337Options, UserOperationReceipt, UserOperationWithPayload } from './types';
5
6
  /**
@@ -25,7 +26,7 @@ export declare class Safe4337Pack extends RelayKitBasePack<{
25
26
  *
26
27
  * @param {Safe4337Options} options - The initialization parameters.
27
28
  */
28
- constructor({ protocolKit, bundlerClient, publicClient, bundlerUrl, paymasterOptions, entryPointAddress, safe4337ModuleAddress }: Safe4337Options);
29
+ constructor({ protocolKit, bundlerClient, bundlerUrl, paymasterOptions, entryPointAddress, safe4337ModuleAddress }: Safe4337Options);
29
30
  /**
30
31
  * Initializes a Safe4337Pack class.
31
32
  * This method creates the protocolKit instance based on the input parameters.
@@ -57,18 +58,23 @@ export declare class Safe4337Pack extends RelayKitBasePack<{
57
58
  /**
58
59
  * Signs a safe operation.
59
60
  *
60
- * @param {EthSafeOperation} safeOperation - The SafeOperation to sign.
61
+ * @param {EthSafeOperation | SafeOperationResponse} safeOperation - The SafeOperation to sign. It can be:
62
+ * - A response from the API (Tx Service)
63
+ * - An instance of EthSafeOperation
61
64
  * @param {SigningMethod} signingMethod - The signing method to use.
62
65
  * @return {Promise<EthSafeOperation>} The Promise object will resolve to the signed SafeOperation.
63
66
  */
64
- signSafeOperation(safeOperation: EthSafeOperation, signingMethod?: SigningMethod): Promise<EthSafeOperation>;
67
+ signSafeOperation(safeOperation: EthSafeOperation | SafeOperationResponse, signingMethod?: SigningMethod): Promise<EthSafeOperation>;
65
68
  /**
66
69
  * Executes the relay transaction.
67
70
  *
68
- * @param {EthSafeOperation} safeOperation - The SafeOperation to execute.
71
+ * @param {Safe4337ExecutableProps} props - The parameters for the transaction execution.
72
+ * @param {EthSafeOperation | SafeOperationResponse} props.executable - The SafeOperation to execute. It can be:
73
+ * - A response from the API (Tx Service)
74
+ * - An instance of EthSafeOperation
69
75
  * @return {Promise<string>} The user operation hash.
70
76
  */
71
- executeTransaction({ executable: safeOperation }: Safe4337ExecutableProps): Promise<string>;
77
+ executeTransaction({ executable }: Safe4337ExecutableProps): Promise<string>;
72
78
  /**
73
79
  * Return a UserOperation based on a hash (userOpHash) returned by eth_sendUserOperation
74
80
  *
@@ -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_paymasterOptions, _Safe4337Pack_toSafeOperation, _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,8 +48,10 @@ 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;
54
+ const EQ_OR_GT_1_4_1 = '>=1.4.1';
53
55
  /**
54
56
  * Safe4337Pack class that extends RelayKitBasePack.
55
57
  * This class provides an implementation of the ERC-4337 that enables Safe accounts to wrk with UserOperations.
@@ -65,18 +67,16 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
65
67
  *
66
68
  * @param {Safe4337Options} options - The initialization parameters.
67
69
  */
68
- constructor({ protocolKit, bundlerClient, publicClient, bundlerUrl, paymasterOptions, entryPointAddress, safe4337ModuleAddress }) {
70
+ constructor({ protocolKit, bundlerClient, bundlerUrl, paymasterOptions, entryPointAddress, safe4337ModuleAddress }) {
69
71
  super(protocolKit);
70
72
  _Safe4337Pack_instances.add(this);
71
73
  _Safe4337Pack_BUNDLER_URL.set(this, void 0);
72
74
  _Safe4337Pack_ENTRYPOINT_ADDRESS.set(this, void 0);
73
75
  _Safe4337Pack_SAFE_4337_MODULE_ADDRESS.set(this, '0x');
74
76
  _Safe4337Pack_bundlerClient.set(this, void 0);
75
- _Safe4337Pack_publicClient.set(this, void 0);
76
77
  _Safe4337Pack_paymasterOptions.set(this, void 0);
77
78
  __classPrivateFieldSet(this, _Safe4337Pack_BUNDLER_URL, bundlerUrl, "f");
78
79
  __classPrivateFieldSet(this, _Safe4337Pack_bundlerClient, bundlerClient, "f");
79
- __classPrivateFieldSet(this, _Safe4337Pack_publicClient, publicClient, "f");
80
80
  __classPrivateFieldSet(this, _Safe4337Pack_paymasterOptions, paymasterOptions, "f");
81
81
  __classPrivateFieldSet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, entryPointAddress, "f");
82
82
  __classPrivateFieldSet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, safe4337ModuleAddress, "f");
@@ -92,17 +92,20 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
92
92
  * @return {Promise<Safe4337Pack>} The Promise object that will be resolved into an instance of Safe4337Pack.
93
93
  */
94
94
  static async init(initOptions) {
95
- const { provider, signer, options, bundlerUrl, rpcUrl, customContracts, paymasterOptions } = initOptions;
95
+ const { provider, signer, options, bundlerUrl, customContracts, paymasterOptions } = initOptions;
96
96
  let protocolKit;
97
97
  const bundlerClient = (0, utils_1.getEip4337BundlerProvider)(bundlerUrl);
98
- const publicClient = (0, utils_1.getEip1193Provider)(rpcUrl);
99
98
  const chainId = await bundlerClient.send(constants_1.RPC_4337_CALLS.CHAIN_ID, []);
100
99
  let addModulesLibAddress = customContracts?.addModulesLibAddress;
101
100
  const network = parseInt(chainId, 16).toString();
101
+ const safeModulesVersion = initOptions.safeModulesVersion || constants_1.DEFAULT_SAFE_MODULES_VERSION;
102
+ if ((0, satisfies_1.default)(safeModulesVersion, entrypoint_1.EQ_OR_GT_0_3_0)) {
103
+ throw new Error(`Incompatibility detected: Safe modules version ${safeModulesVersion} is not supported. The SDK can use 0.2.0 only.`);
104
+ }
102
105
  if (!addModulesLibAddress) {
103
106
  const addModulesDeployment = (0, safe_modules_deployments_1.getAddModulesLibDeployment)({
104
107
  released: true,
105
- version: initOptions.safeModulesVersion || constants_1.DEFAULT_SAFE_MODULES_VERSION,
108
+ version: safeModulesVersion,
106
109
  network
107
110
  });
108
111
  addModulesLibAddress = addModulesDeployment?.networkAddresses[network];
@@ -111,13 +114,13 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
111
114
  if (!safe4337ModuleAddress) {
112
115
  const safe4337ModuleDeployment = (0, safe_modules_deployments_1.getSafe4337ModuleDeployment)({
113
116
  released: true,
114
- version: initOptions.safeModulesVersion || constants_1.DEFAULT_SAFE_MODULES_VERSION,
117
+ version: safeModulesVersion,
115
118
  network
116
119
  });
117
120
  safe4337ModuleAddress = safe4337ModuleDeployment?.networkAddresses[network];
118
121
  }
119
122
  if (!addModulesLibAddress || !safe4337ModuleAddress) {
120
- throw new Error(`Safe4337Module and/or AddModulesLib not available for chain ${network} and modules version ${constants_1.DEFAULT_SAFE_MODULES_VERSION}`);
123
+ throw new Error(`Safe4337Module and/or AddModulesLib not available for chain ${network} and modules version ${safeModulesVersion}`);
121
124
  }
122
125
  // Existing Safe
123
126
  if ('safeAddress' in options) {
@@ -127,7 +130,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
127
130
  safeAddress: options.safeAddress
128
131
  });
129
132
  const safeVersion = await protocolKit.getContractVersion();
130
- const isSafeVersion4337Compatible = (0, satisfies_1.default)(safeVersion, '>=1.4.1');
133
+ const isSafeVersion4337Compatible = (0, satisfies_1.default)(safeVersion, EQ_OR_GT_1_4_1);
131
134
  if (!isSafeVersion4337Compatible) {
132
135
  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.`);
133
136
  }
@@ -197,20 +200,32 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
197
200
  }
198
201
  });
199
202
  }
200
- let supportedEntryPoints;
201
- if (!customContracts?.entryPointAddress) {
202
- supportedEntryPoints = await bundlerClient.send(constants_1.RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS, []);
203
+ let selectedEntryPoint;
204
+ if (customContracts?.entryPointAddress) {
205
+ const requiredSafeModulesVersion = (0, entrypoint_1.entryPointToSafeModules)(customContracts?.entryPointAddress);
206
+ if (!(0, satisfies_1.default)(safeModulesVersion, requiredSafeModulesVersion))
207
+ throw new Error(`The selected entrypoint ${customContracts?.entryPointAddress} is not compatible with version ${safeModulesVersion} of Safe modules`);
208
+ selectedEntryPoint = customContracts?.entryPointAddress;
209
+ }
210
+ else {
211
+ const supportedEntryPoints = await bundlerClient.send(constants_1.RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS, []);
203
212
  if (!supportedEntryPoints.length) {
204
213
  throw new Error('No entrypoint provided or available through the bundler');
205
214
  }
215
+ selectedEntryPoint = supportedEntryPoints.find((entryPoint) => {
216
+ const requiredSafeModulesVersion = (0, entrypoint_1.entryPointToSafeModules)(entryPoint);
217
+ return (0, satisfies_1.default)(safeModulesVersion, requiredSafeModulesVersion);
218
+ });
219
+ if (!selectedEntryPoint) {
220
+ throw new Error(`Incompatibility detected: None of the entrypoints provided by the bundler is compatible with the Safe modules version ${safeModulesVersion}`);
221
+ }
206
222
  }
207
223
  return new Safe4337Pack({
208
224
  protocolKit,
209
225
  bundlerClient,
210
- publicClient,
211
226
  paymasterOptions,
212
227
  bundlerUrl,
213
- entryPointAddress: customContracts?.entryPointAddress || supportedEntryPoints[0],
228
+ entryPointAddress: selectedEntryPoint,
214
229
  safe4337ModuleAddress
215
230
  });
216
231
  }
@@ -231,7 +246,10 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
231
246
  if (setupEstimationData) {
232
247
  safeOperation.addEstimations(setupEstimationData);
233
248
  }
234
- 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")]);
249
+ const estimateUserOperationGas = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.ESTIMATE_USER_OPERATION_GAS, [
250
+ (0, utils_1.userOperationToHexValues)((0, utils_1.addDummySignature)(safeOperation.toUserOperation(), await this.protocolKit.getOwners())),
251
+ __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f")
252
+ ]);
235
253
  if (estimateUserOperationGas) {
236
254
  safeOperation.addEstimations({
237
255
  preVerificationGas: BigInt(estimateUserOperationGas.preVerificationGas),
@@ -274,7 +292,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
274
292
  */
275
293
  async createTransaction({ transactions, options = {} }) {
276
294
  const safeAddress = await this.protocolKit.getAddress();
277
- const nonce = await __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_getAccountNonce).call(this, safeAddress);
295
+ const nonce = await __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_getSafeNonceFromEntrypoint).call(this, safeAddress);
278
296
  const { amountToApprove, validUntil, validAfter, feeEstimator } = options;
279
297
  if (amountToApprove) {
280
298
  if (!__classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f") || !__classPrivateFieldGet(this, _Safe4337Pack_paymasterOptions, "f").paymasterTokenAddress) {
@@ -296,7 +314,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
296
314
  ? __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_encodeExecuteUserOpCallData).call(this, {
297
315
  to: multiSendAddress,
298
316
  value: '0',
299
- data: __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_encodeMultiSendCallData).call(this, transactions),
317
+ data: (0, utils_1.encodeMultiSendCallData)(transactions),
300
318
  operation: safe_core_sdk_types_1.OperationType.DelegateCall
301
319
  })
302
320
  : __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_encodeExecuteUserOpCallData).call(this, transactions[0]);
@@ -319,6 +337,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
319
337
  userOperation.initCode = await this.protocolKit.getInitCode();
320
338
  }
321
339
  const safeOperation = new SafeOperation_1.default(userOperation, {
340
+ moduleAddress: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f"),
322
341
  entryPoint: __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f"),
323
342
  validUntil,
324
343
  validAfter
@@ -331,11 +350,20 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
331
350
  /**
332
351
  * Signs a safe operation.
333
352
  *
334
- * @param {EthSafeOperation} safeOperation - The SafeOperation to sign.
353
+ * @param {EthSafeOperation | SafeOperationResponse} safeOperation - The SafeOperation to sign. It can be:
354
+ * - A response from the API (Tx Service)
355
+ * - An instance of EthSafeOperation
335
356
  * @param {SigningMethod} signingMethod - The signing method to use.
336
357
  * @return {Promise<EthSafeOperation>} The Promise object will resolve to the signed SafeOperation.
337
358
  */
338
359
  async signSafeOperation(safeOperation, signingMethod = protocol_kit_1.SigningMethod.ETH_SIGN_TYPED_DATA_V4) {
360
+ let safeOp;
361
+ if ((0, safe_core_sdk_types_1.isSafeOperationResponse)(safeOperation)) {
362
+ safeOp = __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_toSafeOperation).call(this, safeOperation);
363
+ }
364
+ else {
365
+ safeOp = safeOperation;
366
+ }
339
367
  const owners = await this.protocolKit.getOwners();
340
368
  const signerAddress = await this.protocolKit.getSafeProvider().getSignerAddress();
341
369
  if (!signerAddress) {
@@ -349,19 +377,20 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
349
377
  if (signingMethod === protocol_kit_1.SigningMethod.ETH_SIGN_TYPED_DATA_V4 ||
350
378
  signingMethod === protocol_kit_1.SigningMethod.ETH_SIGN_TYPED_DATA_V3 ||
351
379
  signingMethod === protocol_kit_1.SigningMethod.ETH_SIGN_TYPED_DATA) {
352
- signature = await __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_signTypedData).call(this, safeOperation.data);
380
+ signature = await (0, utils_1.signSafeOp)(safeOp.data, this.protocolKit.getSafeProvider(), __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f"));
353
381
  }
354
382
  else {
355
383
  const chainId = await this.protocolKit.getSafeProvider().getChainId();
356
- const safeOpHash = __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_getSafeUserOperationHash).call(this, safeOperation.data, chainId);
384
+ const safeOpHash = (0, utils_1.calculateSafeUserOperationHash)(safeOp.data, chainId, __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f"));
357
385
  signature = await this.protocolKit.signHash(safeOpHash);
358
386
  }
359
- const signedSafeOperation = new SafeOperation_1.default(safeOperation.toUserOperation(), {
387
+ const signedSafeOperation = new SafeOperation_1.default(safeOp.toUserOperation(), {
388
+ moduleAddress: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f"),
360
389
  entryPoint: __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f"),
361
- validUntil: safeOperation.data.validUntil,
362
- validAfter: safeOperation.data.validAfter
390
+ validUntil: safeOp.data.validUntil,
391
+ validAfter: safeOp.data.validAfter
363
392
  });
364
- signedSafeOperation.signatures.forEach((signature) => {
393
+ safeOp.signatures.forEach((signature) => {
365
394
  signedSafeOperation.addSignature(signature);
366
395
  });
367
396
  signedSafeOperation.addSignature(signature);
@@ -370,12 +399,25 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
370
399
  /**
371
400
  * Executes the relay transaction.
372
401
  *
373
- * @param {EthSafeOperation} safeOperation - The SafeOperation to execute.
402
+ * @param {Safe4337ExecutableProps} props - The parameters for the transaction execution.
403
+ * @param {EthSafeOperation | SafeOperationResponse} props.executable - The SafeOperation to execute. It can be:
404
+ * - A response from the API (Tx Service)
405
+ * - An instance of EthSafeOperation
374
406
  * @return {Promise<string>} The user operation hash.
375
407
  */
376
- async executeTransaction({ executable: safeOperation }) {
408
+ async executeTransaction({ executable }) {
409
+ let safeOperation;
410
+ if ((0, safe_core_sdk_types_1.isSafeOperationResponse)(executable)) {
411
+ safeOperation = __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_toSafeOperation).call(this, executable);
412
+ }
413
+ else {
414
+ safeOperation = executable;
415
+ }
377
416
  const userOperation = safeOperation.toUserOperation();
378
- return __classPrivateFieldGet(this, _Safe4337Pack_instances, "m", _Safe4337Pack_sendUserOperation).call(this, userOperation);
417
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.SEND_USER_OPERATION, [
418
+ (0, utils_1.userOperationToHexValues)(userOperation),
419
+ __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f")
420
+ ]);
379
421
  }
380
422
  /**
381
423
  * Return a UserOperation based on a hash (userOpHash) returned by eth_sendUserOperation
@@ -384,8 +426,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
384
426
  * @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
385
427
  */
386
428
  async getUserOperationByHash(userOpHash) {
387
- const userOperation = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.GET_USER_OPERATION_BY_HASH, [userOpHash]);
388
- return userOperation;
429
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.GET_USER_OPERATION_BY_HASH, [userOpHash]);
389
430
  }
390
431
  /**
391
432
  * Return a UserOperation receipt based on a hash (userOpHash) returned by eth_sendUserOperation
@@ -394,8 +435,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
394
435
  * @returns {UserOperationReceipt} - null in case the UserOperation is not yet included in a block, or UserOperationReceipt object
395
436
  */
396
437
  async getUserOperationReceipt(userOpHash) {
397
- const userOperationReceipt = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.GET_USER_OPERATION_RECEIPT, [userOpHash]);
398
- return userOperationReceipt;
438
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.GET_USER_OPERATION_RECEIPT, [userOpHash]);
399
439
  }
400
440
  /**
401
441
  * Returns an array of the entryPoint addresses supported by the client.
@@ -404,8 +444,7 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
404
444
  * @returns {string[]} - The supported entry points.
405
445
  */
406
446
  async getSupportedEntryPoints() {
407
- const supportedEntryPoints = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS, []);
408
- return supportedEntryPoints;
447
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS, []);
409
448
  }
410
449
  /**
411
450
  * Returns EIP-155 Chain ID.
@@ -413,60 +452,44 @@ class Safe4337Pack extends RelayKitBasePack_1.RelayKitBasePack {
413
452
  * @returns {string} - The chain id.
414
453
  */
415
454
  async getChainId() {
416
- const chainId = await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.CHAIN_ID, []);
417
- return chainId;
455
+ return __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.CHAIN_ID, []);
418
456
  }
419
457
  }
420
458
  exports.Safe4337Pack = Safe4337Pack;
421
- _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) {
422
- return ethers_1.ethers.TypedDataEncoder.hash({
423
- chainId,
424
- verifyingContract: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f")
425
- }, constants_1.EIP712_SAFE_OPERATION_TYPE, safeUserOperation);
426
- }, _Safe4337Pack_sendUserOperation =
427
- /**
428
- * Send the UserOperation to the bundler.
429
- *
430
- * @param {UserOperation} userOpWithSignature - The signed UserOperation to send to the bundler.
431
- * @return {Promise<string>} The hash.
432
- */
433
- async function _Safe4337Pack_sendUserOperation(userOpWithSignature) {
434
- return await __classPrivateFieldGet(this, _Safe4337Pack_bundlerClient, "f").send(constants_1.RPC_4337_CALLS.SEND_USER_OPERATION, [
435
- (0, utils_1.userOperationToHexValues)(userOpWithSignature),
436
- __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f")
437
- ]);
438
- }, _Safe4337Pack_signTypedData =
439
- /**
440
- * Signs typed data.
441
- *
442
- * @param {SafeUserOperation} safeUserOperation - Safe user operation to sign.
443
- * @return {Promise<SafeSignature>} The SafeSignature object containing the data and the signatures.
444
- */
445
- async function _Safe4337Pack_signTypedData(safeUserOperation) {
446
- const safeProvider = this.protocolKit.getSafeProvider();
447
- const signer = (await safeProvider.getExternalSigner());
448
- const chainId = await safeProvider.getChainId();
449
- const signerAddress = await signer.getAddress();
450
- const signature = await signer.signTypedData({
451
- chainId,
452
- verifyingContract: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f")
453
- }, constants_1.EIP712_SAFE_OPERATION_TYPE, {
454
- ...safeUserOperation,
455
- nonce: ethers_1.ethers.toBeHex(safeUserOperation.nonce),
456
- validAfter: ethers_1.ethers.toBeHex(safeUserOperation.validAfter),
457
- validUntil: ethers_1.ethers.toBeHex(safeUserOperation.validUntil),
458
- maxFeePerGas: ethers_1.ethers.toBeHex(safeUserOperation.maxFeePerGas),
459
- maxPriorityFeePerGas: ethers_1.ethers.toBeHex(safeUserOperation.maxPriorityFeePerGas)
459
+ _Safe4337Pack_BUNDLER_URL = new WeakMap(), _Safe4337Pack_ENTRYPOINT_ADDRESS = new WeakMap(), _Safe4337Pack_SAFE_4337_MODULE_ADDRESS = new WeakMap(), _Safe4337Pack_bundlerClient = new WeakMap(), _Safe4337Pack_paymasterOptions = new WeakMap(), _Safe4337Pack_instances = new WeakSet(), _Safe4337Pack_toSafeOperation = function _Safe4337Pack_toSafeOperation(safeOperationResponse) {
460
+ const { validUntil, validAfter, userOperation } = safeOperationResponse;
461
+ const safeOperation = new SafeOperation_1.default({
462
+ sender: userOperation?.sender || '0x',
463
+ nonce: userOperation?.nonce?.toString() || '0',
464
+ initCode: userOperation?.initCode || '',
465
+ callData: userOperation?.callData || '',
466
+ callGasLimit: BigInt(userOperation?.callGasLimit || 0n),
467
+ verificationGasLimit: BigInt(userOperation?.verificationGasLimit || 0),
468
+ preVerificationGas: BigInt(userOperation?.preVerificationGas || 0),
469
+ maxFeePerGas: BigInt(userOperation?.maxFeePerGas || 0),
470
+ maxPriorityFeePerGas: BigInt(userOperation?.maxPriorityFeePerGas || 0),
471
+ paymasterAndData: userOperation?.paymasterData || '0x',
472
+ signature: userOperation?.signature || '0x'
473
+ }, {
474
+ moduleAddress: __classPrivateFieldGet(this, _Safe4337Pack_SAFE_4337_MODULE_ADDRESS, "f"),
475
+ entryPoint: userOperation?.entryPoint || __classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f"),
476
+ validAfter: validAfter ? new Date(validAfter).getTime() : undefined,
477
+ validUntil: validUntil ? new Date(validUntil).getTime() : undefined
460
478
  });
461
- return new protocol_kit_1.EthSafeSignature(signerAddress, signature);
462
- }, _Safe4337Pack_getAccountNonce =
479
+ if (safeOperationResponse.confirmations) {
480
+ safeOperationResponse.confirmations.forEach((confirmation) => {
481
+ safeOperation.addSignature(new protocol_kit_1.EthSafeSignature(confirmation.owner, confirmation.signature));
482
+ });
483
+ }
484
+ return safeOperation;
485
+ }, _Safe4337Pack_getSafeNonceFromEntrypoint =
463
486
  /**
464
487
  * Gets account nonce from the bundler.
465
488
  *
466
- * @param {string} sender - Account address for which the nonce is to be fetched.
489
+ * @param {string} safeAddress - Account address for which the nonce is to be fetched.
467
490
  * @returns {Promise<string>} The Promise object will resolve to the account nonce.
468
491
  */
469
- async function _Safe4337Pack_getAccountNonce(sender) {
492
+ async function _Safe4337Pack_getSafeNonceFromEntrypoint(safeAddress) {
470
493
  const abi = [
471
494
  {
472
495
  inputs: [
@@ -479,8 +502,8 @@ async function _Safe4337Pack_getAccountNonce(sender) {
479
502
  type: 'function'
480
503
  }
481
504
  ];
482
- const contract = new ethers_1.ethers.Contract(__classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f") || '0x', abi, __classPrivateFieldGet(this, _Safe4337Pack_publicClient, "f"));
483
- const newNonce = await contract.getNonce(sender, BigInt(0));
505
+ const contract = new ethers_1.ethers.Contract(__classPrivateFieldGet(this, _Safe4337Pack_ENTRYPOINT_ADDRESS, "f") || '0x', abi, this.protocolKit.getSafeProvider().getExternalProvider());
506
+ const newNonce = await contract.getNonce(safeAddress, BigInt(0));
484
507
  return newNonce.toString();
485
508
  }, _Safe4337Pack_encodeExecuteUserOpCallData = function _Safe4337Pack_encodeExecuteUserOpCallData(transaction) {
486
509
  return constants_1.INTERFACES.encodeFunctionData('executeUserOp', [
@@ -489,9 +512,5 @@ async function _Safe4337Pack_getAccountNonce(sender) {
489
512
  transaction.data,
490
513
  transaction.operation || safe_core_sdk_types_1.OperationType.Call
491
514
  ]);
492
- }, _Safe4337Pack_encodeMultiSendCallData = function _Safe4337Pack_encodeMultiSendCallData(transactions) {
493
- return constants_1.INTERFACES.encodeFunctionData('multiSend', [
494
- (0, protocol_kit_1.encodeMultiSendData)(transactions.map((tx) => ({ ...tx, operation: tx.operation ?? safe_core_sdk_types_1.OperationType.Call })))
495
- ]);
496
515
  };
497
516
  //# sourceMappingURL=Safe4337Pack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Safe4337Pack.js","sourceRoot":"","sources":["../../../../src/packs/safe-4337/Safe4337Pack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Safe4337Pack.js","sourceRoot":"","sources":["../../../../src/packs/safe-4337/Safe4337Pack.ts"],"names":[],"mappings":"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"}