@account-kit/wallet-client 0.1.0-alpha.9 → 4.50.1

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 (276) hide show
  1. package/LICENSE +21 -0
  2. package/dist/esm/client/actions/formatSign.d.ts +30 -0
  3. package/dist/esm/client/actions/formatSign.js +32 -0
  4. package/dist/esm/client/actions/formatSign.js.map +1 -0
  5. package/dist/esm/client/actions/getCallsStatus.d.ts +6 -3
  6. package/dist/esm/client/actions/getCallsStatus.js +3 -0
  7. package/dist/esm/client/actions/getCallsStatus.js.map +1 -1
  8. package/dist/esm/client/actions/grantPermissions.d.ts +10 -11
  9. package/dist/esm/client/actions/grantPermissions.js +26 -12
  10. package/dist/esm/client/actions/grantPermissions.js.map +1 -1
  11. package/dist/esm/client/actions/listAccounts.d.ts +10 -3
  12. package/dist/esm/client/actions/listAccounts.js +14 -2
  13. package/dist/esm/client/actions/listAccounts.js.map +1 -1
  14. package/dist/esm/client/actions/prepareCalls.d.ts +6 -3
  15. package/dist/esm/client/actions/prepareCalls.js +12 -8
  16. package/dist/esm/client/actions/prepareCalls.js.map +1 -1
  17. package/dist/esm/client/actions/prepareSign.d.ts +28 -0
  18. package/dist/esm/client/actions/prepareSign.js +31 -0
  19. package/dist/esm/client/actions/prepareSign.js.map +1 -0
  20. package/dist/esm/client/actions/requestAccount.d.ts +3 -1
  21. package/dist/esm/client/actions/requestAccount.js +5 -3
  22. package/dist/esm/client/actions/requestAccount.js.map +1 -1
  23. package/dist/esm/client/actions/sendPreparedCalls.d.ts +3 -1
  24. package/dist/esm/client/actions/sendPreparedCalls.js +2 -0
  25. package/dist/esm/client/actions/sendPreparedCalls.js.map +1 -1
  26. package/dist/esm/client/actions/signMessage.d.ts +5 -2
  27. package/dist/esm/client/actions/signMessage.js +5 -2
  28. package/dist/esm/client/actions/signMessage.js.map +1 -1
  29. package/dist/esm/client/actions/signPreparedCalls.d.ts +2 -2
  30. package/dist/esm/client/actions/signPreparedCalls.js +3 -3
  31. package/dist/esm/client/actions/signPreparedCalls.js.map +1 -1
  32. package/dist/esm/client/actions/signSignatureRequest.d.ts +6 -10
  33. package/dist/esm/client/actions/signSignatureRequest.js +4 -7
  34. package/dist/esm/client/actions/signSignatureRequest.js.map +1 -1
  35. package/dist/esm/client/actions/signTypedData.d.ts +2 -0
  36. package/dist/esm/client/actions/signTypedData.js +2 -0
  37. package/dist/esm/client/actions/signTypedData.js.map +1 -1
  38. package/dist/esm/client/decorator.d.ts +0 -2
  39. package/dist/esm/client/decorator.js +1 -3
  40. package/dist/esm/client/decorator.js.map +1 -1
  41. package/dist/esm/client/index.d.ts +10 -6
  42. package/dist/esm/client/index.js +18 -21
  43. package/dist/esm/client/index.js.map +1 -1
  44. package/dist/esm/exports/index.d.ts +1 -5
  45. package/dist/esm/exports/index.js +1 -6
  46. package/dist/esm/exports/index.js.map +1 -1
  47. package/dist/esm/internal/account.d.ts +33 -0
  48. package/dist/esm/{isomorphic/utils/createAccount.js → internal/account.js} +25 -49
  49. package/dist/esm/internal/account.js.map +1 -0
  50. package/dist/esm/types.d.ts +5 -11
  51. package/dist/esm/types.js.map +1 -1
  52. package/dist/esm/utils.d.ts +13 -1
  53. package/dist/esm/utils.js +13 -1
  54. package/dist/esm/utils.js.map +1 -1
  55. package/dist/esm/version.d.ts +1 -0
  56. package/dist/esm/version.js +4 -0
  57. package/dist/esm/version.js.map +1 -0
  58. package/dist/types/client/actions/formatSign.d.ts +31 -0
  59. package/dist/types/client/actions/formatSign.d.ts.map +1 -0
  60. package/dist/types/client/actions/getCallsStatus.d.ts +6 -3
  61. package/dist/types/client/actions/getCallsStatus.d.ts.map +1 -1
  62. package/dist/types/client/actions/grantPermissions.d.ts +10 -11
  63. package/dist/types/client/actions/grantPermissions.d.ts.map +1 -1
  64. package/dist/types/client/actions/listAccounts.d.ts +10 -3
  65. package/dist/types/client/actions/listAccounts.d.ts.map +1 -1
  66. package/dist/types/client/actions/prepareCalls.d.ts +6 -3
  67. package/dist/types/client/actions/prepareCalls.d.ts.map +1 -1
  68. package/dist/types/client/actions/prepareSign.d.ts +29 -0
  69. package/dist/types/client/actions/prepareSign.d.ts.map +1 -0
  70. package/dist/types/client/actions/requestAccount.d.ts +3 -1
  71. package/dist/types/client/actions/requestAccount.d.ts.map +1 -1
  72. package/dist/types/client/actions/sendPreparedCalls.d.ts +3 -1
  73. package/dist/types/client/actions/sendPreparedCalls.d.ts.map +1 -1
  74. package/dist/types/client/actions/signMessage.d.ts +5 -2
  75. package/dist/types/client/actions/signMessage.d.ts.map +1 -1
  76. package/dist/types/client/actions/signPreparedCalls.d.ts +2 -2
  77. package/dist/types/client/actions/signPreparedCalls.d.ts.map +1 -1
  78. package/dist/types/client/actions/signSignatureRequest.d.ts +6 -10
  79. package/dist/types/client/actions/signSignatureRequest.d.ts.map +1 -1
  80. package/dist/types/client/actions/signTypedData.d.ts +2 -0
  81. package/dist/types/client/actions/signTypedData.d.ts.map +1 -1
  82. package/dist/types/client/decorator.d.ts +0 -2
  83. package/dist/types/client/decorator.d.ts.map +1 -1
  84. package/dist/types/client/index.d.ts +10 -6
  85. package/dist/types/client/index.d.ts.map +1 -1
  86. package/dist/types/exports/index.d.ts +1 -5
  87. package/dist/types/exports/index.d.ts.map +1 -1
  88. package/dist/types/internal/account.d.ts +34 -0
  89. package/dist/types/internal/account.d.ts.map +1 -0
  90. package/dist/types/types.d.ts +5 -11
  91. package/dist/types/types.d.ts.map +1 -1
  92. package/dist/types/utils.d.ts +13 -1
  93. package/dist/types/utils.d.ts.map +1 -1
  94. package/dist/types/version.d.ts +2 -0
  95. package/dist/types/version.d.ts.map +1 -0
  96. package/package.json +32 -28
  97. package/src/client/actions/formatSign.ts +55 -0
  98. package/src/client/actions/getCallsStatus.ts +10 -6
  99. package/src/client/actions/grantPermissions.ts +46 -18
  100. package/src/client/actions/listAccounts.ts +22 -5
  101. package/src/client/actions/prepareCalls.ts +22 -16
  102. package/src/client/actions/prepareSign.ts +51 -0
  103. package/src/client/actions/requestAccount.ts +6 -4
  104. package/src/client/actions/sendPreparedCalls.ts +3 -1
  105. package/src/client/actions/signMessage.ts +5 -2
  106. package/src/client/actions/signPreparedCalls.ts +8 -12
  107. package/src/client/actions/signSignatureRequest.ts +12 -15
  108. package/src/client/actions/signTypedData.ts +2 -0
  109. package/src/client/decorator.ts +1 -8
  110. package/src/client/index.ts +41 -33
  111. package/src/exports/index.ts +1 -13
  112. package/src/internal/account.ts +120 -0
  113. package/src/types.ts +7 -18
  114. package/src/utils.ts +13 -1
  115. package/src/version.ts +3 -0
  116. package/dist/esm/capabilities/eip7702Auth.d.ts +0 -4
  117. package/dist/esm/capabilities/eip7702Auth.js +0 -18
  118. package/dist/esm/capabilities/eip7702Auth.js.map +0 -1
  119. package/dist/esm/capabilities/index.d.ts +0 -41
  120. package/dist/esm/capabilities/index.js +0 -14
  121. package/dist/esm/capabilities/index.js.map +0 -1
  122. package/dist/esm/capabilities/multiDimensionalNonce.d.ts +0 -3
  123. package/dist/esm/capabilities/multiDimensionalNonce.js +0 -7
  124. package/dist/esm/capabilities/multiDimensionalNonce.js.map +0 -1
  125. package/dist/esm/capabilities/overrides.d.ts +0 -26
  126. package/dist/esm/capabilities/overrides.js +0 -14
  127. package/dist/esm/capabilities/overrides.js.map +0 -1
  128. package/dist/esm/capabilities/paymaster.d.ts +0 -3
  129. package/dist/esm/capabilities/paymaster.js +0 -5
  130. package/dist/esm/capabilities/paymaster.js.map +0 -1
  131. package/dist/esm/capabilities/permissions/index.d.ts +0 -145
  132. package/dist/esm/capabilities/permissions/index.js +0 -83
  133. package/dist/esm/capabilities/permissions/index.js.map +0 -1
  134. package/dist/esm/capabilities/permissions/mav2.d.ts +0 -36
  135. package/dist/esm/capabilities/permissions/mav2.js +0 -88
  136. package/dist/esm/capabilities/permissions/mav2.js.map +0 -1
  137. package/dist/esm/client/actions/createAccount.d.ts +0 -35
  138. package/dist/esm/client/actions/createAccount.js +0 -32
  139. package/dist/esm/client/actions/createAccount.js.map +0 -1
  140. package/dist/esm/client/client.e2e-test.d.ts +0 -1
  141. package/dist/esm/client/client.e2e-test.js +0 -375
  142. package/dist/esm/client/client.e2e-test.js.map +0 -1
  143. package/dist/esm/exports/internal.d.ts +0 -14
  144. package/dist/esm/exports/internal.js +0 -16
  145. package/dist/esm/exports/internal.js.map +0 -1
  146. package/dist/esm/isomorphic/actions/createSession.d.ts +0 -14
  147. package/dist/esm/isomorphic/actions/createSession.js +0 -95
  148. package/dist/esm/isomorphic/actions/createSession.js.map +0 -1
  149. package/dist/esm/isomorphic/actions/getCallsStatus.d.ts +0 -21
  150. package/dist/esm/isomorphic/actions/getCallsStatus.js +0 -113
  151. package/dist/esm/isomorphic/actions/getCallsStatus.js.map +0 -1
  152. package/dist/esm/isomorphic/actions/prepareCalls.d.ts +0 -8
  153. package/dist/esm/isomorphic/actions/prepareCalls.js +0 -116
  154. package/dist/esm/isomorphic/actions/prepareCalls.js.map +0 -1
  155. package/dist/esm/isomorphic/actions/sendPreparedCalls.d.ts +0 -8
  156. package/dist/esm/isomorphic/actions/sendPreparedCalls.js +0 -157
  157. package/dist/esm/isomorphic/actions/sendPreparedCalls.js.map +0 -1
  158. package/dist/esm/isomorphic/client.d.ts +0 -239
  159. package/dist/esm/isomorphic/client.js +0 -37
  160. package/dist/esm/isomorphic/client.js.map +0 -1
  161. package/dist/esm/isomorphic/utils/7702.d.ts +0 -23
  162. package/dist/esm/isomorphic/utils/7702.js +0 -75
  163. package/dist/esm/isomorphic/utils/7702.js.map +0 -1
  164. package/dist/esm/isomorphic/utils/createAccount.d.ts +0 -24
  165. package/dist/esm/isomorphic/utils/createAccount.js.map +0 -1
  166. package/dist/esm/isomorphic/utils/createDummySigner.d.ts +0 -3
  167. package/dist/esm/isomorphic/utils/createDummySigner.js +0 -17
  168. package/dist/esm/isomorphic/utils/createDummySigner.js.map +0 -1
  169. package/dist/esm/isomorphic/utils/decodeSignature.d.ts +0 -3
  170. package/dist/esm/isomorphic/utils/decodeSignature.js +0 -13
  171. package/dist/esm/isomorphic/utils/decodeSignature.js.map +0 -1
  172. package/dist/esm/isomorphic/utils/parsePermissionsContext.d.ts +0 -21
  173. package/dist/esm/isomorphic/utils/parsePermissionsContext.js +0 -34
  174. package/dist/esm/isomorphic/utils/parsePermissionsContext.js.map +0 -1
  175. package/dist/esm/isomorphic/utils/supportsFeature.d.ts +0 -4
  176. package/dist/esm/isomorphic/utils/supportsFeature.js +0 -21
  177. package/dist/esm/isomorphic/utils/supportsFeature.js.map +0 -1
  178. package/dist/esm/local/client.d.ts +0 -3
  179. package/dist/esm/local/client.js +0 -97
  180. package/dist/esm/local/client.js.map +0 -1
  181. package/dist/esm/remote/client.d.ts +0 -9
  182. package/dist/esm/remote/client.js +0 -41
  183. package/dist/esm/remote/client.js.map +0 -1
  184. package/dist/esm/rpc/examples.d.ts +0 -230
  185. package/dist/esm/rpc/examples.js +0 -314
  186. package/dist/esm/rpc/examples.js.map +0 -1
  187. package/dist/esm/rpc/request.d.ts +0 -755
  188. package/dist/esm/rpc/request.js +0 -214
  189. package/dist/esm/rpc/request.js.map +0 -1
  190. package/dist/esm/rpc/schema.d.ts +0 -703
  191. package/dist/esm/rpc/schema.js +0 -5
  192. package/dist/esm/rpc/schema.js.map +0 -1
  193. package/dist/esm/schemas.d.ts +0 -712
  194. package/dist/esm/schemas.js +0 -463
  195. package/dist/esm/schemas.js.map +0 -1
  196. package/dist/types/capabilities/eip7702Auth.d.ts +0 -5
  197. package/dist/types/capabilities/eip7702Auth.d.ts.map +0 -1
  198. package/dist/types/capabilities/index.d.ts +0 -42
  199. package/dist/types/capabilities/index.d.ts.map +0 -1
  200. package/dist/types/capabilities/multiDimensionalNonce.d.ts +0 -4
  201. package/dist/types/capabilities/multiDimensionalNonce.d.ts.map +0 -1
  202. package/dist/types/capabilities/overrides.d.ts +0 -27
  203. package/dist/types/capabilities/overrides.d.ts.map +0 -1
  204. package/dist/types/capabilities/paymaster.d.ts +0 -4
  205. package/dist/types/capabilities/paymaster.d.ts.map +0 -1
  206. package/dist/types/capabilities/permissions/index.d.ts +0 -146
  207. package/dist/types/capabilities/permissions/index.d.ts.map +0 -1
  208. package/dist/types/capabilities/permissions/mav2.d.ts +0 -37
  209. package/dist/types/capabilities/permissions/mav2.d.ts.map +0 -1
  210. package/dist/types/client/actions/createAccount.d.ts +0 -36
  211. package/dist/types/client/actions/createAccount.d.ts.map +0 -1
  212. package/dist/types/client/client.e2e-test.d.ts +0 -2
  213. package/dist/types/client/client.e2e-test.d.ts.map +0 -1
  214. package/dist/types/exports/internal.d.ts +0 -15
  215. package/dist/types/exports/internal.d.ts.map +0 -1
  216. package/dist/types/isomorphic/actions/createSession.d.ts +0 -15
  217. package/dist/types/isomorphic/actions/createSession.d.ts.map +0 -1
  218. package/dist/types/isomorphic/actions/getCallsStatus.d.ts +0 -22
  219. package/dist/types/isomorphic/actions/getCallsStatus.d.ts.map +0 -1
  220. package/dist/types/isomorphic/actions/prepareCalls.d.ts +0 -9
  221. package/dist/types/isomorphic/actions/prepareCalls.d.ts.map +0 -1
  222. package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts +0 -9
  223. package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts.map +0 -1
  224. package/dist/types/isomorphic/client.d.ts +0 -240
  225. package/dist/types/isomorphic/client.d.ts.map +0 -1
  226. package/dist/types/isomorphic/utils/7702.d.ts +0 -24
  227. package/dist/types/isomorphic/utils/7702.d.ts.map +0 -1
  228. package/dist/types/isomorphic/utils/createAccount.d.ts +0 -25
  229. package/dist/types/isomorphic/utils/createAccount.d.ts.map +0 -1
  230. package/dist/types/isomorphic/utils/createDummySigner.d.ts +0 -4
  231. package/dist/types/isomorphic/utils/createDummySigner.d.ts.map +0 -1
  232. package/dist/types/isomorphic/utils/decodeSignature.d.ts +0 -4
  233. package/dist/types/isomorphic/utils/decodeSignature.d.ts.map +0 -1
  234. package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts +0 -22
  235. package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts.map +0 -1
  236. package/dist/types/isomorphic/utils/supportsFeature.d.ts +0 -5
  237. package/dist/types/isomorphic/utils/supportsFeature.d.ts.map +0 -1
  238. package/dist/types/local/client.d.ts +0 -4
  239. package/dist/types/local/client.d.ts.map +0 -1
  240. package/dist/types/remote/client.d.ts +0 -10
  241. package/dist/types/remote/client.d.ts.map +0 -1
  242. package/dist/types/rpc/examples.d.ts +0 -231
  243. package/dist/types/rpc/examples.d.ts.map +0 -1
  244. package/dist/types/rpc/request.d.ts +0 -756
  245. package/dist/types/rpc/request.d.ts.map +0 -1
  246. package/dist/types/rpc/schema.d.ts +0 -704
  247. package/dist/types/rpc/schema.d.ts.map +0 -1
  248. package/dist/types/schemas.d.ts +0 -713
  249. package/dist/types/schemas.d.ts.map +0 -1
  250. package/src/capabilities/eip7702Auth.ts +0 -26
  251. package/src/capabilities/index.ts +0 -14
  252. package/src/capabilities/multiDimensionalNonce.ts +0 -7
  253. package/src/capabilities/overrides.ts +0 -35
  254. package/src/capabilities/paymaster.ts +0 -5
  255. package/src/capabilities/permissions/index.ts +0 -163
  256. package/src/capabilities/permissions/mav2.ts +0 -138
  257. package/src/client/actions/createAccount.ts +0 -53
  258. package/src/client/client.e2e-test.ts +0 -463
  259. package/src/exports/internal.ts +0 -17
  260. package/src/isomorphic/actions/createSession.ts +0 -159
  261. package/src/isomorphic/actions/getCallsStatus.ts +0 -170
  262. package/src/isomorphic/actions/prepareCalls.ts +0 -170
  263. package/src/isomorphic/actions/sendPreparedCalls.ts +0 -232
  264. package/src/isomorphic/client.ts +0 -94
  265. package/src/isomorphic/utils/7702.ts +0 -143
  266. package/src/isomorphic/utils/createAccount.ts +0 -170
  267. package/src/isomorphic/utils/createDummySigner.ts +0 -27
  268. package/src/isomorphic/utils/decodeSignature.ts +0 -18
  269. package/src/isomorphic/utils/parsePermissionsContext.ts +0 -49
  270. package/src/isomorphic/utils/supportsFeature.ts +0 -34
  271. package/src/local/client.ts +0 -136
  272. package/src/remote/client.ts +0 -67
  273. package/src/rpc/examples.ts +0 -342
  274. package/src/rpc/request.ts +0 -300
  275. package/src/rpc/schema.ts +0 -40
  276. package/src/schemas.ts +0 -657
