@safe-global/relay-kit 3.1.1 → 3.2.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 (27) hide show
  1. package/dist/src/deprecated.d.ts +4 -4
  2. package/dist/src/index.d.ts +5 -0
  3. package/dist/src/packs/gelato/GelatoRelayPack.d.ts +1 -1
  4. package/dist/src/packs/gelato/types.d.ts +1 -1
  5. package/dist/src/packs/safe-4337/Safe4337Pack.d.ts +1 -1
  6. package/dist/src/packs/safe-4337/Safe4337Pack.js +83 -64
  7. package/dist/src/packs/safe-4337/Safe4337Pack.js.map +1 -1
  8. package/dist/src/packs/safe-4337/SafeOperation.d.ts +1 -1
  9. package/dist/src/packs/safe-4337/SafeOperation.js +3 -3
  10. package/dist/src/packs/safe-4337/SafeOperation.js.map +1 -1
  11. package/dist/src/packs/safe-4337/constants.d.ts +92 -11
  12. package/dist/src/packs/safe-4337/constants.js +25 -12
  13. package/dist/src/packs/safe-4337/constants.js.map +1 -1
  14. package/dist/src/packs/safe-4337/estimators/PimlicoFeeEstimator.d.ts +1 -1
  15. package/dist/src/packs/safe-4337/estimators/PimlicoFeeEstimator.js +13 -6
  16. package/dist/src/packs/safe-4337/estimators/PimlicoFeeEstimator.js.map +1 -1
  17. package/dist/src/packs/safe-4337/testing-utils/helpers.d.ts +1 -1
  18. package/dist/src/packs/safe-4337/testing-utils/helpers.js +7 -4
  19. package/dist/src/packs/safe-4337/testing-utils/helpers.js.map +1 -1
  20. package/dist/src/packs/safe-4337/types.d.ts +82 -3
  21. package/dist/src/packs/safe-4337/utils/entrypoint.d.ts +1 -1
  22. package/dist/src/packs/safe-4337/utils/entrypoint.js.map +1 -1
  23. package/dist/src/packs/safe-4337/utils.d.ts +22 -10
  24. package/dist/src/packs/safe-4337/utils.js +49 -31
  25. package/dist/src/packs/safe-4337/utils.js.map +1 -1
  26. package/dist/tsconfig.build.tsbuildinfo +1 -1
  27. package/package.json +4 -4
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RPC_4337_CALLS = exports.ENTRYPOINT_ADDRESS_V07 = exports.ENTRYPOINT_ADDRESS_V06 = exports.INTERFACES = exports.EIP712_SAFE_OPERATION_TYPE = exports.DEFAULT_SAFE_MODULES_VERSION = exports.DEFAULT_SAFE_VERSION = void 0;
4
- const ethers_1 = require("ethers");
3
+ exports.RPC_4337_CALLS = exports.ENTRYPOINT_ADDRESS_V07 = exports.ENTRYPOINT_ADDRESS_V06 = exports.ENTRYPOINT_ABI = exports.ABI = exports.EIP712_SAFE_OPERATION_TYPE = exports.DEFAULT_SAFE_MODULES_VERSION = exports.DEFAULT_SAFE_VERSION = void 0;
4
+ const viem_1 = require("viem");
5
5
  exports.DEFAULT_SAFE_VERSION = '1.4.1';
6
6
  exports.DEFAULT_SAFE_MODULES_VERSION = '0.2.0';
7
7
  exports.EIP712_SAFE_OPERATION_TYPE = {
@@ -21,22 +21,35 @@ exports.EIP712_SAFE_OPERATION_TYPE = {
21
21
  { type: 'address', name: 'entryPoint' }
22
22
  ]
23
23
  };
