permissionless 0.0.15 → 0.0.17

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 (64) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_cjs/accounts/biconomy/abi/BiconomySmartAccountAbi.js +102 -0
  3. package/_cjs/accounts/biconomy/abi/BiconomySmartAccountAbi.js.map +1 -0
  4. package/_cjs/accounts/biconomy/privateKeyToBiconomySmartAccount.js +15 -0
  5. package/_cjs/accounts/biconomy/privateKeyToBiconomySmartAccount.js.map +1 -0
  6. package/_cjs/accounts/biconomy/signerToBiconomySmartAccount.js +195 -0
  7. package/_cjs/accounts/biconomy/signerToBiconomySmartAccount.js.map +1 -0
  8. package/_cjs/accounts/index.js +3 -1
  9. package/_cjs/accounts/index.js.map +1 -1
  10. package/_cjs/accounts/kernel/signerToEcdsaKernelSmartAccount.js +10 -14
  11. package/_cjs/accounts/kernel/signerToEcdsaKernelSmartAccount.js.map +1 -1
  12. package/_cjs/accounts/signerToSafeSmartAccount.js +23 -20
  13. package/_cjs/accounts/signerToSafeSmartAccount.js.map +1 -1
  14. package/_cjs/accounts/signerToSimpleSmartAccount.js +5 -7
  15. package/_cjs/accounts/signerToSimpleSmartAccount.js.map +1 -1
  16. package/_cjs/accounts/types.js.map +1 -1
  17. package/_cjs/utils/deepHexlify.js +2 -2
  18. package/_cjs/utils/deepHexlify.js.map +1 -1
  19. package/_esm/accounts/biconomy/abi/BiconomySmartAccountAbi.js +105 -0
  20. package/_esm/accounts/biconomy/abi/BiconomySmartAccountAbi.js.map +1 -0
  21. package/_esm/accounts/biconomy/privateKeyToBiconomySmartAccount.js +17 -0
  22. package/_esm/accounts/biconomy/privateKeyToBiconomySmartAccount.js.map +1 -0
  23. package/_esm/accounts/biconomy/signerToBiconomySmartAccount.js +231 -0
  24. package/_esm/accounts/biconomy/signerToBiconomySmartAccount.js.map +1 -0
  25. package/_esm/accounts/index.js +2 -1
  26. package/_esm/accounts/index.js.map +1 -1
  27. package/_esm/accounts/kernel/signerToEcdsaKernelSmartAccount.js +11 -15
  28. package/_esm/accounts/kernel/signerToEcdsaKernelSmartAccount.js.map +1 -1
  29. package/_esm/accounts/signerToSafeSmartAccount.js +24 -27
  30. package/_esm/accounts/signerToSafeSmartAccount.js.map +1 -1
  31. package/_esm/accounts/signerToSimpleSmartAccount.js +5 -7
  32. package/_esm/accounts/signerToSimpleSmartAccount.js.map +1 -1
  33. package/_esm/accounts/types.js.map +1 -1
  34. package/_esm/utils/deepHexlify.js +2 -2
  35. package/_esm/utils/deepHexlify.js.map +1 -1
  36. package/_types/accounts/biconomy/abi/BiconomySmartAccountAbi.d.ts +59 -0
  37. package/_types/accounts/biconomy/abi/BiconomySmartAccountAbi.d.ts.map +1 -0
  38. package/_types/accounts/biconomy/privateKeyToBiconomySmartAccount.d.ts +13 -0
  39. package/_types/accounts/biconomy/privateKeyToBiconomySmartAccount.d.ts.map +1 -0
  40. package/_types/accounts/biconomy/signerToBiconomySmartAccount.d.ts +23 -0
  41. package/_types/accounts/biconomy/signerToBiconomySmartAccount.d.ts.map +1 -0
  42. package/_types/accounts/index.d.ts +2 -1
  43. package/_types/accounts/index.d.ts.map +1 -1
  44. package/_types/accounts/kernel/signerToEcdsaKernelSmartAccount.d.ts +2 -2
  45. package/_types/accounts/kernel/signerToEcdsaKernelSmartAccount.d.ts.map +1 -1
  46. package/_types/accounts/signerToSafeSmartAccount.d.ts +4 -2
  47. package/_types/accounts/signerToSafeSmartAccount.d.ts.map +1 -1
  48. package/_types/accounts/signerToSimpleSmartAccount.d.ts +2 -2
  49. package/_types/accounts/signerToSimpleSmartAccount.d.ts.map +1 -1
  50. package/_types/accounts/types.d.ts +2 -2
  51. package/_types/accounts/types.d.ts.map +1 -1
  52. package/_types/utils/deepHexlify.d.ts.map +1 -1
  53. package/accounts/biconomy/abi/BiconomySmartAccountAbi.ts +105 -0
  54. package/accounts/biconomy/privateKeyToBiconomySmartAccount.ts +40 -0
  55. package/accounts/biconomy/signerToBiconomySmartAccount.ts +364 -0
  56. package/accounts/index.ts +8 -1
  57. package/accounts/kernel/signerToEcdsaKernelSmartAccount.ts +17 -19
  58. package/accounts/signerToSafeSmartAccount.ts +37 -33
  59. package/accounts/signerToSimpleSmartAccount.ts +11 -12
  60. package/accounts/types.ts +4 -5
  61. package/actions/smartAccount/prepareUserOperationRequest.ts +1 -1
  62. package/package.json +1 -1
  63. package/utils/deepHexlify.test.ts +0 -2
  64. package/utils/deepHexlify.ts +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../accounts/types.ts"],"names":[],"mappings":";;;AAAA,+BASa;AAIb,MAAa,yCAA0C,SAAQ,gBAAS;IAEpE,YAAY,EAAE,QAAQ,KAA4B,EAAE;QAChD,KAAK,CACD;YACI,6FAA6F;YAC7F,qCAAqC;SACxC,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;YACI,QAAQ;YACR,QAAQ,EAAE,SAAS;SACtB,CACJ,CAAA;QAXI;;;;mBAAO,2CAA2C;WAAA;IAY3D,CAAC;CACJ;AAdD,8FAcC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../accounts/types.ts"],"names":[],"mappings":";;;AAAA,+BAQa;AAIb,MAAa,yCAA0C,SAAQ,gBAAS;IAEpE,YAAY,EAAE,QAAQ,KAA4B,EAAE;QAChD,KAAK,CACD;YACI,6FAA6F;YAC7F,qCAAqC;SACxC,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;YACI,QAAQ;YACR,QAAQ,EAAE,SAAS;SACtB,CACJ,CAAA;QAXI;;;;mBAAO,2CAA2C;WAAA;IAY3D,CAAC;CACJ;AAdD,8FAcC"}