@@ -9,21 +9,9 @@ export {
9
9
  export {
10
10
  WalletServerRpcSchema,
11
11
  type WalletServerRpcSchemaType,
12
- type WalletServerViemRpcSchema,
13
- } from "../rpc/schema.js";
14
-
15
- // capabilities: TODO: should these actually just have the types exported?
16
- export { Capabilities } from "../capabilities/index.js";
17
- export { PaymasterCapability } from "../capabilities/paymaster.js";
18
- export {
19
- PermissionsArray,
20
- PermissionsCapability,
21
- PermissionsContext,
22
- PermissionsData,
23
- } from "../capabilities/permissions/index.js";
12
+ } from "@alchemy/wallet-api-types/rpc";
24
13
 
25
14
  // client actions
26
- export { createAccount } from "../client/actions/createAccount.js";
27
15
  export { getCallsStatus } from "../client/actions/getCallsStatus.js";
28
16
  export { grantPermissions } from "../client/actions/grantPermissions.js";
29
17
  export { listAccounts } from "../client/actions/listAccounts.js";
@@ -0,0 +1,120 @@
1
+ import type { SmartAccountSigner, SmartContractAccount } from "@aa-sdk/core";
2
+ import {
3
+ createModularAccountV2,
4
+ createLightAccount,
5
+ createMultiOwnerLightAccount,
6
+ createMultiOwnerModularAccount,
7
+ } from "@account-kit/smart-contracts";
8
+ import { concatHex, type Chain, type Transport, type Address } from "viem";
9
+ import type { StaticDecode } from "@sinclair/typebox";
10
+ import { SerializedInitcode } from "@alchemy/wallet-api-types";
11
+ import { InternalError, InvalidRequestError } from "ox/RpcResponse";
12
+ import { assertNever } from "../utils.js";
13
+ import { getAccountTypeForDelegationAddress7702 } from "@alchemy/wallet-api-types/capabilities";
14
+
15
+ type CreateAccountParams = {
16
+ chain: Chain;
17
+ transport: Transport;
18
+ signer: SmartAccountSigner;
19
+ accountAddress: Address;
20
+ counterfactualInfo?: StaticDecode<typeof SerializedInitcode>; // undefined for 7702 accounts
21
+ delegation?: Address; // for 7702 accounts
22
+ };
23
+
24
+ /**
25
+ * Creates a smart account instance from the given parameters.
26
+ *
27
+ * @param {CreateAccountParams} params - The parameters for creating a smart account.
28
+ * @returns {Promise<SmartContractAccount>} A promise that resolves to the created smart account.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * // Create a smart account
33
+ * const account = await createAccount({
34
+ * chain: arbitrumSepolia,
35
+ * transport: alchemy({
36
+ * apiKey: "your-alchemy-api-key",
37
+ * }),
38
+ * signer: signer,
39
+ * accountAddress: "0x1234...",
40
+ * });
41
+ * ```
42
+ */
43
+ export async function createAccount(
44
+ params: CreateAccountParams,
45
+ ): Promise<SmartContractAccount> {
46
+ const { counterfactualInfo: ci, ...accountParams } = params;
47
+
48
+ if (params.delegation) {
49
+ const accountType = getAccountTypeForDelegationAddress7702(
50
+ params.delegation,
51
+ );
52
+ if (accountType !== "ModularAccountV2") {
53
+ throw new Error("7702 mode currently only supports ModularAccountV2");
54
+ }
55
+ return createModularAccountV2({
56
+ ...accountParams,
57
+ mode: "7702",
58
+ });
59
+ }
60
+
61
+ if (!ci) {
62
+ throw new InternalError({
63
+ message: "Counterfactual info not found",
64
+ });
65
+ }
66
+
67
+ const factoryType = ci.factoryType;
68
+ const commonParams = {
69
+ ...accountParams,
70
+ initCode: concatHex([ci.factoryAddress, ci.factoryData]),
71
+ };
72
+
73
+ // Return the account created based on the factory type
74
+ switch (factoryType) {
75
+ case "MAv2.0.0-sma-b":
76
+ return createModularAccountV2({
77
+ ...commonParams,
78
+ mode: "default",
79
+ });
80
+ case "LightAccountV2.0.0":
81
+ return createLightAccount({
82
+ ...commonParams,
83
+ version: "v2.0.0",
84
+ });
85
+ case "LightAccountV1.0.1":
86
+ return createLightAccount({
87
+ ...commonParams,
88
+ version: "v1.0.1",
89
+ });
90
+ case "LightAccountV1.0.2":
91
+ return createLightAccount({
92
+ ...commonParams,
93
+ version: "v1.0.2",
94
+ });
95
+ case "LightAccountV1.1.0":
96
+ return createLightAccount({
97
+ ...commonParams,
98
+ version: "v1.1.0",
99
+ });
100
+ case "MAv1.0.0-MultiOwner":
101
+ return createMultiOwnerModularAccount({
102
+ ...commonParams,
103
+ });
104
+ case "LightAccountV2.0.0-MultiOwner":
105
+ return createMultiOwnerLightAccount({
106
+ ...commonParams,
107
+ version: "v2.0.0",
108
+ });
109
+ case "MAv1.0.0-MultiSig":
110
+ case "MAv2.0.0-ma-ssv":
111
+ case "MAv2.0.0-ma-webauthn":
112
+ case "unknown":
113
+ case undefined:
114
+ throw new InvalidRequestError({
115
+ message: `Account type currently unsupported: ${factoryType}`,
116
+ });
117
+ default:
118
+ return assertNever(factoryType, "Unsupported factory type");
119
+ }
120
+ }
package/src/types.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { SmartAccountSigner, SmartContractAccount } from "@aa-sdk/core";
1
+ import type { SmartContractAccount } from "@aa-sdk/core";
2
2
  import type { AlchemyTransport } from "@account-kit/infra";