24
- exports.INTERFACES = new ethers_1.ethers.Interface([
24
+ exports.ABI = (0, viem_1.parseAbi)([
25
25
  'function enableModules(address[])',
26
26
  'function multiSend(bytes memory transactions) public payable',
27
27
  'function executeUserOp(address to, uint256 value, bytes data, uint8 operation)',
28
28
  'function approve(address _spender, uint256 _value)',
29
29
  'function configure((uint256 x, uint256 y, uint176 verifiers) signer)'
30
30
  ]);
31
+ exports.ENTRYPOINT_ABI = [
32
+ {
33
+ inputs: [
34
+ { name: 'sender', type: 'address' },
35
+ { name: 'key', type: 'uint192' }
36
+ ],
37
+ name: 'getNonce',
38
+ outputs: [{ name: 'nonce', type: 'uint256' }],
39
+ stateMutability: 'view',
40
+ type: 'function'
41
+ }
42
+ ];
31
43
  exports.ENTRYPOINT_ADDRESS_V06 = '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789';
32
44
  exports.ENTRYPOINT_ADDRESS_V07 = '0x0000000071727De22E5E9d8BAf0edAc6f37da032';
33
- exports.RPC_4337_CALLS = {
34
- ESTIMATE_USER_OPERATION_GAS: 'eth_estimateUserOperationGas',
35
- SEND_USER_OPERATION: 'eth_sendUserOperation',
36
- GET_USER_OPERATION_BY_HASH: 'eth_getUserOperationByHash',
37
- GET_USER_OPERATION_RECEIPT: 'eth_getUserOperationReceipt',
38
- SUPPORTED_ENTRY_POINTS: 'eth_supportedEntryPoints',
39
- CHAIN_ID: 'eth_chainId',
40
- SPONSOR_USER_OPERATION: 'pm_sponsorUserOperation'
41
- };
45
+ var RPC_4337_CALLS;
46
+ (function (RPC_4337_CALLS) {
47
+ RPC_4337_CALLS["ESTIMATE_USER_OPERATION_GAS"] = "eth_estimateUserOperationGas";
48
+ RPC_4337_CALLS["SEND_USER_OPERATION"] = "eth_sendUserOperation";
49
+ RPC_4337_CALLS["GET_USER_OPERATION_BY_HASH"] = "eth_getUserOperationByHash";
50
+ RPC_4337_CALLS["GET_USER_OPERATION_RECEIPT"] = "eth_getUserOperationReceipt";
51
+ RPC_4337_CALLS["SUPPORTED_ENTRY_POINTS"] = "eth_supportedEntryPoints";
52
+ RPC_4337_CALLS["CHAIN_ID"] = "eth_chainId";
53
+ RPC_4337_CALLS["SPONSOR_USER_OPERATION"] = "pm_sponsorUserOperation";
54
+ })(RPC_4337_CALLS || (exports.RPC_4337_CALLS = RPC_4337_CALLS = {}));
42
55
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/packs/safe-4337/constants.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAElB,QAAA,oBAAoB,GAAG,OAAO,CAAA;AAC9B,QAAA,4BAA4B,GAAG,OAAO,CAAA;AAEtC,QAAA,0BAA0B,GAAG;IACxC,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;QACjC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;QAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE;QACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACjD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE;QAC/C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE;QACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACjD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE;QAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;QACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;QACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;KACxC;CACF,CAAA;AAEY,QAAA,UAAU,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC;IAC7C,mCAAmC;IACnC,8DAA8D;IAC9D,gFAAgF;IAChF,oDAAoD;IACpD,sEAAsE;CACvE,CAAC,CAAA;AAEW,QAAA,sBAAsB,GAAG,4CAA4C,CAAA;AACrE,QAAA,sBAAsB,GAAG,4CAA4C,CAAA;AAErE,QAAA,cAAc,GAAG;IAC5B,2BAA2B,EAAE,8BAA8B;IAC3D,mBAAmB,EAAE,uBAAuB;IAC5C,0BAA0B,EAAE,4BAA4B;IACxD,0BAA0B,EAAE,6BAA6B;IACzD,sBAAsB,EAAE,0BAA0B;IAClD,QAAQ,EAAE,aAAa;IACvB,sBAAsB,EAAE,yBAAyB;CAClD,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/packs/safe-4337/constants.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,oBAAoB,GAAG,OAAO,CAAA;AAC9B,QAAA,4BAA4B,GAAG,OAAO,CAAA;AAEtC,QAAA,0BAA0B,GAAG;IACxC,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;QACjC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;QAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;QACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE;QACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACjD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE;QAC/C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE;QACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACjD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE;QAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;QACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;QACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;KACxC;CACF,CAAA;AAEY,QAAA,GAAG,GAAG,IAAA,eAAQ,EAAC;IAC1B,mCAAmC;IACnC,8DAA8D;IAC9D,gFAAgF;IAChF,oDAAoD;IACpD,sEAAsE;CACvE,CAAC,CAAA;AAEW,QAAA,cAAc,GAAG;IAC5B;QACE,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;SACjC;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEG,QAAA,sBAAsB,GAAG,4CAA4C,CAAA;AACrE,QAAA,sBAAsB,GAAG,4CAA4C,CAAA;AAElF,IAAY,cAQX;AARD,WAAY,cAAc;IACxB,8EAA4D,CAAA;IAC5D,+DAA6C,CAAA;IAC7C,2EAAyD,CAAA;IACzD,4EAA0D,CAAA;IAC1D,qEAAmD,CAAA;IACnD,0CAAwB,CAAA;IACxB,oEAAkD,CAAA;AACpD,CAAC,EARW,cAAc,8BAAd,cAAc,QAQzB"}
@@ -1,4 +1,4 @@
1
- import { EstimateGasData } from '@safe-global/safe-core-sdk-types';
1
+ import { EstimateGasData } from '@safe-global/types-kit';
2
2
  import { EstimateFeeFunctionProps, EstimateSponsoredFeeFunctionProps, EstimateSponsoredGasData, IFeeEstimator } from '../types';
3
3
  export declare class PimlicoFeeEstimator implements IFeeEstimator {
4
4
  #private;
@@ -27,16 +27,23 @@ class PimlicoFeeEstimator {
27
27
  }
28
28
  async getPaymasterEstimation({ userOperation, paymasterUrl, entryPoint, sponsorshipPolicyId }) {
29
29
  const paymasterClient = (0, utils_1.getEip4337BundlerProvider)(paymasterUrl);
30
- const params = sponsorshipPolicyId
31
- ? [(0, utils_1.userOperationToHexValues)(userOperation), entryPoint, { sponsorshipPolicyId }]
32
- : [(0, utils_1.userOperationToHexValues)(userOperation), entryPoint];
33
- const gasEstimate = await paymasterClient.send(constants_1.RPC_4337_CALLS.SPONSOR_USER_OPERATION, params);
30
+ const gasEstimate = await paymasterClient.request({
31
+ method: constants_1.RPC_4337_CALLS.SPONSOR_USER_OPERATION,
32
+ params: sponsorshipPolicyId
33
+ ? [(0, utils_1.userOperationToHexValues)(userOperation), entryPoint, { sponsorshipPolicyId }]
34
+ : [(0, utils_1.userOperationToHexValues)(userOperation), entryPoint]
35
+ });
34
36
  return gasEstimate;
35
37
  }
36
38
  }
37
39
  exports.PimlicoFeeEstimator = PimlicoFeeEstimator;
38
40
  _PimlicoFeeEstimator_instances = new WeakSet(), _PimlicoFeeEstimator_getFeeData = async function _PimlicoFeeEstimator_getFeeData(bundlerClient) {
39
- const { fast } = await bundlerClient.send('pimlico_getUserOperationGasPrice', []);
40
- return fast;
41
+ const { fast: { maxFeePerGas, maxPriorityFeePerGas } } = await bundlerClient.request({
42
+ method: 'pimlico_getUserOperationGasPrice'
43
+ });
44
+ return {
45
+ maxFeePerGas: BigInt(maxFeePerGas),
46
+ maxPriorityFeePerGas: BigInt(maxPriorityFeePerGas)
47
+ };
41
48
  };
42
49
  //# sourceMappingURL=PimlicoFeeEstimator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PimlicoFeeEstimator.js","sourceRoot":"","sources":["../../../../../src/packs/safe-4337/estimators/PimlicoFeeEstimator.ts"],"names":[],"mappings":";;;;;;;;;AAQA,oCAA8E;AAC9E,4CAA6C;AAE7C,MAAa,mBAAmB;IAAhC;;IAyCA,CAAC;IAxCC,KAAK,CAAC,eAAe,CAAC,EAAE,UAAU,EAA4B;QAC5D,MAAM,aAAa,GAAG,IAAA,iCAAyB,EAAC,UAAU,CAAC,CAAA;QAE3D,MAAM,OAAO,GAAG,MAAM,uBAAA,IAAI,uEAAY,MAAhB,IAAI,EAAa,aAAa,CAAC,CAAA;QAErD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAA4B;QAChE,OAAO;YACL,YAAY,EAAE,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,GAAG,EAAE,EAAE,OAAO;YACnF,oBAAoB,EAAE,aAAa,CAAC,oBAAoB,GAAG,EAAE,EAAE,QAAQ;YACvE,kBAAkB,EAAE,aAAa,CAAC,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,GAAG,GAAG,CAAC,MAAM;SACrG,CAAA;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,EAC3B,aAAa,EACb,YAAY,EACZ,UAAU,EACV,mBAAmB,EACe;QAClC,MAAM,eAAe,GAAG,IAAA,iCAAyB,EAAC,YAAY,CAAC,CAAA;QAE/D,MAAM,MAAM,GAAG,mBAAmB;YAChC,CAAC,CAAC,CAAC,IAAA,gCAAwB,EAAC,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE,mBAAmB,EAAE,CAAC;YAChF,CAAC,CAAC,CAAC,IAAA,gCAAwB,EAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAA;QAEzD,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,0BAAc,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;QAE7F,OAAO,WAAW,CAAA;IACpB,CAAC;CASF;AAzCD,kDAyCC;kFAPC,KAAK,0CACH,aAAqC;IAErC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAA;IAEjF,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"PimlicoFeeEstimator.js","sourceRoot":"","sources":["../../../../../src/packs/safe-4337/estimators/PimlicoFeeEstimator.ts"],"names":[],"mappings":";;;;;;;;;AAQA,oCAA8E;AAC9E,4CAA6C;AAE7C,MAAa,mBAAmB;IAAhC;;IAiDA,CAAC;IAhDC,KAAK,CAAC,eAAe,CAAC,EAAE,UAAU,EAA4B;QAC5D,MAAM,aAAa,GAAG,IAAA,iCAAyB,EAAC,UAAU,CAAC,CAAA;QAE3D,MAAM,OAAO,GAAG,MAAM,uBAAA,IAAI,uEAAY,MAAhB,IAAI,EAAa,aAAa,CAAC,CAAA;QAErD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAA4B;QAChE,OAAO;YACL,YAAY,EAAE,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,GAAG,EAAE,EAAE,OAAO;YACnF,oBAAoB,EAAE,aAAa,CAAC,oBAAoB,GAAG,EAAE,EAAE,QAAQ;YACvE,kBAAkB,EAAE,aAAa,CAAC,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,GAAG,GAAG,CAAC,MAAM;SACrG,CAAA;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,EAC3B,aAAa,EACb,YAAY,EACZ,UAAU,EACV,mBAAmB,EACe;QAClC,MAAM,eAAe,GAAG,IAAA,iCAAyB,EAAC,YAAY,CAAC,CAAA;QAE/D,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC;YAChD,MAAM,EAAE,0BAAc,CAAC,sBAAsB;YAC7C,MAAM,EAAE,mBAAmB;gBACzB,CAAC,CAAC,CAAC,IAAA,gCAAwB,EAAC,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE,mBAAmB,EAAE,CAAC;gBAChF,CAAC,CAAC,CAAC,IAAA,gCAAwB,EAAC,aAAa,CAAC,EAAE,UAAU,CAAC;SAC1D,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA;IACpB,CAAC;CAgBF;AAjDD,kDAiDC;kFAdC,KAAK,0CACH,aAA4B;IAE5B,MAAM,EACJ,IAAI,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,EAC7C,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC;QAC9B,MAAM,EAAE,kCAAkC;KAC3C,CAAC,CAAA;IAEF,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;QAClC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,CAAC;KACnD,CAAA;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { Safe4337InitOptions } from '../types';
2
2
  import { Safe4337Pack } from '../Safe4337Pack';
3
- export declare const generateTransferCallData: (to: string, value: bigint) => string;
3
+ export declare const generateTransferCallData: (to: string, value: bigint) => `0x${string}`;
4
4
  export declare const createSafe4337Pack: (initOptions: Partial<Safe4337InitOptions>) => Promise<Safe4337Pack>;
@@ -24,13 +24,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.createSafe4337Pack = exports.generateTransferCallData = void 0;
27
- const ethers_1 = require("ethers");
27
+ const viem_1 = require("viem");
28
28
  const Safe4337Pack_1 = require("../Safe4337Pack");
29
29
  const fixtures = __importStar(require("./fixtures"));
30
30
  const generateTransferCallData = (to, value) => {
31
- const functionAbi = 'function transfer(address _to, uint256 _value) returns (bool)';
32
- const iface = new ethers_1.ethers.Interface([functionAbi]);
33
- return iface.encodeFunctionData('transfer', [to, value]);
31
+ const functionAbi = (0, viem_1.parseAbi)(['function transfer(address _to, uint256 _value) returns (bool)']);
32
+ return (0, viem_1.encodeFunctionData)({
33
+ abi: functionAbi,
34
+ functionName: 'transfer',
35
+ args: [to, value]
36
+ });
34
37
  };
35
38
  exports.generateTransferCallData = generateTransferCallData;
36
39
  const safe4337PackCache = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/packs/safe-4337/testing-utils/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA+B;AAE/B,kDAA8C;AAC9C,qDAAsC;AAE/B,MAAM,wBAAwB,GAAG,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE;IACpE,MAAM,WAAW,GAAG,+DAA+D,CAAA;IACnF,MAAM,KAAK,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjD,OAAO,KAAK,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;AAC1D,CAAC,CAAA;AALY,QAAA,wBAAwB,4BAKpC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAA;AAE5B,MAAM,kBAAkB,GAAG,KAAK,EACrC,WAAyC,EAClB,EAAE;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAEvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,2BAAY,CAAC,IAAI,CAAC;QAC3C,QAAQ,EAAE,QAAQ,CAAC,OAAO;QAC1B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;QAC/B,OAAO,EAAE;YACP,WAAW,EAAE,EAAE;SAChB;QACD,GAAG,WAAW;QACd,UAAU,EAAE,QAAQ,CAAC,WAAW;KACjC,CAAC,CAAA;IAEF,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAExC,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAtBY,QAAA,kBAAkB,sBAsB9B"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/packs/safe-4337/testing-utils/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAmD;AAEnD,kDAA8C;AAC9C,qDAAsC;AAE/B,MAAM,wBAAwB,GAAG,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE;IACpE,MAAM,WAAW,GAAG,IAAA,eAAQ,EAAC,CAAC,+DAA+D,CAAC,CAAC,CAAA;IAE/F,OAAO,IAAA,yBAAkB,EAAC;QACxB,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;KAClB,CAAC,CAAA;AACJ,CAAC,CAAA;AARY,QAAA,wBAAwB,4BAQpC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAA;AAE5B,MAAM,kBAAkB,GAAG,KAAK,EACrC,WAAyC,EAClB,EAAE;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAEvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,2BAAY,CAAC,IAAI,CAAC;QAC3C,QAAQ,EAAE,QAAQ,CAAC,OAAO;QAC1B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;QAC/B,OAAO,EAAE;YACP,WAAW,EAAE,EAAE;SAChB;QACD,GAAG,WAAW;QACd,UAAU,EAAE,QAAQ,CAAC,WAAW;KACjC,CAAC,CAAA;IAEF,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAExC,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAtBY,QAAA,kBAAkB,sBAsB9B"}
@@ -1,7 +1,8 @@
1
+ import { Account, Address, Chain, Hash, Hex, PublicClient, PublicRpcSchema, Transport } from 'viem';
1
2
  import Safe, { SafeProviderConfig } from '@safe-global/protocol-kit';
2
- import { EstimateGasData, MetaTransactionData, SafeOperationResponse, SafeVersion, UserOperation } from '@safe-global/safe-core-sdk-types';
3
- import { ethers } from 'ethers';
3
+ import { EstimateGasData, MetaTransactionData, SafeOperationResponse, SafeVersion, UserOperation } from '@safe-global/types-kit';
4
4
  import EthSafeOperation from './SafeOperation';
5
+ import { RPC_4337_CALLS } from './constants';
5
6
  type ExistingSafeOptions = {
6
7
  safeAddress: string;
7
8
  };
@@ -42,7 +43,7 @@ export type Safe4337Options = {
42
43
  protocolKit: Safe;
43
44
  bundlerUrl: string;
44
45
  paymasterOptions?: PaymasterOptions;
45
- bundlerClient: ethers.JsonRpcProvider;
46
+ bundlerClient: BundlerClient;
46
47
  entryPointAddress: string;
47
48
  safe4337ModuleAddress: string;
48
49
  safeWebAuthnSharedSignerAddress?: string;
@@ -126,4 +127,82 @@ export type EstimateFeeProps = {
126
127
  safeOperation: EthSafeOperation;
127
128
  feeEstimator?: IFeeEstimator;
128
129
  };
130
+ type UserOperationStringValues = Omit<UserOperation, 'callGasLimit' | 'verificationGasLimit' | 'preVerificationGas' | 'maxFeePerGas' | 'maxPriorityFeePerGas'> & {
131
+ callGasLimit: string;
132
+ verificationGasLimit: string;
133
+ preVerificationGas: string;
134
+ maxFeePerGas: string;
135
+ maxPriorityFeePerGas: string;
136
+ };
137
+ export type PimlicoCustomRpcSchema = [
138
+ {
139
+ Method: 'pimlico_getUserOperationGasPrice';
140
+ Parameters: never;
141
+ ReturnType: {
142
+ slow: {
143
+ maxFeePerGas: string;
144
+ maxPriorityFeePerGas: string;
145
+ };
146
+ standard: {
147
+ maxFeePerGas: string;
148
+ maxPriorityFeePerGas: string;
149
+ };
150
+ fast: {
151
+ maxFeePerGas: string;
152
+ maxPriorityFeePerGas: string;
153
+ };
154
+ };
155
+ },
156
+ {
157
+ Method: 'pm_sponsorUserOperation';
158
+ Parameters: [UserOperationStringValues, string, {
159
+ sponsorshipPolicyId?: string;
160
+ }?];
161
+ ReturnType: {
162
+ paymasterAndData: string;
163
+ callGasLimit: string;
164
+ verificationGasLimit: string;
165
+ preVerificationGas: string;
166
+ };
167
+ },
168
+ {
169
+ Method: RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS;
170
+ Parameters: never;
171
+ ReturnType: Hex[];
172
+ },
173
+ {
174
+ Method: RPC_4337_CALLS.ESTIMATE_USER_OPERATION_GAS;
175
+ Parameters: [UserOperationStringValues, string];
176
+ ReturnType: {
177
+ callGasLimit: string;
178
+ verificationGasLimit: string;
179
+ preVerificationGas: string;
180
+ };
181
+ },
182
+ {
183
+ Method: RPC_4337_CALLS.SEND_USER_OPERATION;
184
+ Parameters: [UserOperationStringValues, string];
185
+ ReturnType: Hex;
186
+ },
187
+ {
188
+ Method: RPC_4337_CALLS.GET_USER_OPERATION_BY_HASH;
189
+ Parameters: [Hash];
190
+ ReturnType: {
191
+ userOperation: UserOperation;
192
+ entryPoint: Address;
193
+ transactionHash: Hash;
194
+ blockHash: Hash;
195
+ blockNumber: string;
196
+ };
197
+ },
198
+ {
199
+ Method: RPC_4337_CALLS.GET_USER_OPERATION_RECEIPT;
200
+ Parameters: [Hash];
201
+ ReturnType: UserOperationReceipt;
202
+ }
203
+ ];
204
+ export type BundlerClient = PublicClient<Transport, Chain | undefined, Account | undefined, [
205
+ ...PimlicoCustomRpcSchema,
206
+ ...PublicRpcSchema
207
+ ]>;
129
208
  export {};
@@ -1,4 +1,4 @@
1
1
  export declare const EQ_OR_GT_0_3_0 = ">=0.3.0";
2
2
  export declare function sameString(str1: string, str2: string): boolean;
3
- export declare function entryPointToSafeModules(entryPoint: string): string;
3
+ export declare function entryPointToSafeModules(entryPoint: string): "0.2.0" | ">=0.3.0";
4
4
  export declare function isEntryPointV6(address: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../../../../../src/packs/safe-4337/utils/entrypoint.ts"],"names":[],"mappings":";;;AAAA,4CAA6E;AAE7E,MAAM,QAAQ,GAAG,OAAO,CAAA;AAEX,QAAA,cAAc,GAAG,SAAS,CAAA;AAEvC,SAAgB,UAAU,CAAC,IAAY,EAAE,IAAY;IACnD,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAA;AAClD,CAAC;AAFD,gCAEC;AAED,SAAgB,uBAAuB,CAAC,UAAkB;IACxD,MAAM,yBAAyB,GAA2B;QACxD,CAAC,kCAAsB,CAAC,EAAE,QAAQ;QAClC,CAAC,kCAAsB,CAAC,EAAE,sBAAc;KACzC,CAAA;IAED,OAAO,yBAAyB,CAAC,UAAU,CAAC,CAAA;AAC9C,CAAC;AAPD,0DAOC;AAED,SAAgB,cAAc,CAAC,OAAe;IAC5C,OAAO,UAAU,CAAC,OAAO,EAAE,kCAAsB,CAAC,CAAA;AACpD,CAAC;AAFD,wCAEC"}
1
+ {"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../../../../../src/packs/safe-4337/utils/entrypoint.ts"],"names":[],"mappings":";;;AAAA,4CAA6E;AAE7E,MAAM,QAAQ,GAAG,OAAO,CAAA;AAEX,QAAA,cAAc,GAAG,SAAS,CAAA;AAEvC,SAAgB,UAAU,CAAC,IAAY,EAAE,IAAY;IACnD,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAA;AAClD,CAAC;AAFD,gCAEC;AAED,SAAgB,uBAAuB,CAAC,UAAkB;IACxD,MAAM,yBAAyB,GAA4D;QACzF,CAAC,kCAAsB,CAAC,EAAE,QAAQ;QAClC,CAAC,kCAAsB,CAAC,EAAE,sBAAc;KACzC,CAAA;IAED,OAAO,yBAAyB,CAAC,UAAU,CAAC,CAAA;AAC9C,CAAC;AAPD,0DAOC;AAED,SAAgB,cAAc,CAAC,OAAe;IAC5C,OAAO,UAAU,CAAC,OAAO,EAAE,kCAAsB,CAAC,CAAA;AACpD,CAAC;AAFD,wCAEC"}
@@ -1,13 +1,13 @@
1
- import { SafeUserOperation, MetaTransactionData, SafeSignature, UserOperation } from '@safe-global/safe-core-sdk-types';
1
+ import { SafeUserOperation, MetaTransactionData, SafeSignature, UserOperation } from '@safe-global/types-kit';
2
2
  import { SafeProvider } from '@safe-global/protocol-kit';
3
- import { ethers } from 'ethers';
3
+ import { BundlerClient } from './types';
4
4
  /**
5
5
  * Gets the EIP-4337 bundler provider.
6
6
  *
7
7
  * @param {string} bundlerUrl The EIP-4337 bundler URL.
8
- * @return {Provider} The EIP-4337 bundler provider.
8
+ * @return {BundlerClient} The EIP-4337 bundler provider.
9
9
  */
10
- export declare function getEip4337BundlerProvider(bundlerUrl: string): ethers.JsonRpcProvider;
10
+ export declare function getEip4337BundlerProvider(bundlerUrl: string): BundlerClient;
11
11
  /**
12
12
  * Signs typed data.
13
13
  *
@@ -40,16 +40,28 @@ export declare function calculateSafeUserOperationHash(safeUserOperation: SafeUs
40
40
  * @returns {UserOperation} A new UserOperation object with the values converted to hexadecimal.
41
41
  */
42
42
  export declare function userOperationToHexValues(userOperation: UserOperation): {
43
- nonce: string;
44
- callGasLimit: string;
45
- verificationGasLimit: string;
46
- preVerificationGas: string;
47
- maxFeePerGas: string;
48
- maxPriorityFeePerGas: string;
43
+ nonce: `0x${string}`;
44
+ callGasLimit: `0x${string}`;
45
+ verificationGasLimit: `0x${string}`;
46
+ preVerificationGas: `0x${string}`;
47
+ maxFeePerGas: `0x${string}`;
48
+ maxPriorityFeePerGas: `0x${string}`;
49
49
  sender: string;
50
50
  initCode: string;
51
51
  callData: string;
52
52
  paymasterAndData: string;
53
+ /**
54
+ * Encodes the given WebAuthn signature into a string. This computes the ABI-encoded signature parameters:
55
+ * ```solidity
56
+ * abi.encode(authenticatorData, clientDataFields, r, s);
57
+ * ```
58
+ *
59
+ * @param authenticatorData - The authenticator data as a Uint8Array.
60
+ * @param clientDataFields - The client data fields as a string.
61
+ * @param r - The value of r as a bigint.
62
+ * @param s - The value of s as a bigint.
63
+ * @returns The encoded string.
64
+ */
53
65
  signature: string;
54
66
  };
55
67
  /**
@@ -1,19 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSignatureBytes = exports.addDummySignature = exports.DUMMY_AUTHENTICATOR_DATA = exports.DUMMY_CLIENT_DATA_FIELDS = exports.userOperationToHexValues = exports.calculateSafeUserOperationHash = exports.encodeMultiSendCallData = exports.signSafeOp = exports.getEip4337BundlerProvider = void 0;
4
- const safe_core_sdk_types_1 = require("@safe-global/safe-core-sdk-types");
4
+ const viem_1 = require("viem");
5
+ const types_kit_1 = require("@safe-global/types-kit");
5
6
  const protocol_kit_1 = require("@safe-global/protocol-kit");
6
- const ethers_1 = require("ethers");
7
7
  const constants_1 = require("./constants");
8
8
  /**
9
9
  * Gets the EIP-4337 bundler provider.
10
10
  *
11
11
  * @param {string} bundlerUrl The EIP-4337 bundler URL.
12
- * @return {Provider} The EIP-4337 bundler provider.
12
+ * @return {BundlerClient} The EIP-4337 bundler provider.
13
13
  */
14
14
  function getEip4337BundlerProvider(bundlerUrl) {
15
- const provider = new ethers_1.ethers.JsonRpcProvider(bundlerUrl, undefined, {
16
- batchMaxCount: 1
15
+ const provider = (0, viem_1.createPublicClient)({
16
+ transport: (0, viem_1.http)(bundlerUrl),
17
+ rpcSchema: (0, viem_1.rpcSchema)()
17
18
  });
18
19
  return provider;
19
20
  }
@@ -27,19 +28,27 @@ exports.getEip4337BundlerProvider = getEip4337BundlerProvider;
27
28
  * @return {Promise<SafeSignature>} The SafeSignature object containing the data and the signatures.
28
29
  */
29
30
  async function signSafeOp(safeUserOperation, safeProvider, safe4337ModuleAddress) {
30
- const signer = (await safeProvider.getExternalSigner());
31
+ const signer = await safeProvider.getExternalSigner();
32
+ if (!signer) {
33
+ throw new Error('No signer found');
34
+ }
31
35
  const chainId = await safeProvider.getChainId();
32
- const signerAddress = await signer.getAddress();
36
+ const signerAddress = signer.account.address;
33
37
  const signature = await signer.signTypedData({
34
- chainId,
35
- verifyingContract: safe4337ModuleAddress
36
- }, constants_1.EIP712_SAFE_OPERATION_TYPE, {
37
- ...safeUserOperation,
38
- nonce: ethers_1.ethers.toBeHex(safeUserOperation.nonce),
39
- validAfter: ethers_1.ethers.toBeHex(safeUserOperation.validAfter),
40
- validUntil: ethers_1.ethers.toBeHex(safeUserOperation.validUntil),
41
- maxFeePerGas: ethers_1.ethers.toBeHex(safeUserOperation.maxFeePerGas),
42
- maxPriorityFeePerGas: ethers_1.ethers.toBeHex(safeUserOperation.maxPriorityFeePerGas)
38
+ domain: {
39
+ chainId: Number(chainId),
40
+ verifyingContract: safe4337ModuleAddress
41
+ },
42
+ types: constants_1.EIP712_SAFE_OPERATION_TYPE,
43
+ message: {
44
+ ...safeUserOperation,
45
+ nonce: (0, viem_1.toHex)(safeUserOperation.nonce),
46
+ validAfter: (0, viem_1.toHex)(safeUserOperation.validAfter),
47
+ validUntil: (0, viem_1.toHex)(safeUserOperation.validUntil),
48
+ maxFeePerGas: (0, viem_1.toHex)(safeUserOperation.maxFeePerGas),
49
+ maxPriorityFeePerGas: (0, viem_1.toHex)(safeUserOperation.maxPriorityFeePerGas)
50
+ },
51
+ primaryType: 'SafeOp'
43
52
  });
44
53
  return new protocol_kit_1.EthSafeSignature(signerAddress, signature);
45
54
  }
@@ -51,9 +60,13 @@ exports.signSafeOp = signSafeOp;
51
60
  * @return {string} The encoded data string.
52
61
  */
53
62
  function encodeMultiSendCallData(transactions) {
54
- return constants_1.INTERFACES.encodeFunctionData('multiSend', [
55
- (0, protocol_kit_1.encodeMultiSendData)(transactions.map((tx) => ({ ...tx, operation: tx.operation ?? safe_core_sdk_types_1.OperationType.Call })))
56
- ]);
63
+ return (0, viem_1.encodeFunctionData)({
64
+ abi: constants_1.ABI,
65
+ functionName: 'multiSend',
66
+ args: [
67
+ (0, protocol_kit_1.encodeMultiSendData)(transactions.map((tx) => ({ ...tx, operation: tx.operation ?? types_kit_1.OperationType.Call })))
68
+ ]
69
+ });
57
70
  }
58
71
  exports.encodeMultiSendCallData = encodeMultiSendCallData;
59
72
  /**
@@ -65,10 +78,15 @@ exports.encodeMultiSendCallData = encodeMultiSendCallData;
65
78
  * @return {string} The hash of the safe operation.
66
79
  */
67
80
  function calculateSafeUserOperationHash(safeUserOperation, chainId, safe4337ModuleAddress) {
68
- return ethers_1.ethers.TypedDataEncoder.hash({
69
- chainId,
70
- verifyingContract: safe4337ModuleAddress
71
- }, constants_1.EIP712_SAFE_OPERATION_TYPE, safeUserOperation);
81
+ return (0, viem_1.hashTypedData)({
82
+ domain: {
83
+ chainId: Number(chainId),
84
+ verifyingContract: safe4337ModuleAddress
85
+ },
86
+ types: constants_1.EIP712_SAFE_OPERATION_TYPE,
87
+ primaryType: 'SafeOp',
88
+ message: safeUserOperation
89
+ });
72
90
  }
73
91
  exports.calculateSafeUserOperationHash = calculateSafeUserOperationHash;
74
92
  /**
@@ -80,12 +98,12 @@ exports.calculateSafeUserOperationHash = calculateSafeUserOperationHash;
80
98
  function userOperationToHexValues(userOperation) {
81
99
  const userOperationWithHexValues = {
82
100
  ...userOperation,
83
- nonce: ethers_1.ethers.toBeHex(userOperation.nonce),
84
- callGasLimit: ethers_1.ethers.toBeHex(userOperation.callGasLimit),
85
- verificationGasLimit: ethers_1.ethers.toBeHex(userOperation.verificationGasLimit),
86
- preVerificationGas: ethers_1.ethers.toBeHex(userOperation.preVerificationGas),
87
- maxFeePerGas: ethers_1.ethers.toBeHex(userOperation.maxFeePerGas),
88
- maxPriorityFeePerGas: ethers_1.ethers.toBeHex(userOperation.maxPriorityFeePerGas)
101
+ nonce: (0, viem_1.toHex)(BigInt(userOperation.nonce)),
102
+ callGasLimit: (0, viem_1.toHex)(userOperation.callGasLimit),
103
+ verificationGasLimit: (0, viem_1.toHex)(userOperation.verificationGasLimit),
104
+ preVerificationGas: (0, viem_1.toHex)(userOperation.preVerificationGas),
105
+ maxFeePerGas: (0, viem_1.toHex)(userOperation.maxFeePerGas),
106
+ maxPriorityFeePerGas: (0, viem_1.toHex)(userOperation.maxPriorityFeePerGas)
89
107
  };
90
108
  return userOperationWithHexValues;
91
109
  }
@@ -132,7 +150,7 @@ function addDummySignature(userOperation, signer, threshold) {
132
150
  }
133
151
  return {
134
152
  ...userOperation,
135
- signature: ethers_1.ethers.solidityPacked(['uint48', 'uint48', 'bytes'], [0, 0, (0, protocol_kit_1.buildSignatureBytes)(signatures)])
153
+ signature: (0, viem_1.encodePacked)(['uint48', 'uint48', 'bytes'], [0, 0, (0, protocol_kit_1.buildSignatureBytes)(signatures)])
136
154
  };
137
155
  }
138
156
  exports.addDummySignature = addDummySignature;
@@ -155,7 +173,7 @@ function getSignatureBytes({ authenticatorData, clientDataFields, r, s }) {
155
173
  // Calculate the byte size of the dynamic data along with the length parameter alligned to 32 bytes
156
174
  const byteSize = (data) => 32 * (Math.ceil(data.length / 32) + 1); // +1 is for the length parameter
157
175
  // Encode dynamic data padded with zeros if necessary in 32 bytes chunks
158
- const encodeBytes = (data) => `${encodeUint256(data.length)}${ethers_1.ethers.hexlify(data).slice(2)}`.padEnd(byteSize(data) * 2, '0');
176
+ const encodeBytes = (data) => `${encodeUint256(data.length)}${(0, viem_1.toHex)(data).slice(2)}`.padEnd(byteSize(data) * 2, '0');
159
177
  // authenticatorData starts after the first four words.
160
178
  const authenticatorDataOffset = 32 * 4;
161
179
  // clientDataFields starts immediately after the authenticator data.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/packs/safe-4337/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/packs/safe-4337/utils.ts"],"names":[],"mappings":"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"}