@@ -13,10 +13,10 @@ function deepHexlify(obj) {
13
13
  if (obj == null || typeof obj === "string" || typeof obj === "boolean") {
14
14
  return obj;
15
15
  }
16
- else if (typeof obj === "bigint") {
16
+ if (typeof obj === "bigint") {
17
17
  return (0, viem_1.toHex)(obj);
18
18
  }
19
- else if (obj._isBigNumber != null || typeof obj !== "object") {
19
+ if (obj._isBigNumber != null || typeof obj !== "object") {
20
20
  return (0, viem_1.toHex)(obj).replace(/^0x0/, "0x");
21
21
  }
22
22
  if (Array.isArray(obj)) {
@@ -1 +1 @@
1
- {"version":3,"file":"deepHexlify.js","sourceRoot":"","sources":["../../utils/deepHexlify.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAEf,QAAA,wBAAwB,GAAG;IACpC,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;CACV,CAAA;AAGV,SAAgB,WAAW,CAAC,GAAQ;IAChC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC3B,OAAO,SAAS,CAAA;KACnB;IACD,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;QACpE,OAAO,GAAG,CAAA;KACb;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAChC,OAAO,IAAA,YAAK,EAAC,GAAG,CAAC,CAAA;KACpB;SAAM,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC5D,OAAO,IAAA,YAAK,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KAC1C;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;KAClD;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAE1B,CAAC,GAAQ,EAAE,GAAW,EAAE,EAAE;QACtB,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAChC,OAAO,GAAG,CAAA;IACd,CAAC,EACD,EAAE,CACL,CAAA;AACL,CAAC;AAtBD,kCAsBC"}
1
+ {"version":3,"file":"deepHexlify.js","sourceRoot":"","sources":["../../utils/deepHexlify.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAEf,QAAA,wBAAwB,GAAG;IACpC,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;CACV,CAAA;AAGV,SAAgB,WAAW,CAAC,GAAQ;IAChC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC3B,OAAO,SAAS,CAAA;KACnB;IACD,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;QACpE,OAAO,GAAG,CAAA;KACb;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACzB,OAAO,IAAA,YAAK,EAAC,GAAG,CAAC,CAAA;KACpB;IAED,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACrD,OAAO,IAAA,YAAK,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KAC1C;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;KAClD;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAE1B,CAAC,GAAQ,EAAE,GAAW,EAAE,EAAE;QACtB,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAChC,OAAO,GAAG,CAAA;IACd,CAAC,EACD,EAAE,CACL,CAAA;AACL,CAAC;AA1BD,kCA0BC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * The exeuctor abi, used to execute transactions on the Biconomy Modular Smart Account
3
+ */
4
+ export const BiconomyExecuteAbi = [
5
+ {
6
+ inputs: [
7
+ {
8
+ internalType: "address",
9
+ name: "dest",
10
+ type: "address"
11
+ },
12
+ {
13
+ internalType: "uint256",
14
+ name: "value",
15
+ type: "uint256"
16
+ },
17
+ {
18
+ internalType: "bytes",
19
+ name: "func",
20
+ type: "bytes"
21
+ }
22
+ ],
23
+ name: "execute_ncC",
24
+ outputs: [],
25
+ stateMutability: "nonpayable",
26
+ type: "function"
27
+ },
28
+ {
29
+ inputs: [
30
+ {
31
+ internalType: "address[]",
32
+ name: "dest",
33
+ type: "address[]"
34
+ },
35
+ {
36
+ internalType: "uint256[]",
37
+ name: "value",
38
+ type: "uint256[]"
39
+ },
40
+ {
41
+ internalType: "bytes[]",
42
+ name: "func",
43
+ type: "bytes[]"
44
+ }
45
+ ],
46
+ name: "executeBatch_y6U",
47
+ outputs: [],
48
+ stateMutability: "nonpayable",
49
+ type: "function"
50
+ }
51
+ ];
52
+ /**
53
+ * The init abi, used to initialise Biconomy Modular Smart Account / setup default ECDSA module
54
+ */
55
+ export const BiconomyInitAbi = [
56
+ {
57
+ inputs: [
58
+ {
59
+ internalType: "address",
60
+ name: "handler",
61
+ type: "address"
62
+ },
63
+ {
64
+ internalType: "address",
65
+ name: "moduleSetupContract",
66
+ type: "address"
67
+ },
68
+ {
69
+ internalType: "bytes",
70
+ name: "moduleSetupData",
71
+ type: "bytes"
72
+ }
73
+ ],
74
+ name: "init",
75
+ outputs: [
76
+ {
77
+ internalType: "address",
78
+ name: "",
79
+ type: "address"
80
+ }
81
+ ],
82
+ stateMutability: "nonpayable",
83
+ type: "function"
84
+ },
85
+ {
86
+ inputs: [
87
+ {
88
+ internalType: "address",
89
+ name: "eoaOwner",
90
+ type: "address"
91
+ }
92
+ ],
93
+ name: "initForSmartAccount",
94
+ outputs: [
95
+ {
96
+ internalType: "address",
97
+ name: "",
98
+ type: "address"
99
+ }
100
+ ],
101
+ stateMutability: "nonpayable",
102
+ type: "function"
103
+ }
104
+ ];
105
+ //# sourceMappingURL=BiconomySmartAccountAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BiconomySmartAccountAbi.js","sourceRoot":"","sources":["../../../../accounts/biconomy/abi/BiconomySmartAccountAbi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B;QACI,MAAM,EAAE;YACJ;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;aAChB;SACJ;QACD,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE;YACJ;gBACI,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,WAAW;aACpB;YACD;gBACI,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;aACpB;YACD;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACnB;CACK,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B;QACI,MAAM,EAAE;YACJ;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,OAAO;aAChB;SACJ;QACD,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACL;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE;YACJ;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE;YACL;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACnB;CACJ,CAAA"}
@@ -0,0 +1,17 @@
1
+ import {} from "viem";
2
+ import { privateKeyToAccount } from "viem/accounts";
3
+ import { signerToBiconomySmartAccount } from "./signerToBiconomySmartAccount.js";
4
+ /**
5
+ * @description Creates a Biconomy Smart Account from a private key.
6
+ *
7
+ * @returns A Private Key Biconomy Smart Account using ECDSA as default validation module.
8
+ */
9
+ export async function privateKeyToBiconomySmartAccount(client, { privateKey, entryPoint, index = 0n }) {
10
+ const privateKeyAccount = privateKeyToAccount(privateKey);
11
+ return signerToBiconomySmartAccount(client, {
12
+ signer: privateKeyAccount,
13
+ entryPoint,
14
+ index
15
+ });
16
+ }
17
+ //# sourceMappingURL=privateKeyToBiconomySmartAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privateKeyToBiconomySmartAccount.js","sourceRoot":"","sources":["../../../accounts/biconomy/privateKeyToBiconomySmartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAMN,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAEH,4BAA4B,EAC/B,MAAM,mCAAmC,CAAA;AAE1C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAIlD,MAAkC,EAClC,EACI,UAAU,EACV,UAAU,EACV,KAAK,GAAG,EAAE,EAKb;IAED,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACzD,OAAO,4BAA4B,CAAC,MAAM,EAAE;QACxC,MAAM,EAAE,iBAAiB;QACzB,UAAU;QACV,KAAK;KACR,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,231 @@
1
+ import { concatHex, encodeAbiParameters, encodeFunctionData, encodePacked, getContractAddress, hexToBigInt, keccak256, parseAbiParameters } from "viem";
2
+ import { toAccount } from "viem/accounts";
3
+ import { getBytecode, getChainId, signMessage, signTypedData } from "viem/actions";
4
+ import { getAccountNonce } from "../../actions/public/getAccountNonce.js";
5
+ import { getUserOperationHash } from "../../utils/getUserOperationHash.js";
6
+ import { SignTransactionNotSupportedBySmartAccount } from "../types.js";
7
+ import { BiconomyExecuteAbi, BiconomyInitAbi } from "./abi/BiconomySmartAccountAbi.js";
8
+ /**
9
+ * The account creation ABI for Biconomy Smart Account (from the biconomy SmartAccountFactory)
10
+ */
11
+ const createAccountAbi = [
12
+ {
13
+ inputs: [
14
+ {
15
+ internalType: "address",
16
+ name: "moduleSetupContract",
17
+ type: "address"
18
+ },
19
+ {
20
+ internalType: "bytes",
21
+ name: "moduleSetupData",
22
+ type: "bytes"
23
+ },
24
+ {
25
+ internalType: "uint256",
26
+ name: "index",
27
+ type: "uint256"
28
+ }
29
+ ],
30
+ name: "deployCounterFactualAccount",
31
+ outputs: [
32
+ {
33
+ internalType: "address",
34
+ name: "proxy",
35
+ type: "address"
36
+ }
37
+ ],
38
+ stateMutability: "nonpayable",
39
+ type: "function"
40
+ }
41
+ ];
42
+ /**
43
+ * Default addresses for Biconomy Smart Account
44
+ */
45
+ const BICONOMY_ADDRESSES = {
46
+ ECDSA_OWNERSHIP_REGISTRY_MODULE: "0x0000001c5b32F37F5beA87BDD5374eB2aC54eA8e",
47
+ ACCOUNT_V2_0_LOGIC: "0x0000002512019Dafb59528B82CB92D3c5D2423aC",
48
+ FACTORY_ADDRESS: "0x000000a56Aaca3e9a4C479ea6b6CD0DbcB6634F5",
49
+ DEFAULT_FALLBACK_HANDLER_ADDRESS: "0x0bBa6d96BD616BedC6BFaa341742FD43c60b83C1"
50
+ };
51
+ const BICONOMY_PROXY_CREATION_CODE = "0x6080346100aa57601f61012038819003918201601f19168301916001600160401b038311848410176100af578084926020946040528339810103126100aa57516001600160a01b0381168082036100aa5715610065573055604051605a90816100c68239f35b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e206164647265737300006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060405230546000808092368280378136915af43d82803e156020573d90f35b3d90fdfea2646970667358221220a03b18dce0be0b4c9afe58a9eb85c35205e2cf087da098bbf1d23945bf89496064736f6c63430008110033";
52
+ /**
53
+ * Get the account initialization code for Biconomy smart account with ECDSA as default authorization module
54
+ * @param owner
55
+ * @param index
56
+ * @param factoryAddress
57
+ * @param ecdsaValidatorAddress
58
+ */
59
+ const getAccountInitCode = async ({ owner, index, factoryAddress, ecdsaModuleAddress }) => {
60
+ if (!owner)
61
+ throw new Error("Owner account not found");
62
+ // Build the module setup data
63
+ const ecdsaOwnershipInitData = encodeFunctionData({
64
+ abi: BiconomyInitAbi,
65
+ functionName: "initForSmartAccount",
66
+ args: [owner]
67
+ });
68
+ // Build the account init code
69
+ return concatHex([
70
+ factoryAddress,
71
+ encodeFunctionData({
72
+ abi: createAccountAbi,
73
+ functionName: "deployCounterFactualAccount",
74
+ args: [ecdsaModuleAddress, ecdsaOwnershipInitData, index]
75
+ })
76
+ ]);
77
+ };
78
+ const getAccountAddress = async ({ factoryAddress, accountLogicAddress, fallbackHandlerAddress, ecdsaModuleAddress, owner, index = 0n }) => {
79
+ // Build the module setup data
80
+ const ecdsaOwnershipInitData = encodeFunctionData({
81
+ abi: BiconomyInitAbi,
82
+ functionName: "initForSmartAccount",
83
+ args: [owner]
84
+ });
85
+ // Build account init code
86
+ const initialisationData = encodeFunctionData({
87
+ abi: BiconomyInitAbi,
88
+ functionName: "init",
89
+ args: [
90
+ fallbackHandlerAddress,
91
+ ecdsaModuleAddress,
92
+ ecdsaOwnershipInitData
93
+ ]
94
+ });
95
+ const deploymentCode = encodePacked(["bytes", "uint256"], [BICONOMY_PROXY_CREATION_CODE, hexToBigInt(accountLogicAddress)]);
96
+ const salt = keccak256(encodePacked(["bytes32", "uint256"], [keccak256(encodePacked(["bytes"], [initialisationData])), index]));
97
+ return getContractAddress({
98
+ from: factoryAddress,
99
+ salt,
100
+ bytecode: deploymentCode,
101
+ opcode: "CREATE2"
102
+ });
103
+ };
104
+ /**
105
+ * Build a Biconomy modular smart account from a private key, that use the ECDSA signer behind the scene
106
+ * @param client
107
+ * @param privateKey
108
+ * @param entryPoint
109
+ * @param index
110
+ * @param factoryAddress
111
+ * @param accountLogicAddress
112
+ * @param ecdsaModuleAddress
113
+ */
114
+ export async function signerToBiconomySmartAccount(client, { signer, entryPoint, index = 0n, factoryAddress = BICONOMY_ADDRESSES.FACTORY_ADDRESS, accountLogicAddress = BICONOMY_ADDRESSES.ACCOUNT_V2_0_LOGIC, fallbackHandlerAddress = BICONOMY_ADDRESSES.DEFAULT_FALLBACK_HANDLER_ADDRESS, ecdsaModuleAddress = BICONOMY_ADDRESSES.ECDSA_OWNERSHIP_REGISTRY_MODULE }) {
115
+ // Get the private key related account
116
+ const viemSigner = {
117
+ ...signer,
118
+ signTransaction: (_, __) => {
119
+ throw new SignTransactionNotSupportedBySmartAccount();
120
+ }
121
+ };
122
+ // Helper to generate the init code for the smart account
123
+ const generateInitCode = () => getAccountInitCode({
124
+ owner: viemSigner.address,
125
+ index,
126
+ factoryAddress,
127
+ ecdsaModuleAddress
128
+ });
129
+ // Fetch account address and chain id
130
+ const [accountAddress, chainId] = await Promise.all([
131
+ getAccountAddress({
132
+ owner: viemSigner.address,
133
+ ecdsaModuleAddress,
134
+ factoryAddress,
135
+ accountLogicAddress,
136
+ fallbackHandlerAddress,
137
+ index
138
+ }),
139
+ getChainId(client)
140
+ ]);
141
+ if (!accountAddress)
142
+ throw new Error("Account address not found");
143
+ // Build the EOA Signer
144
+ const account = toAccount({
145
+ address: accountAddress,
146
+ async signMessage({ message }) {
147
+ return signMessage(client, { account: viemSigner, message });
148
+ },
149
+ async signTransaction(_, __) {
150
+ throw new SignTransactionNotSupportedBySmartAccount();
151
+ },
152
+ async signTypedData(typedData) {
153
+ return signTypedData(client, { account: viemSigner, ...typedData });
154
+ }
155
+ });
156
+ return {
157
+ ...account,
158
+ client: client,
159
+ publicKey: accountAddress,
160
+ entryPoint: entryPoint,
161
+ source: "biconomySmartAccount",
162
+ // Get the nonce of the smart account
163
+ async getNonce() {
164
+ return getAccountNonce(client, {
165
+ sender: accountAddress,
166
+ entryPoint: entryPoint
167
+ });
168
+ },
169
+ // Sign a user operation
170
+ async signUserOperation(userOperation) {
171
+ const hash = getUserOperationHash({
172
+ userOperation: {
173
+ ...userOperation,
174
+ signature: "0x"
175
+ },
176
+ entryPoint: entryPoint,
177
+ chainId: chainId
178
+ });
179
+ const signature = await signMessage(client, {
180
+ account: viemSigner,
181
+ message: { raw: hash }
182
+ });
183
+ // userOp signature is encoded module signature + module address
184
+ const signatureWithModuleAddress = encodeAbiParameters(parseAbiParameters("bytes, address"), [signature, ecdsaModuleAddress]);
185
+ return signatureWithModuleAddress;
186
+ },
187
+ // Encode the init code
188
+ async getInitCode() {
189
+ const contractCode = await getBytecode(client, {
190
+ address: accountAddress
191
+ });
192
+ if ((contractCode?.length ?? 0) > 2)
193
+ return "0x";
194
+ return generateInitCode();
195
+ },
196
+ // Encode the deploy call data
197
+ async encodeDeployCallData(_) {
198
+ throw new Error("Doesn't support account deployment");
199
+ },
200
+ // Encode a call
201
+ async encodeCallData(args) {
202
+ if (Array.isArray(args)) {
203
+ // Encode a batched call
204
+ const argsArray = args;
205
+ return encodeFunctionData({
206
+ abi: BiconomyExecuteAbi,
207
+ functionName: "executeBatch_y6U",
208
+ args: [
209
+ argsArray.map((a) => a.to),
210
+ argsArray.map((a) => a.value),
211
+ argsArray.map((a) => a.data)
212
+ ]
213
+ });
214
+ }
215
+ const { to, value, data } = args;
216
+ // Encode a simple call
217
+ return encodeFunctionData({
218
+ abi: BiconomyExecuteAbi,
219
+ functionName: "execute_ncC",
220
+ args: [to, value, data]
221
+ });
222
+ },
223
+ // Get simple dummy signature for ECDSA module authorization
224
+ async getDummySignature() {
225
+ const moduleAddress = BICONOMY_ADDRESSES.ECDSA_OWNERSHIP_REGISTRY_MODULE;
226
+ const dynamicPart = moduleAddress.substring(2).padEnd(40, "0");
227
+ return `0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000${dynamicPart}000000000000000000000000000000000000000000000000000000000000004181d4b4981670cb18f99f0b4a66446df1bf5b204d24cfcb659bf38ba27a4359b5711649ec2423c5e1247245eba2964679b6a1dbb85c992ae40b9b00c6935b02ff1b00000000000000000000000000000000000000000000000000000000000000`;
228
+ }
229
+ };
230
+ }
231
+ //# sourceMappingURL=signerToBiconomySmartAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signerToBiconomySmartAccount.js","sourceRoot":"","sources":["../../../accounts/biconomy/signerToBiconomySmartAccount.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { signerToSimpleSmartAccount } from "./signerToSimpleSmartAccount.js";
3
3
  import { privateKeyToSafeSmartAccount } from "./privateKeyToSafeSmartAccount.js";
4
4
  import { signerToSafeSmartAccount } from "./signerToSafeSmartAccount.js";
5
5
  import { signerToEcdsaKernelSmartAccount } from "./kernel/signerToEcdsaKernelSmartAccount.js";
6
+ import { signerToBiconomySmartAccount } from "./biconomy/signerToBiconomySmartAccount.js";
6
7
  import { SignTransactionNotSupportedBySmartAccount } from "./types.js";
7
- export { signerToSafeSmartAccount, signerToSimpleSmartAccount, SignTransactionNotSupportedBySmartAccount, privateKeyToSimpleSmartAccount, privateKeyToSafeSmartAccount, signerToEcdsaKernelSmartAccount };
8
+ export { signerToSafeSmartAccount, signerToSimpleSmartAccount, SignTransactionNotSupportedBySmartAccount, privateKeyToSimpleSmartAccount, privateKeyToSafeSmartAccount, signerToEcdsaKernelSmartAccount, signerToBiconomySmartAccount };
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AAEpF,OAAO,EAEH,0BAA0B,EAC7B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAEhF,OAAO,EAGH,wBAAwB,EAC3B,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAEH,+BAA+B,EAClC,MAAM,6CAA6C,CAAA;AAEpD,OAAO,EACH,yCAAyC,EAG5C,MAAM,YAAY,CAAA;AAEnB,OAAO,EAIH,wBAAwB,EAExB,0BAA0B,EAC1B,yCAAyC,EACzC,8BAA8B,EAE9B,4BAA4B,EAE5B,+BAA+B,EAClC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AAEpF,OAAO,EAEH,0BAA0B,EAC7B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAEhF,OAAO,EAGH,wBAAwB,EAC3B,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAEH,+BAA+B,EAClC,MAAM,6CAA6C,CAAA;AAEpD,OAAO,EAEH,4BAA4B,EAC/B,MAAM,4CAA4C,CAAA;AAEnD,OAAO,EACH,yCAAyC,EAG5C,MAAM,YAAY,CAAA;AAEnB,OAAO,EAIH,wBAAwB,EAExB,0BAA0B,EAC1B,yCAAyC,EACzC,8BAA8B,EAE9B,4BAA4B,EAE5B,+BAA+B,EAE/B,4BAA4B,EAC/B,CAAA"}
@@ -142,14 +142,12 @@ const getAccountAddress = async ({ client, owner, entryPoint, initCodeProvider,
142
142
  */
143
143
  export async function signerToEcdsaKernelSmartAccount(client, { signer, entryPoint, index = 0n, factoryAddress = KERNEL_ADDRESSES.FACTORY_ADDRESS, accountLogicAddress = KERNEL_ADDRESSES.ACCOUNT_V2_2_LOGIC, ecdsaValidatorAddress = KERNEL_ADDRESSES.ECDSA_VALIDATOR, deployedAccountAddress }) {
144
144
  // Get the private key related account
145
- const viemSigner = signer.type === "local"
146
- ? {
147
- ...signer,
148
- signTransaction: (_, __) => {
149
- throw new SignTransactionNotSupportedBySmartAccount();
150
- }
145
+ const viemSigner = {
146
+ ...signer,
147
+ signTransaction: (_, __) => {
148
+ throw new SignTransactionNotSupportedBySmartAccount();
151
149
  }
152
- : signer;
150
+ };
153
151
  // Helper to generate the init code for the smart account
154
152
  const generateInitCode = () => getAccountInitCode({
155
153
  owner: viemSigner.address,
@@ -244,14 +242,12 @@ export async function signerToEcdsaKernelSmartAccount(client, { signer, entryPoi
244
242
  ]
245
243
  });
246
244
  }
247
- else {
248
- // Encode a simple call
249
- return encodeFunctionData({
250
- abi: KernelExecuteAbi,
251
- functionName: "execute",
252
- args: [_tx.to, _tx.value, _tx.data, 0]
253
- });
254
- }
245
+ // Encode a simple call
246
+ return encodeFunctionData({
247
+ abi: KernelExecuteAbi,
248
+ functionName: "execute",
249
+ args: [_tx.to, _tx.value, _tx.data, 0]
250
+ });
255
251
  },
256
252
  // Get simple dummy signature
257
253
  async getDummySignature() {
@@ -1 +1 @@
1
- {"version":3,"file":"signerToEcdsaKernelSmartAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/signerToEcdsaKernelSmartAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signerToEcdsaKernelSmartAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/signerToEcdsaKernelSmartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,SAAS,EACT,kBAAkB,EAClB,cAAc,EACjB,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EACH,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAE1E,OAAO,EACH,yCAAyC,EAE5C,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAO3E;;GAEG;AACH,MAAM,gBAAgB,GAAG;IACrB;QACI,MAAM,EAAE;YACJ;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACL;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,UAAU;KACnB;CACK,CAAA;AAEV;;GAEG;AACH,MAAM,gBAAgB,GAIlB;IACA,eAAe,EAAE,4CAA4C;IAC7D,kBAAkB,EAAE,4CAA4C;IAChE,eAAe,EAAE,4CAA4C;CAChE,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAC9B,KAAK,EACL,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EAOxB,EAAgB,EAAE;IACf,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAEtD,wCAAwC;IACxC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;QAC1C,GAAG,EAAE,aAAa;QAClB,YAAY,EAAE,YAAY;QAC1B,IAAI,EAAE,CAAC,qBAAqB,EAAE,KAAK,CAAC;KACvC,CAAC,CAAA;IAEF,8BAA8B;IAC9B,OAAO,SAAS,CAAC;QACb,cAAc;QACd,kBAAkB,CAAC;YACf,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,KAAK,CAAC;SACzD,CAAQ;KACZ,CAAC,CAAA;AACN,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,KAAK,EAG7B,EACE,MAAM,EACN,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EAQzB,EAAoB,EAAE;IACnB,2GAA2G;IAC3G,IAAI,sBAAsB,KAAK,SAAS,EAAE;QACtC,2FAA2F;QAC3F,MAAM,oBAAoB,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE;YACpD,OAAO,EAAE,qBAAqB;YAC9B,GAAG,EAAE;gBACD;oBACI,MAAM,EAAE;wBACJ;4BACI,YAAY,EAAE,SAAS;4BACvB,IAAI,EAAE,EAAE;4BACR,IAAI,EAAE,SAAS;yBAClB;qBACJ;oBACD,IAAI,EAAE,uBAAuB;oBAC7B,OAAO,EAAE;wBACL;4BACI,YAAY,EAAE,SAAS;4BACvB,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,SAAS;yBAClB;qBACJ;oBACD,eAAe,EAAE,MAAM;oBACvB,IAAI,EAAE,UAAU;iBACnB;aACJ;YACD,YAAY,EAAE,uBAAuB;YACrC,IAAI,EAAE,CAAC,sBAAsB,CAAC;SACjC,CAAC,CAAA;QAEF,2BAA2B;QAC3B,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;SACpE;QAED,4BAA4B;QAC5B,OAAO,sBAAsB,CAAA;KAChC;IAED,sCAAsC;IACtC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAA;IAEzC,gDAAgD;IAChD,OAAO,gBAAgB,CAAC,MAAM,EAAE;QAC5B,QAAQ;QACR,UAAU;KACb,CAAC,CAAA;AACN,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAMjD,MAAkC,EAClC,EACI,MAAM,EACN,UAAU,EACV,KAAK,GAAG,EAAE,EACV,cAAc,GAAG,gBAAgB,CAAC,eAAe,EACjD,mBAAmB,GAAG,gBAAgB,CAAC,kBAAkB,EACzD,qBAAqB,GAAG,gBAAgB,CAAC,eAAe,EACxD,sBAAsB,EASzB;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAiB;QAC7B,GAAG,MAAM;QACT,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACvB,MAAM,IAAI,yCAAyC,EAAE,CAAA;QACzD,CAAC;KACY,CAAA;IAEjB,yDAAyD;IACzD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC1B,kBAAkB,CAAC;QACf,KAAK,EAAE,UAAU,CAAC,OAAO;QACzB,KAAK;QACL,cAAc;QACd,mBAAmB;QACnB,qBAAqB;KACxB,CAAC,CAAA;IAEN,qCAAqC;IACrC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,iBAAiB,CAAqB;YAClC,MAAM;YACN,UAAU;YACV,KAAK,EAAE,UAAU,CAAC,OAAO;YACzB,qBAAqB;YACrB,gBAAgB,EAAE,gBAAgB;YAClC,sBAAsB;SACzB,CAAC;QACF,UAAU,CAAC,MAAM,CAAC;KACrB,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAEjE,uBAAuB;IACvB,MAAM,OAAO,GAAG,SAAS,CAAC;QACtB,OAAO,EAAE,cAAc;QACvB,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YACzB,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;QAChE,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,IAAI,yCAAyC,EAAE,CAAA;QACzD,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,SAAS;YACzB,OAAO,aAAa,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;QACvE,CAAC;KACJ,CAAC,CAAA;IAEF,OAAO;QACH,GAAG,OAAO;QACV,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,yBAAyB;QAEjC,qCAAqC;QACrC,KAAK,CAAC,QAAQ;YACV,OAAO,eAAe,CAAC,MAAM,EAAE;gBAC3B,MAAM,EAAE,cAAc;gBACtB,UAAU,EAAE,UAAU;aACzB,CAAC,CAAA;QACN,CAAC;QAED,wBAAwB;QACxB,KAAK,CAAC,iBAAiB,CAAC,aAAa;YACjC,MAAM,IAAI,GAAG,oBAAoB,CAAC;gBAC9B,aAAa,EAAE;oBACX,GAAG,aAAa;oBAChB,SAAS,EAAE,IAAI;iBAClB;gBACD,UAAU,EAAE,UAAU;gBACtB,OAAO,EAAE,OAAO;aACnB,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;gBACxC,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;aACzB,CAAC,CAAA;YACF,iEAAiE;YACjE,OAAO,SAAS,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;QAC/C,CAAC;QAED,uBAAuB;QACvB,KAAK,CAAC,WAAW;YACb,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;gBAC3C,OAAO,EAAE,cAAc;aAC1B,CAAC,CAAA;YAEF,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAA;YAEhD,OAAO,gBAAgB,EAAE,CAAA;QAC7B,CAAC;QAED,8BAA8B;QAC9B,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACxE,CAAC;QAED,gBAAgB;QAChB,KAAK,CAAC,cAAc,CAAC,GAAG;YACpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACpB,wBAAwB;gBACxB,OAAO,kBAAkB,CAAC;oBACtB,GAAG,EAAE,gBAAgB;oBACrB,YAAY,EAAE,cAAc;oBAC5B,IAAI,EAAE;wBACF,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;4BACb,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,KAAK,EAAE,EAAE,CAAC,KAAK;4BACf,IAAI,EAAE,EAAE,CAAC,IAAI;yBAChB,CAAC,CAAC;qBACN;iBACJ,CAAC,CAAA;aACL;YACD,uBAAuB;YACvB,OAAO,kBAAkB,CAAC;gBACtB,GAAG,EAAE,gBAAgB;gBACrB,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;aACzC,CAAC,CAAA;QACN,CAAC;QAED,6BAA6B;QAC7B,KAAK,CAAC,iBAAiB;YACnB,OAAO,8IAA8I,CAAA;QACzJ,CAAC;KACJ,CAAA;AACL,CAAC"}
@@ -1,4 +1,4 @@
1
- import { concatHex, encodeFunctionData, encodePacked, getContractAddress, hashMessage, hashTypedData, hexToBigInt, keccak256, toBytes, zeroAddress } from "viem";
1
+ import { concat, concatHex, encodeFunctionData, encodePacked, getContractAddress, hashMessage, hashTypedData, hexToBigInt, keccak256, toBytes, zeroAddress } from "viem";
2
2
  import { toAccount } from "viem/accounts";
3
3
  import { getBytecode, getChainId, readContract, signMessage, signTypedData } from "viem/actions";
4
4
  import { getAccountNonce } from "../actions/public/getAccountNonce.js";
@@ -6,13 +6,17 @@ import { SignTransactionNotSupportedBySmartAccount } from "./types.js";
6
6
  const EIP712_SAFE_OPERATION_TYPE = {
7
7
  SafeOp: [
8
8
  { type: "address", name: "safe" },
9
- { type: "bytes", name: "callData" },
10
9
  { type: "uint256", name: "nonce" },
11
- { type: "uint256", name: "preVerificationGas" },
12
- { type: "uint256", name: "verificationGasLimit" },
10
+ { type: "bytes", name: "initCode" },
11
+ { type: "bytes", name: "callData" },
13
12
  { type: "uint256", name: "callGasLimit" },
13
+ { type: "uint256", name: "verificationGasLimit" },
14
+ { type: "uint256", name: "preVerificationGas" },
14
15
  { type: "uint256", name: "maxFeePerGas" },
15
16
  { type: "uint256", name: "maxPriorityFeePerGas" },
17
+ { type: "bytes", name: "paymasterAndData" },
18
+ { type: "uint48", name: "validAfter" },
19
+ { type: "uint48", name: "validUntil" },
16
20
  { type: "address", name: "entryPoint" }
17
21
  ]
18
22
  };
@@ -291,16 +295,14 @@ const getDefaultAddresses = (safeVersion, { addModuleLibAddress: _addModuleLibAd
291
295
  *
292
296
  * @returns A Private Key Simple Account.
293
297
  */
294
- export async function signerToSafeSmartAccount(client, { signer, safeVersion, entryPoint, addModuleLibAddress: _addModuleLibAddress, safe4337ModuleAddress: _safe4337ModuleAddress, safeProxyFactoryAddress: _safeProxyFactoryAddress, safeSingletonAddress: _safeSingletonAddress, multiSendAddress: _multiSendAddress, multiSendCallOnlyAddress: _multiSendCallOnlyAddress, saltNonce = 0n, safeModules = [], setupTransactions = [] }) {
298
+ export async function signerToSafeSmartAccount(client, { signer, safeVersion, entryPoint, addModuleLibAddress: _addModuleLibAddress, safe4337ModuleAddress: _safe4337ModuleAddress, safeProxyFactoryAddress: _safeProxyFactoryAddress, safeSingletonAddress: _safeSingletonAddress, multiSendAddress: _multiSendAddress, multiSendCallOnlyAddress: _multiSendCallOnlyAddress, saltNonce = 0n, validUntil = 0, validAfter = 0, safeModules = [], setupTransactions = [] }) {
295
299
  const chainId = await getChainId(client);
296
- const viemSigner = signer.type === "local"
297
- ? {
298
- ...signer,
299
- signTransaction: (_, __) => {
300
- throw new SignTransactionNotSupportedBySmartAccount();
301
- }
300
+ const viemSigner = {
301
+ ...signer,
302
+ signTransaction: (_, __) => {
303
+ throw new SignTransactionNotSupportedBySmartAccount();
302
304
  }
303
- : signer;
305
+ };
304
306
  const { addModuleLibAddress, safe4337ModuleAddress, safeProxyFactoryAddress, safeSingletonAddress, multiSendAddress, multiSendCallOnlyAddress } = getDefaultAddresses(safeVersion, {
305
307
  addModuleLibAddress: _addModuleLibAddress,
306
308
  safe4337ModuleAddress: _safe4337ModuleAddress,
@@ -379,7 +381,6 @@ export async function signerToSafeSmartAccount(client, { signer, safeVersion, en
379
381
  });
380
382
  },
381
383
  async signUserOperation(userOperation) {
382
- // const timestamps = 0n
383
384
  const signatures = [
384
385
  {
385
386
  signer: viemSigner.address,
@@ -394,14 +395,17 @@ export async function signerToSafeSmartAccount(client, { signer, safeVersion, en
394
395
  message: {
395
396
  safe: accountAddress,
396
397
  callData: userOperation.callData,
398
+ entryPoint: entryPoint,
397
399
  nonce: userOperation.nonce,
400
+ initCode: userOperation.initCode,
401
+ maxFeePerGas: userOperation.maxFeePerGas,
402
+ maxPriorityFeePerGas: userOperation.maxPriorityFeePerGas,
398
403
  preVerificationGas: userOperation.preVerificationGas,
399
404
  verificationGasLimit: userOperation.verificationGasLimit,
400
405
  callGasLimit: userOperation.callGasLimit,
401
- maxFeePerGas: userOperation.maxFeePerGas,
402
- maxPriorityFeePerGas: userOperation.maxPriorityFeePerGas,
403
- // signatureTimestamps: timestamps,
404
- entryPoint: entryPoint
406
+ paymasterAndData: userOperation.paymasterAndData,
407
+ validAfter: validAfter,
408
+ validUntil: validUntil
405
409
  }
406
410
  })
407
411
  }
@@ -409,15 +413,8 @@ export async function signerToSafeSmartAccount(client, { signer, safeVersion, en
409
413
  signatures.sort((left, right) => left.signer
410
414
  .toLowerCase()
411
415
  .localeCompare(right.signer.toLowerCase()));
412
- let signatureBytes = "0x";
413
- for (const sig of signatures) {
414
- signatureBytes += sig.data.slice(2);
415
- }
416
- // const signatureWithTimestamps = encodePacked(
417
- // ["uint96", "bytes"],
418
- // [timestamps, signatureBytes]
419
- // )
420
- return signatureBytes;
416
+ const signatureBytes = concat(signatures.map((sig) => sig.data));
417
+ return encodePacked(["uint48", "uint48", "bytes"], [validAfter, validUntil, signatureBytes]);
421
418
  },
422
419
  async getInitCode() {
423
420
  const contractCode = await getBytecode(client, {
@@ -492,7 +489,7 @@ export async function signerToSafeSmartAccount(client, { signer, safeVersion, en
492
489
  });
493
490
  },
494
491
  async getDummySignature() {
495
- return "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
492
+ return "0x000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
496
493
  }
497
494
  };
498
495
  }