3
3
  import type {
4
4
  Address,
@@ -8,19 +8,15 @@ import type {
8
8
  JsonRpcAccount,
9
9
  Transport,
10
10
  } from "viem";
11
- import type {
12
- GrantPermissionsParams,
13
- GrantPermissionsResult,
14
- } from "./client/actions/grantPermissions.ts";
15
11
  import type { RequestAccountParams } from "./client/actions/requestAccount.ts";
16
- import type { WalletServerViemRpcSchema } from "./rpc/schema.ts";
12
+ import type { WalletServerViemRpcSchema } from "@alchemy/wallet-api-types/rpc";
17
13
 
18
14
  export type CreateInnerClientParams<
19
15
  TAccount extends Address | undefined = Address | undefined,
20
16
  > = {
21
17
  chain: Chain;
22
18
  transport: AlchemyTransport;
23
- policyId?: string;
19
+ policyIds?: string[];
24
20
  account?: TAccount | Address | undefined;
25
21
  };
26
22
 
@@ -33,16 +29,9 @@ export type InnerWalletApiClientBase<
33
29
  Chain,
34
30
  JsonRpcAccount<Address> | undefined,
35
31
  WalletServerViemRpcSchema,
36
- { policyId?: string } & TExtend
32
+ { policyIds?: string[] } & TExtend
37
33
  >;
38
34
 
39
- export type InnerClientActions = {
40
- grantPermissions: (
41
- signer: SmartAccountSigner,
42
- params: GrantPermissionsParams & { chainId: Hex },
43
- ) => Promise<GrantPermissionsResult>;
44
- };
45
-
46
35
  export type CachedAccount = {
47
36
  account: SmartContractAccount;
48
37
  requestParams: RequestAccountParams;
@@ -53,9 +42,9 @@ export type InternalState = {
53
42
  getAccount: () => CachedAccount | undefined;
54
43
  };
55
44
 
56
- export type InnerWalletApiClient = InnerWalletApiClientBase<
57
- InnerClientActions & { internal: InternalState }
58
- >;
45
+ export type InnerWalletApiClient = InnerWalletApiClientBase<{
46
+ internal: InternalState;
47
+ }>;
59
48
 
60
49
  export type WithoutChainId<T> = T extends { chainId: Hex }
61
50
  ? Omit<T, "chainId">
package/src/utils.ts CHANGED
@@ -6,7 +6,19 @@ export const assertNever = (_val: never, msg: string): never => {
6
6
  throw new Error(msg);
7
7
  };
8
8
 
9
- /** If the value is already Hex, it is returned unchanged. If it's a string, number or bigint, it's converted. */
9
+ /**
10
+ * If the value is already Hex, it is returned unchanged. If it's a string, number or bigint, it's converted.
11
+ *
12
+ * @param {string | number | bigint | Hex} val - The value to convert to Hex.
13
+ * @returns {Hex} The Hex value.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const hex = castToHex("0x1234");
18
+ * const hex2 = castToHex(1234);
19
+ * const hex3 = castToHex(BigInt(1234));
20
+ * ```
21
+ */
10
22
  export const castToHex = (val: string | number | bigint | Hex): Hex => {
11
23
  if (isHex(val)) {
12
24
  return val;
package/src/version.ts ADDED
@@ -0,0 +1,3 @@
1
+ // This file is autogenerated by inject-version.ts. Any changes will be
2
+ // overwritten on commit!
3
+ export const VERSION = "4.50.1";
@@ -1,4 +0,0 @@
1
- export declare const Eip7702AuthCapability: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
2
- account: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
3
- delegation: import("@sinclair/typebox").TUnion<(import("@sinclair/typebox").TLiteral<"0x69007702764179f14F51cdce752f4f775d74E139"> | import("@sinclair/typebox").TLiteral<"ModularAccountV2">)[]>;
4
- }>, import("@sinclair/typebox").TLiteral<true>]>;
@@ -1,18 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- import { TypeAddress } from "../schemas.js";
3
- import { EIP_7702_ACCOUNT_TYPE, SUPPORTED_DELEGATION_ADDRESSES, } from "../isomorphic/utils/7702.js";
4
- export const Eip7702AuthCapability = Type.Union([
5
- Type.Object({
6
- account: Type.Optional(TypeAddress),
7
- // Wallet applications must maintain a strict shortlist of well-known accounts.
8
- // https://github.com/ethereum/ERCs/pull/947/files#diff-dab085f963ca621595044bcbc0922705aa38b69f5bf8770dcb3d0496a633efcfR189
9
- delegation: Type.Union([
10
- ...SUPPORTED_DELEGATION_ADDRESSES.map((address) => Type.Literal(address)),
11
- ...EIP_7702_ACCOUNT_TYPE.map((it) => Type.Literal(it)),
12
- ]),
13
- }, {
14
- description: "Specify EIP-7702 delegation",
15
- }),
16
- Type.Literal(true, { description: "Default EIP-7702 delegation" }),
17
- ]);
18
- //# sourceMappingURL=eip7702Auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eip7702Auth.js","sourceRoot":"","sources":["../../../src/capabilities/eip7702Auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC;IAC9C,IAAI,CAAC,MAAM,CACT;QACE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QACnC,+EAA+E;QAC/E,4HAA4H;QAC5H,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC;YACrB,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAChD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CACtB;YACD,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACvD,CAAC;KACH,EACD;QACE,WAAW,EAAE,6BAA6B;KAC3C,CACF;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;CACnE,CAAC,CAAC","sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { TypeAddress } from \"../schemas.js\";\nimport {\n EIP_7702_ACCOUNT_TYPE,\n SUPPORTED_DELEGATION_ADDRESSES,\n} from \"../isomorphic/utils/7702.js\";\n\nexport const Eip7702AuthCapability = Type.Union([\n Type.Object(\n {\n account: Type.Optional(TypeAddress),\n // Wallet applications must maintain a strict shortlist of well-known accounts.\n // https://github.com/ethereum/ERCs/pull/947/files#diff-dab085f963ca621595044bcbc0922705aa38b69f5bf8770dcb3d0496a633efcfR189\n delegation: Type.Union([\n ...SUPPORTED_DELEGATION_ADDRESSES.map((address) =>\n Type.Literal(address),\n ),\n ...EIP_7702_ACCOUNT_TYPE.map((it) => Type.Literal(it)),\n ]),\n },\n {\n description: \"Specify EIP-7702 delegation\",\n },\n ),\n Type.Literal(true, { description: \"Default EIP-7702 delegation\" }),\n]);\n"]}
@@ -1,41 +0,0 @@
1
- export declare const Capabilities: import("@sinclair/typebox").TObject<{
2
- permissions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
3
- context: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
4
- }>, import("@sinclair/typebox").TObject<{
5
- sessionId: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
6
- signature: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
7
- }>]>>;
8
- paymasterService: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
9
- policyId: import("@sinclair/typebox").TString;
10
- }>>;
11
- gasParamsOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
12
- preVerificationGas: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
13
- multiplier: import("@sinclair/typebox").TNumber;
14
- }>]>>;
15
- verificationGasLimit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
16
- multiplier: import("@sinclair/typebox").TNumber;
17
- }>]>>;
18
- callGasLimit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
19
- multiplier: import("@sinclair/typebox").TNumber;
20
- }>]>>;
21
- paymasterVerificationGasLimit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
22
- multiplier: import("@sinclair/typebox").TNumber;
23
- }>]>>;
24
- paymasterPostOpGasLimit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
25
- multiplier: import("@sinclair/typebox").TNumber;
26
- }>]>>;
27
- maxFeePerGas: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
28
- multiplier: import("@sinclair/typebox").TNumber;
29
- }>]>>;
30
- maxPriorityFeePerGas: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
31
- multiplier: import("@sinclair/typebox").TNumber;
32
- }>]>>;
33
- }>>;
34
- eip7702Auth: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
35
- account: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
36
- delegation: import("@sinclair/typebox").TUnion<(import("@sinclair/typebox").TLiteral<"0x69007702764179f14F51cdce752f4f775d74E139"> | import("@sinclair/typebox").TLiteral<"ModularAccountV2">)[]>;
37
- }>, import("@sinclair/typebox").TLiteral<true>]>>;
38
- nonceOverride: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
39
- nonceKey: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
40
- }>>;
41
- }>;
@@ -1,14 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- import { GasParamsOverrideCapability } from "./overrides.js";
3
- import { PaymasterCapability } from "./paymaster.js";
4
- import { PermissionsCapability } from "./permissions/index.js";
5
- import { Eip7702AuthCapability } from "./eip7702Auth.js";
6
- import { MultiDimensionalNonceCapability } from "./multiDimensionalNonce.js";
7
- export const Capabilities = Type.Object({
8
- permissions: Type.Optional(PermissionsCapability),
9
- paymasterService: Type.Optional(PaymasterCapability),
10
- gasParamsOverride: Type.Optional(GasParamsOverrideCapability),
11
- eip7702Auth: Type.Optional(Eip7702AuthCapability),
12
- nonceOverride: Type.Optional(MultiDimensionalNonceCapability),
13
- });
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAE7E,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACjD,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACpD,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC7D,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACjD,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CAC9D,CAAC,CAAC","sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { GasParamsOverrideCapability } from \"./overrides.js\";\nimport { PaymasterCapability } from \"./paymaster.js\";\nimport { PermissionsCapability } from \"./permissions/index.js\";\nimport { Eip7702AuthCapability } from \"./eip7702Auth.js\";\nimport { MultiDimensionalNonceCapability } from \"./multiDimensionalNonce.js\";\n\nexport const Capabilities = Type.Object({\n permissions: Type.Optional(PermissionsCapability),\n paymasterService: Type.Optional(PaymasterCapability),\n gasParamsOverride: Type.Optional(GasParamsOverrideCapability),\n eip7702Auth: Type.Optional(Eip7702AuthCapability),\n nonceOverride: Type.Optional(MultiDimensionalNonceCapability),\n});\n"]}
@@ -1,3 +0,0 @@
1
- export declare const MultiDimensionalNonceCapability: import("@sinclair/typebox").TObject<{
2
- nonceKey: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
3
- }>;
@@ -1,7 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- import { TypeHex } from "../schemas.js";
3
- export const MultiDimensionalNonceCapability = Type.Object({
4
- // we do not support the optional sequentialNonce param
5
- nonceKey: TypeHex({ description: "Override nonce key as hex string" }),
6
- });
7
- //# sourceMappingURL=multiDimensionalNonce.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiDimensionalNonce.js","sourceRoot":"","sources":["../../../src/capabilities/multiDimensionalNonce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,CAAC,MAAM,CAAC;IACzD,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;CACvE,CAAC,CAAC","sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { TypeHex } from \"../schemas.js\";\n\nexport const MultiDimensionalNonceCapability = Type.Object({\n // we do not support the optional sequentialNonce param\n nonceKey: TypeHex({ description: \"Override nonce key as hex string\" }),\n});\n"]}
@@ -1,26 +0,0 @@
1
- export declare const Mutliplier: import("@sinclair/typebox").TObject<{
2
- multiplier: import("@sinclair/typebox").TNumber;
3
- }>;
4
- export declare const GasParamsOverrideCapability: import("@sinclair/typebox").TObject<{
5
- preVerificationGas: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
6
- multiplier: import("@sinclair/typebox").TNumber;
7
- }>]>>;
8
- verificationGasLimit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
9
- multiplier: import("@sinclair/typebox").TNumber;
10
- }>]>>;
11
- callGasLimit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
12
- multiplier: import("@sinclair/typebox").TNumber;
13
- }>]>>;
14
- paymasterVerificationGasLimit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
15
- multiplier: import("@sinclair/typebox").TNumber;
16
- }>]>>;
17
- paymasterPostOpGasLimit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
18
- multiplier: import("@sinclair/typebox").TNumber;
19
- }>]>>;
20
- maxFeePerGas: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
21
- multiplier: import("@sinclair/typebox").TNumber;
22
- }>]>>;
23
- maxPriorityFeePerGas: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">, import("@sinclair/typebox").TObject<{
24
- multiplier: import("@sinclair/typebox").TNumber;
25
- }>]>>;
26
- }>;
@@ -1,14 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- import { TypeHex } from "../schemas.js";
3
- export const Mutliplier = Type.Object({ multiplier: Type.Number() }, { description: "Multiplier" });
4
- // This is still being defined in https://github.com/ethereum/ERCs/pull/947/files#diff-dab085f963ca621595044bcbc0922705aa38b69f5bf8770dcb3d0496a633efcfR158
5
- export const GasParamsOverrideCapability = Type.Object({
6
- preVerificationGas: Type.Optional(Type.Union([TypeHex({ description: "Absolute" }), Mutliplier])),
7
- verificationGasLimit: Type.Optional(Type.Union([TypeHex({ description: "Absolute" }), Mutliplier])),
8
- callGasLimit: Type.Optional(Type.Union([TypeHex({ description: "Absolute" }), Mutliplier])),
9
- paymasterVerificationGasLimit: Type.Optional(Type.Union([TypeHex({ description: "Absolute" }), Mutliplier])),
10
- paymasterPostOpGasLimit: Type.Optional(Type.Union([TypeHex({ description: "Absolute" }), Mutliplier])),
11
- maxFeePerGas: Type.Optional(Type.Union([TypeHex({ description: "Absolute" }), Mutliplier])),
12
- maxPriorityFeePerGas: Type.Optional(Type.Union([TypeHex({ description: "Absolute" }), Mutliplier])),
13
- }, { minProperties: 1 });
14
- //# sourceMappingURL=overrides.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/capabilities/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CACnC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAC7B,EAAE,WAAW,EAAE,YAAY,EAAE,CAC9B,CAAC;AAEF,2JAA2J;AAC3J,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CACpD;IACE,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAC/D;IACD,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CACjC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAC/D;IACD,YAAY,EAAE,IAAI,CAAC,QAAQ,CACzB,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAC/D;IACD,6BAA6B,EAAE,IAAI,CAAC,QAAQ,CAC1C,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAC/D;IACD,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CACpC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAC/D;IACD,YAAY,EAAE,IAAI,CAAC,QAAQ,CACzB,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAC/D;IACD,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CACjC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAC/D;CACF,EACD,EAAE,aAAa,EAAE,CAAC,EAAE,CACrB,CAAC","sourcesContent":["import { Type } from \"@sinclair/typebox\";\nimport { TypeHex } from \"../schemas.js\";\n\nexport const Mutliplier = Type.Object(\n { multiplier: Type.Number() },\n { description: \"Multiplier\" },\n);\n\n// This is still being defined in https://github.com/ethereum/ERCs/pull/947/files#diff-dab085f963ca621595044bcbc0922705aa38b69f5bf8770dcb3d0496a633efcfR158\nexport const GasParamsOverrideCapability = Type.Object(\n {\n preVerificationGas: Type.Optional(\n Type.Union([TypeHex({ description: \"Absolute\" }), Mutliplier]),\n ),\n verificationGasLimit: Type.Optional(\n Type.Union([TypeHex({ description: \"Absolute\" }), Mutliplier]),\n ),\n callGasLimit: Type.Optional(\n Type.Union([TypeHex({ description: \"Absolute\" }), Mutliplier]),\n ),\n paymasterVerificationGasLimit: Type.Optional(\n Type.Union([TypeHex({ description: \"Absolute\" }), Mutliplier]),\n ),\n paymasterPostOpGasLimit: Type.Optional(\n Type.Union([TypeHex({ description: \"Absolute\" }), Mutliplier]),\n ),\n maxFeePerGas: Type.Optional(\n Type.Union([TypeHex({ description: \"Absolute\" }), Mutliplier]),\n ),\n maxPriorityFeePerGas: Type.Optional(\n Type.Union([TypeHex({ description: \"Absolute\" }), Mutliplier]),\n ),\n },\n { minProperties: 1 },\n);\n"]}
@@ -1,3 +0,0 @@
1
- export declare const PaymasterCapability: import("@sinclair/typebox").TObject<{
2
- policyId: import("@sinclair/typebox").TString;
3
- }>;
@@ -1,5 +0,0 @@
1
- import { Type } from "@sinclair/typebox";
2
- export const PaymasterCapability = Type.Object({
3
- policyId: Type.String(),
4
- });
5
- //# sourceMappingURL=paymaster.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paymaster.js","sourceRoot":"","sources":["../../../src/capabilities/paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC","sourcesContent":["import { Type } from \"@sinclair/typebox\";\n\nexport const PaymasterCapability = Type.Object({\n policyId: Type.String(),\n});\n"]}
@@ -1,145 +0,0 @@
1
- import { type TLiteral, type TObject } from "@sinclair/typebox";
2
- export declare const TypePermission: import("@sinclair/typebox").TUnion<[TObject<{
3
- type: TLiteral<"native-token-transfer">;
4
- data: TObject<{
5
- allowance: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
6
- }>;
7
- }>, TObject<{
8
- type: TLiteral<"erc20-token-transfer">;
9
- data: TObject<{
10
- allowance: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
11
- address: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
12
- }>;
13
- }>, TObject<{
14
- type: TLiteral<"gas-limit">;
15
- data: TObject<{
16
- limit: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
17
- }>;
18
- }>, TObject<{
19
- type: TLiteral<"contract-access">;
20
- data: TObject<{
21
- address: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
22
- }>;
23
- }>, TObject<{
24
- type: TLiteral<"account-functions">;
25
- data: TObject<{
26
- functions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
27
- }>;
28
- }>, TObject<{
29
- type: TLiteral<"functions-on-all-contracts">;
30
- data: TObject<{
31
- functions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
32
- }>;
33
- }>, TObject<{
34
- type: TLiteral<"functions-on-contract">;
35
- data: TObject<{
36
- address: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
37
- functions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
38
- }>;
39
- }>, TObject<{
40
- type: TLiteral<"root">;
41
- data: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNever>;
42
- }>]>;
43
- export declare const PermissionsArray: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[TObject<{
44
- type: TLiteral<"native-token-transfer">;
45
- data: TObject<{
46
- allowance: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
47
- }>;
48
- }>, TObject<{
49
- type: TLiteral<"erc20-token-transfer">;
50
- data: TObject<{
51
- allowance: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
52
- address: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
53
- }>;
54
- }>, TObject<{
55
- type: TLiteral<"gas-limit">;
56
- data: TObject<{
57
- limit: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
58
- }>;
59
- }>, TObject<{
60
- type: TLiteral<"contract-access">;
61
- data: TObject<{
62
- address: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
63
- }>;
64
- }>, TObject<{
65
- type: TLiteral<"account-functions">;
66
- data: TObject<{
67
- functions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
68
- }>;
69
- }>, TObject<{
70
- type: TLiteral<"functions-on-all-contracts">;
71
- data: TObject<{
72
- functions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
73
- }>;
74
- }>, TObject<{
75
- type: TLiteral<"functions-on-contract">;
76
- data: TObject<{
77
- address: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
78
- functions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
79
- }>;
80
- }>, TObject<{
81
- type: TLiteral<"root">;
82
- data: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNever>;
83
- }>]>>;
84
- export declare const PermissionsContext: TObject<{
85
- context: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
86
- }>;
87
- export declare const RemotePermission: TObject<{
88
- sessionId: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
89
- signature: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
90
- }>;
91
- export declare const PermissionsData: TObject<{
92
- chainId: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
93
- expirySec: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
94
- key: TObject<{
95
- type: import("@sinclair/typebox").TUnion<[TLiteral<"secp256k1">, TLiteral<"ecdsa">, TLiteral<"contract">]>;
96
- publicKey: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
97
- }>;
98
- permissions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[TObject<{
99
- type: TLiteral<"native-token-transfer">;
100
- data: TObject<{
101
- allowance: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
102
- }>;
103
- }>, TObject<{
104
- type: TLiteral<"erc20-token-transfer">;
105
- data: TObject<{
106
- allowance: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
107
- address: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
108
- }>;
109
- }>, TObject<{
110
- type: TLiteral<"gas-limit">;
111
- data: TObject<{
112
- limit: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
113
- }>;
114
- }>, TObject<{
115
- type: TLiteral<"contract-access">;
116
- data: TObject<{
117
- address: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
118
- }>;
119
- }>, TObject<{
120
- type: TLiteral<"account-functions">;
121
- data: TObject<{
122
- functions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
123
- }>;
124
- }>, TObject<{
125
- type: TLiteral<"functions-on-all-contracts">;
126
- data: TObject<{
127
- functions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
128
- }>;
129
- }>, TObject<{
130
- type: TLiteral<"functions-on-contract">;
131
- data: TObject<{
132
- address: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
133
- functions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">>;
134
- }>;
135
- }>, TObject<{
136
- type: TLiteral<"root">;
137
- data: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNever>;
138
- }>]>>;
139
- }>;
140
- export declare const PermissionsCapability: import("@sinclair/typebox").TUnion<[TObject<{
141
- context: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
142
- }>, TObject<{
143
- sessionId: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
144
- signature: import("@sinclair/typebox").TTemplateLiteralSyntax<"0x${string}">;
145
- }>]>;
@@ -1,83 +0,0 @@
1
- import { PermissionType } from "@account-kit/smart-contracts/experimental";
2
- import { Type, } from "@sinclair/typebox";
3
- import { KeySigner, TypeAddress, TypeHex } from "../../schemas.js";
4
- const Permission = (typeString, // e.g., "root"
5
- typeEnum, // e.g., PermissionType.ROOT
6
- data, description) => {
7
- return Type.Transform(Type.Object({
8
- type: Type.Literal(typeEnum),
9
- data,
10
- }, { description, title: `${typeString}` }))
11
- .Decode((value) => ({
12
- ...value,
13
- type: typeString, // enum → string
14
- }))
15
- .Encode((value) => ({
16
- ...value,
17
- type: typeEnum, // string → enum
18
- }));
19
- };
20
- const NativeTokenTransfer = Permission("native-token-transfer", PermissionType.NATIVE_TOKEN_TRANSFER, Type.Object({
21
- allowance: TypeHex(),
22
- }), "allows transfer of native tokens from the account");
23
- const Erc20TokenTransfer = Permission("erc20-token-transfer", PermissionType.ERC20_TOKEN_TRANSFER, Type.Object({
24
- allowance: TypeHex(),
25
- address: TypeAddress,
26
- }), "allows transfer or approval of erc20 tokens from the account");
27
- const GasLimit = Permission("gas-limit", PermissionType.GAS_LIMIT, Type.Object({
28
- limit: TypeHex(),
29
- }), "allows the key to spend gas for UOs");
30
- const ContractAccess = Permission("contract-access", PermissionType.CONTRACT_ACCESS, Type.Object({
31
- address: TypeAddress,
32
- }), "grants access to all functions in a contract");
33
- const AccountFunction = Permission("account-functions", PermissionType.ACCOUNT_FUNCTIONS, Type.Object({
34
- functions: Type.Array(TypeHex(), { minItems: 1 }),
35
- }), "grants access to functions in the account");
36
- const AllExternalFunctionAccess = Permission("functions-on-all-contracts", PermissionType.FUNCTIONS_ON_ALL_CONTRACTS, Type.Object({
37
- functions: Type.Array(TypeHex(), { minItems: 1 }),
38
- }), "access to a function selector in any address or contract");
39
- const ContractFunctionAccess = Permission("functions-on-contract", PermissionType.FUNCTIONS_ON_CONTRACT, Type.Object({
40
- address: TypeAddress,
41
- functions: Type.Array(TypeHex(), { minItems: 1 }),
42
- }), "grants access to specified functions on a specific contract");
43
- const Root = Permission("root", PermissionType.ROOT, Type.Optional(Type.Never()), "grants full access to everything");
44
- export const TypePermission = Type.Union([
45
- // 7715 permissions
46
- NativeTokenTransfer,
47
- Erc20TokenTransfer,
48
- GasLimit,
49
- // additional permissions
50
- ContractAccess,
51
- AccountFunction,
52
- AllExternalFunctionAccess,
53
- ContractFunctionAccess,
54
- Root,
55
- ]);
56
- export const PermissionsArray = Type.Array(TypePermission, { minItems: 1 });
57
- export const PermissionsContext = Type.Object({
58
- context: TypeHex(),
59
- }, {
60
- description: "Permissions context",
61
- });
62
- export const RemotePermission = Type.Object({
63
- sessionId: TypeHex(),
64
- signature: TypeHex(),
65
- }, {
66
- description: "Remote permission",
67
- });
68
- export const PermissionsData = Type.Object({
69
- chainId: TypeHex(),
70
- expirySec: Type.Optional(Type.Integer({
71
- maximum: 9999999999, // This is valid until November 20, 2286.
72
- description: "Unix timestamp in seconds (0 for no expiry)",
73
- })),
74
- key: KeySigner,
75
- permissions: PermissionsArray,
76
- });
77
- export const PermissionsCapability = Type.Union([
78
- PermissionsContext,
79
- RemotePermission,
80
- // TODO: support permissions object here instead of only context-encoded permissions
81
- // PermissionsData,
82
- ]);
83
- //# sourceMappingURL=index.js.map