@account-kit/smart-contracts 4.6.1 → 4.8.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 (151) hide show
  1. package/dist/esm/src/ma-v2/abis/accountFactoryAbi.d.ts +492 -0
  2. package/dist/esm/src/ma-v2/abis/accountFactoryAbi.js +639 -0
  3. package/dist/esm/src/ma-v2/abis/accountFactoryAbi.js.map +1 -0
  4. package/dist/esm/src/ma-v2/abis/modularAccountAbi.d.ts +954 -0
  5. package/dist/esm/src/ma-v2/abis/modularAccountAbi.js +1242 -0
  6. package/dist/esm/src/ma-v2/abis/modularAccountAbi.js.map +1 -0
  7. package/dist/esm/src/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts +991 -0
  8. package/dist/esm/src/ma-v2/abis/semiModularAccountBytecodeAbi.js +1289 -0
  9. package/dist/esm/src/ma-v2/abis/semiModularAccountBytecodeAbi.js.map +1 -0
  10. package/dist/esm/src/ma-v2/abis/semiModularAccountStorageAbi.d.ts +1001 -0
  11. package/dist/esm/src/ma-v2/abis/semiModularAccountStorageAbi.js +1302 -0
  12. package/dist/esm/src/ma-v2/abis/semiModularAccountStorageAbi.js.map +1 -0
  13. package/dist/esm/src/ma-v2/account/nativeSMASigner.d.ts +238 -0
  14. package/dist/esm/src/ma-v2/account/nativeSMASigner.js +88 -0
  15. package/dist/esm/src/ma-v2/account/nativeSMASigner.js.map +1 -0
  16. package/dist/esm/src/ma-v2/account/semiModularAccountV2.d.ts +41 -0
  17. package/dist/esm/src/ma-v2/account/semiModularAccountV2.js +148 -0
  18. package/dist/esm/src/ma-v2/account/semiModularAccountV2.js.map +1 -0
  19. package/dist/esm/src/ma-v2/actions/common/types.d.ts +31 -0
  20. package/dist/esm/src/ma-v2/actions/common/types.js +6 -0
  21. package/dist/esm/src/ma-v2/actions/common/types.js.map +1 -0
  22. package/dist/esm/src/ma-v2/actions/common/utils.d.ts +76 -0
  23. package/dist/esm/src/ma-v2/actions/common/utils.js +100 -0
  24. package/dist/esm/src/ma-v2/actions/common/utils.js.map +1 -0
  25. package/dist/esm/src/ma-v2/actions/install-validation/installValidation.d.ts +71 -0
  26. package/dist/esm/src/ma-v2/actions/install-validation/installValidation.js +109 -0
  27. package/dist/esm/src/ma-v2/actions/install-validation/installValidation.js.map +1 -0
  28. package/dist/esm/src/ma-v2/client/client.d.ts +6 -0
  29. package/dist/esm/src/ma-v2/client/client.js +40 -0
  30. package/dist/esm/src/ma-v2/client/client.js.map +1 -0
  31. package/dist/esm/src/ma-v2/index.d.ts +26 -0
  32. package/dist/esm/src/ma-v2/index.js +24 -0
  33. package/dist/esm/src/ma-v2/index.js.map +1 -0
  34. package/dist/esm/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts +556 -0
  35. package/dist/esm/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.js +716 -0
  36. package/dist/esm/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.js.map +1 -0
  37. package/dist/esm/src/ma-v2/modules/allowlist-module/module.d.ts +579 -0
  38. package/dist/esm/src/ma-v2/modules/allowlist-module/module.js +56 -0
  39. package/dist/esm/src/ma-v2/modules/allowlist-module/module.js.map +1 -0
  40. package/dist/esm/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts +312 -0
  41. package/dist/esm/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js +404 -0
  42. package/dist/esm/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js.map +1 -0
  43. package/dist/esm/src/ma-v2/modules/native-token-limit-module/module.d.ts +322 -0
  44. package/dist/esm/src/ma-v2/modules/native-token-limit-module/module.js +14 -0
  45. package/dist/esm/src/ma-v2/modules/native-token-limit-module/module.js.map +1 -0
  46. package/dist/esm/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts +186 -0
  47. package/dist/esm/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.js +242 -0
  48. package/dist/esm/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.js.map +1 -0
  49. package/dist/esm/src/ma-v2/modules/paymaster-guard-module/module.d.ts +196 -0
  50. package/dist/esm/src/ma-v2/modules/paymaster-guard-module/module.js +25 -0
  51. package/dist/esm/src/ma-v2/modules/paymaster-guard-module/module.js.map +1 -0
  52. package/dist/esm/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts +45 -0
  53. package/dist/esm/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.js +331 -0
  54. package/dist/esm/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.js.map +1 -0
  55. package/dist/esm/src/ma-v2/modules/single-signer-validation/module.d.ts +10 -0
  56. package/dist/esm/src/ma-v2/modules/single-signer-validation/module.js +16 -0
  57. package/dist/esm/src/ma-v2/modules/single-signer-validation/module.js.map +1 -0
  58. package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.d.ts +239 -0
  59. package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js +93 -0
  60. package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js.map +1 -0
  61. package/dist/esm/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts +229 -0
  62. package/dist/esm/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.js +296 -0
  63. package/dist/esm/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.js.map +1 -0
  64. package/dist/esm/src/ma-v2/modules/time-range-module/module.d.ts +245 -0
  65. package/dist/esm/src/ma-v2/modules/time-range-module/module.js +42 -0
  66. package/dist/esm/src/ma-v2/modules/time-range-module/module.js.map +1 -0
  67. package/dist/esm/src/ma-v2/modules/utils.d.ts +91 -0
  68. package/dist/esm/src/ma-v2/modules/utils.js +188 -0
  69. package/dist/esm/src/ma-v2/modules/utils.js.map +1 -0
  70. package/dist/esm/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +287 -0
  71. package/dist/esm/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js +374 -0
  72. package/dist/esm/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js.map +1 -0
  73. package/dist/esm/src/ma-v2/utils.d.ts +16 -0
  74. package/dist/esm/src/ma-v2/utils.js +105 -0
  75. package/dist/esm/src/ma-v2/utils.js.map +1 -0
  76. package/dist/types/src/ma-v2/abis/accountFactoryAbi.d.ts +493 -0
  77. package/dist/types/src/ma-v2/abis/accountFactoryAbi.d.ts.map +1 -0
  78. package/dist/types/src/ma-v2/abis/modularAccountAbi.d.ts +955 -0
  79. package/dist/types/src/ma-v2/abis/modularAccountAbi.d.ts.map +1 -0
  80. package/dist/types/src/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts +992 -0
  81. package/dist/types/src/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts.map +1 -0
  82. package/dist/types/src/ma-v2/abis/semiModularAccountStorageAbi.d.ts +1002 -0
  83. package/dist/types/src/ma-v2/abis/semiModularAccountStorageAbi.d.ts.map +1 -0
  84. package/dist/types/src/ma-v2/account/nativeSMASigner.d.ts +239 -0
  85. package/dist/types/src/ma-v2/account/nativeSMASigner.d.ts.map +1 -0
  86. package/dist/types/src/ma-v2/account/semiModularAccountV2.d.ts +42 -0
  87. package/dist/types/src/ma-v2/account/semiModularAccountV2.d.ts.map +1 -0
  88. package/dist/types/src/ma-v2/actions/common/types.d.ts +32 -0
  89. package/dist/types/src/ma-v2/actions/common/types.d.ts.map +1 -0
  90. package/dist/types/src/ma-v2/actions/common/utils.d.ts +77 -0
  91. package/dist/types/src/ma-v2/actions/common/utils.d.ts.map +1 -0
  92. package/dist/types/src/ma-v2/actions/install-validation/installValidation.d.ts +72 -0
  93. package/dist/types/src/ma-v2/actions/install-validation/installValidation.d.ts.map +1 -0
  94. package/dist/types/src/ma-v2/client/client.d.ts +7 -0
  95. package/dist/types/src/ma-v2/client/client.d.ts.map +1 -0
  96. package/dist/types/src/ma-v2/index.d.ts +27 -0
  97. package/dist/types/src/ma-v2/index.d.ts.map +1 -0
  98. package/dist/types/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts +557 -0
  99. package/dist/types/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts.map +1 -0
  100. package/dist/types/src/ma-v2/modules/allowlist-module/module.d.ts +580 -0
  101. package/dist/types/src/ma-v2/modules/allowlist-module/module.d.ts.map +1 -0
  102. package/dist/types/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts +313 -0
  103. package/dist/types/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts.map +1 -0
  104. package/dist/types/src/ma-v2/modules/native-token-limit-module/module.d.ts +323 -0
  105. package/dist/types/src/ma-v2/modules/native-token-limit-module/module.d.ts.map +1 -0
  106. package/dist/types/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts +187 -0
  107. package/dist/types/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts.map +1 -0
  108. package/dist/types/src/ma-v2/modules/paymaster-guard-module/module.d.ts +197 -0
  109. package/dist/types/src/ma-v2/modules/paymaster-guard-module/module.d.ts.map +1 -0
  110. package/dist/types/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts +46 -0
  111. package/dist/types/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts.map +1 -0
  112. package/dist/types/src/ma-v2/modules/single-signer-validation/module.d.ts +11 -0
  113. package/dist/types/src/ma-v2/modules/single-signer-validation/module.d.ts.map +1 -0
  114. package/dist/types/src/ma-v2/modules/single-signer-validation/signer.d.ts +240 -0
  115. package/dist/types/src/ma-v2/modules/single-signer-validation/signer.d.ts.map +1 -0
  116. package/dist/types/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts +230 -0
  117. package/dist/types/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts.map +1 -0
  118. package/dist/types/src/ma-v2/modules/time-range-module/module.d.ts +246 -0
  119. package/dist/types/src/ma-v2/modules/time-range-module/module.d.ts.map +1 -0
  120. package/dist/types/src/ma-v2/modules/utils.d.ts +92 -0
  121. package/dist/types/src/ma-v2/modules/utils.d.ts.map +1 -0
  122. package/dist/types/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +288 -0
  123. package/dist/types/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts.map +1 -0
  124. package/dist/types/src/ma-v2/utils.d.ts +17 -0
  125. package/dist/types/src/ma-v2/utils.d.ts.map +1 -0
  126. package/package.json +10 -5
  127. package/src/ma-v2/abis/accountFactoryAbi.ts +638 -0
  128. package/src/ma-v2/abis/modularAccountAbi.ts +1241 -0
  129. package/src/ma-v2/abis/semiModularAccountBytecodeAbi.ts +1288 -0
  130. package/src/ma-v2/abis/semiModularAccountStorageAbi.ts +1301 -0
  131. package/src/ma-v2/account/nativeSMASigner.ts +121 -0
  132. package/src/ma-v2/account/semiModularAccountV2.ts +289 -0
  133. package/src/ma-v2/actions/common/types.ts +37 -0
  134. package/src/ma-v2/actions/common/utils.ts +103 -0
  135. package/src/ma-v2/actions/install-validation/installValidation.ts +213 -0
  136. package/src/ma-v2/client/client.ts +74 -0
  137. package/src/ma-v2/index.ts +47 -0
  138. package/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.ts +715 -0
  139. package/src/ma-v2/modules/allowlist-module/module.ts +87 -0
  140. package/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.ts +403 -0
  141. package/src/ma-v2/modules/native-token-limit-module/module.ts +21 -0
  142. package/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.ts +241 -0
  143. package/src/ma-v2/modules/paymaster-guard-module/module.ts +35 -0
  144. package/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.ts +330 -0
  145. package/src/ma-v2/modules/single-signer-validation/module.ts +24 -0
  146. package/src/ma-v2/modules/single-signer-validation/signer.ts +127 -0
  147. package/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.ts +295 -0
  148. package/src/ma-v2/modules/time-range-module/module.ts +63 -0
  149. package/src/ma-v2/modules/utils.ts +213 -0
  150. package/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.ts +373 -0
  151. package/src/ma-v2/utils.ts +138 -0
@@ -0,0 +1,213 @@
1
+ import {
2
+ AccountNotFoundError,
3
+ IncompatibleClientError,
4
+ isSmartAccountClient,
5
+ EntityIdOverrideError,
6
+ type GetEntryPointFromAccount,
7
+ type SendUserOperationResult,
8
+ type UserOperationOverridesParameter,
9
+ type SmartAccountSigner,
10
+ } from "@aa-sdk/core";
11
+ import {
12
+ type Address,
13
+ type Hex,
14
+ encodeFunctionData,
15
+ concatHex,
16
+ zeroAddress,
17
+ } from "viem";
18
+
19
+ import { semiModularAccountBytecodeAbi } from "../../abis/semiModularAccountBytecodeAbi.js";
20
+ import type { HookConfig, ValidationConfig } from "../common/types.js";
21
+ import {
22
+ serializeValidationConfig,
23
+ serializeHookConfig,
24
+ serializeModuleEntity,
25
+ } from "../common/utils.js";
26
+
27
+ import { type SMAV2AccountClient } from "../../client/client.js";
28
+ import { type MAV2Account } from "../../account/semiModularAccountV2.js";
29
+ import { DEFAULT_OWNER_ENTITY_ID } from "../../utils.js";
30
+
31
+ export type InstallValidationParams<
32
+ TSigner extends SmartAccountSigner = SmartAccountSigner
33
+ > = {
34
+ validationConfig: ValidationConfig;
35
+ selectors: Hex[];
36
+ installData: Hex;
37
+ hooks: {
38
+ hookConfig: HookConfig;
39
+ initData: Hex;
40
+ }[];
41
+ account?: MAV2Account<TSigner> | undefined;
42
+ } & UserOperationOverridesParameter<
43
+ GetEntryPointFromAccount<MAV2Account<TSigner>>
44
+ >;
45
+
46
+ export type UninstallValidationParams<
47
+ TSigner extends SmartAccountSigner = SmartAccountSigner
48
+ > = {
49
+ moduleAddress: Address;
50
+ entityId: number;
51
+ uninstallData: Hex;
52
+ hookUninstallDatas: Hex[];
53
+ account?: MAV2Account<TSigner> | undefined;
54
+ } & UserOperationOverridesParameter<
55
+ GetEntryPointFromAccount<MAV2Account<TSigner>>
56
+ >;
57
+
58
+ export type InstallValidationActions<
59
+ TSigner extends SmartAccountSigner = SmartAccountSigner
60
+ > = {
61
+ installValidation: (
62
+ args: InstallValidationParams<TSigner>
63
+ ) => Promise<SendUserOperationResult>;
64
+ uninstallValidation: (
65
+ args: UninstallValidationParams<TSigner>
66
+ ) => Promise<SendUserOperationResult>;
67
+ };
68
+
69
+ /**
70
+ * Provides validation installation and uninstallation functionalities for a MA v2 client, ensuring compatibility with `SmartAccountClient`.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * import { createSMAV2AccountClient, installValidationActions, getDefaultSingleSignerValidationModuleAddress, SingleSignerValidationModule } from "@account-kit/smart-contracts";
75
+ * import { Address } from "viem";
76
+ *
77
+ * const client = (await createSMAV2AccountClient({ ... })).extend(installValidationActions);
78
+ * const sessionKeyAddress: Address = "0x1234";
79
+ * const sessionKeyEntityId: number = 1;
80
+ *
81
+ * await client.installValidation({
82
+ * validationConfig: {
83
+ * moduleAddress: getDefaultSingleSignerValidationModuleAddress(
84
+ * client.chain
85
+ * ),
86
+ * entityId: sessionKeyEntityId,
87
+ * isGlobal: true,
88
+ * isSignatureValidation: false,
89
+ * isUserOpValidation: true,
90
+ * },
91
+ * selectors: [],
92
+ * installData: SingleSignerValidationModule.encodeOnInstallData({
93
+ * entityId: sessionKeyEntityId,
94
+ * signer: sessionKeyAddress,
95
+ * }),
96
+ * hooks: [],
97
+ * });
98
+ *
99
+ * await client.uninstallValidation({
100
+ * moduleAddress: sessionKeyAddress,
101
+ * entityId: sessionKeyEntityId,
102
+ * uninstallData: SingleSignerValidationModule.encodeOnUninstallData({
103
+ * entityId: sessionKeyEntityId,
104
+ * }),
105
+ * hookUninstallDatas: [],
106
+ * });
107
+ *
108
+ * ```
109
+ *
110
+ * @param {object} client - The client instance which provides account and sendUserOperation functionality.
111
+ * @returns {object} - An object containing two methods, `installValidation` and `uninstallValidation`.
112
+ */
113
+ export const installValidationActions: <
114
+ TSigner extends SmartAccountSigner = SmartAccountSigner
115
+ >(
116
+ client: SMAV2AccountClient<TSigner>
117
+ ) => InstallValidationActions<TSigner> = (client) => ({
118
+ installValidation: async ({
119
+ validationConfig,
120
+ selectors,
121
+ installData,
122
+ hooks,
123
+ account = client.account,
124
+ overrides,
125
+ }) => {
126
+ if (!account) {
127
+ throw new AccountNotFoundError();
128
+ }
129
+
130
+ if (!isSmartAccountClient(client)) {
131
+ throw new IncompatibleClientError(
132
+ "SmartAccountClient",
133
+ "installValidation",
134
+ client
135
+ );
136
+ }
137
+
138
+ // an entityId of zero is only allowed if we're installing or uninstalling hooks on the fallback validation
139
+ if (
140
+ validationConfig.entityId === DEFAULT_OWNER_ENTITY_ID &&
141
+ validationConfig.moduleAddress !== zeroAddress
142
+ ) {
143
+ throw new EntityIdOverrideError();
144
+ }
145
+
146
+ const { encodeCallData } = account;
147
+
148
+ const callData = await encodeCallData(
149
+ encodeFunctionData({
150
+ abi: semiModularAccountBytecodeAbi,
151
+ functionName: "installValidation",
152
+ args: [
153
+ serializeValidationConfig(validationConfig),
154
+ selectors,
155
+ installData,
156
+ hooks.map((hook: { hookConfig: HookConfig; initData: Hex }) =>
157
+ concatHex([serializeHookConfig(hook.hookConfig), hook.initData])
158
+ ),
159
+ ],
160
+ })
161
+ );
162
+
163
+ return client.sendUserOperation({
164
+ uo: callData,
165
+ account,
166
+ overrides,
167
+ });
168
+ },
169
+
170
+ uninstallValidation: async ({
171
+ moduleAddress,
172
+ entityId,
173
+ uninstallData,
174
+ hookUninstallDatas,
175
+ account = client.account,
176
+ overrides,
177
+ }) => {
178
+ if (!account) {
179
+ throw new AccountNotFoundError();
180
+ }
181
+
182
+ if (!isSmartAccountClient(client)) {
183
+ throw new IncompatibleClientError(
184
+ "SmartAccountClient",
185
+ "uninstallValidation",
186
+ client
187
+ );
188
+ }
189
+
190
+ const { encodeCallData } = account;
191
+
192
+ const callData = await encodeCallData(
193
+ encodeFunctionData({
194
+ abi: semiModularAccountBytecodeAbi,
195
+ functionName: "uninstallValidation",
196
+ args: [
197
+ serializeModuleEntity({
198
+ moduleAddress,
199
+ entityId,
200
+ }),
201
+ uninstallData,
202
+ hookUninstallDatas,
203
+ ],
204
+ })
205
+ );
206
+
207
+ return client.sendUserOperation({
208
+ uo: callData,
209
+ account,
210
+ overrides,
211
+ });
212
+ },
213
+ });
@@ -0,0 +1,74 @@
1
+ import {
2
+ createSmartAccountClient,
3
+ type SmartAccountClient,
4
+ type SmartAccountSigner,
5
+ type SmartAccountClientConfig,
6
+ } from "@aa-sdk/core";
7
+ import { type Chain, type Transport } from "viem";
8
+
9
+ import {
10
+ createSMAV2Account,
11
+ type CreateSMAV2AccountParams,
12
+ type MAV2Account,
13
+ } from "../account/semiModularAccountV2.js";
14
+
15
+ export type SMAV2AccountClient<
16
+ TSigner extends SmartAccountSigner = SmartAccountSigner
17
+ > = SmartAccountClient<Transport, Chain, MAV2Account<TSigner>>;
18
+
19
+ export type CreateSMAV2AccountClientParams<
20
+ TTransport extends Transport = Transport,
21
+ TChain extends Chain = Chain,
22
+ TSigner extends SmartAccountSigner = SmartAccountSigner
23
+ > = CreateSMAV2AccountParams<TTransport, TSigner> &
24
+ Omit<
25
+ SmartAccountClientConfig<TTransport, TChain>,
26
+ "transport" | "account" | "chain"
27
+ >;
28
+
29
+ export function createSMAV2AccountClient<
30
+ TChain extends Chain = Chain,
31
+ TSigner extends SmartAccountSigner = SmartAccountSigner
32
+ >(
33
+ args: CreateSMAV2AccountClientParams<Transport, TChain, TSigner>
34
+ ): Promise<SMAV2AccountClient<TSigner>>;
35
+
36
+ /**
37
+ * Creates a SMAv2 account client using the provided configuration parameters.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * import { http } from "viem";
42
+ * import { createSMAV2AccountClient } from "@account-kit/smart-contracts";
43
+ * import { LocalAccountSigner } from "@aa-sdk/core";
44
+ * import { sepolia } from "@account-kit/infra";
45
+ *
46
+ * const MNEMONIC = "...";
47
+ * const RPC_URL = "...";
48
+ *
49
+ * const signer = LocalAccountSigner.mnemonicToAccountSigner(MNEMONIC);
50
+ *
51
+ * const chain = sepolia;
52
+ *
53
+ * const transport = http(RPC_URL);
54
+ *
55
+ * const SMAV2SignerAccountClient = await createSMAV2AccountClient({
56
+ * chain,
57
+ * signer,
58
+ * transport,
59
+ * });
60
+ * ```
61
+ *
62
+ * @param {CreateSMAV2AccountClientParams} config The configuration parameters required to create the MAv2 account client
63
+ * @returns {Promise<SmartAccountClient>} A promise that resolves to a `SmartAccountClient` instance
64
+ */
65
+ export async function createSMAV2AccountClient(
66
+ config: CreateSMAV2AccountClientParams
67
+ ): Promise<SmartAccountClient> {
68
+ const smaV2Account = await createSMAV2Account(config);
69
+
70
+ return createSmartAccountClient({
71
+ ...config,
72
+ account: smaV2Account,
73
+ });
74
+ }
@@ -0,0 +1,47 @@
1
+ // ma v2 exports
2
+ export { accountFactoryAbi } from "./abis/accountFactoryAbi.js";
3
+ export { modularAccountAbi } from "./abis/modularAccountAbi.js";
4
+ export { semiModularAccountBytecodeAbi } from "./abis/semiModularAccountBytecodeAbi.js";
5
+ export { semiModularAccountStorageAbi } from "./abis/semiModularAccountStorageAbi.js";
6
+
7
+ export { nativeSMASigner } from "./account/nativeSMASigner.js";
8
+ export type * from "./account/semiModularAccountV2.js";
9
+ export { createSMAV2Account } from "./account/semiModularAccountV2.js";
10
+
11
+ export type {
12
+ ModuleEntity,
13
+ ValidationConfig,
14
+ HookConfig,
15
+ ValidationData,
16
+ } from "./actions/common/types.js";
17
+ export { HookType } from "./actions/common/types.js";
18
+ export {
19
+ serializeValidationConfig,
20
+ serializeHookConfig,
21
+ serializeModuleEntity,
22
+ } from "./actions/common/utils.js";
23
+ export type * from "./actions/install-validation/installValidation.js";
24
+ export { installValidationActions } from "./actions/install-validation/installValidation.js";
25
+
26
+ export type * from "./client/client.js";
27
+ export { createSMAV2AccountClient } from "./client/client.js";
28
+
29
+ export {
30
+ getDefaultAllowlistModuleAddress,
31
+ getDefaultNativeTokenLimitModuleAddress,
32
+ getDefaultPaymasterGuardModuleAddress,
33
+ getDefaultSingleSignerValidationModuleAddress,
34
+ getDefaultTimeRangeModuleAddress,
35
+ getDefaultWebauthnValidationModuleAddress,
36
+ } from "./modules/utils.js";
37
+ export { allowlistModuleAbi } from "./modules/allowlist-module/abis/allowlistModuleAbi.js";
38
+ export { AllowlistModule } from "./modules/allowlist-module/module.js";
39
+ export { nativeTokenLimitModuleAbi } from "./modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js";
40
+ export { NativeTokenLimitModule } from "./modules/native-token-limit-module/module.js";
41
+ export { paymasterGuardModuleAbi } from "./modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.js";
42
+ export { PaymasterGuardModule } from "./modules/paymaster-guard-module/module.js";
43
+ export { singleSignerValidationModuleAbi } from "./modules/single-signer-validation/abis/singleSignerValidationModuleAbi.js";
44
+ export { SingleSignerValidationModule } from "./modules/single-signer-validation/module.js";
45
+ export { timeRangeModuleAbi } from "./modules/time-range-module/abis/timeRangeModuleAbi.js";
46
+ export { TimeRangeModule } from "./modules/time-range-module/module.js";
47
+ export { webauthnValidationModuleAbi } from "./modules/webauthn-validation/abis/webauthnValidationAbi.js";