@account-kit/smart-contracts 4.7.0 → 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.
- package/dist/esm/src/ma-v2/abis/accountFactoryAbi.d.ts +492 -0
- package/dist/esm/src/ma-v2/abis/accountFactoryAbi.js +639 -0
- package/dist/esm/src/ma-v2/abis/accountFactoryAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/abis/modularAccountAbi.d.ts +954 -0
- package/dist/esm/src/ma-v2/abis/modularAccountAbi.js +1242 -0
- package/dist/esm/src/ma-v2/abis/modularAccountAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts +991 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountBytecodeAbi.js +1289 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountBytecodeAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountStorageAbi.d.ts +1001 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountStorageAbi.js +1302 -0
- package/dist/esm/src/ma-v2/abis/semiModularAccountStorageAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/account/nativeSMASigner.d.ts +238 -0
- package/dist/esm/src/ma-v2/account/nativeSMASigner.js +88 -0
- package/dist/esm/src/ma-v2/account/nativeSMASigner.js.map +1 -0
- package/dist/esm/src/ma-v2/account/semiModularAccountV2.d.ts +41 -0
- package/dist/esm/src/ma-v2/account/semiModularAccountV2.js +148 -0
- package/dist/esm/src/ma-v2/account/semiModularAccountV2.js.map +1 -0
- package/dist/esm/src/ma-v2/actions/common/types.d.ts +31 -0
- package/dist/esm/src/ma-v2/actions/common/types.js +6 -0
- package/dist/esm/src/ma-v2/actions/common/types.js.map +1 -0
- package/dist/esm/src/ma-v2/actions/common/utils.d.ts +76 -0
- package/dist/esm/src/ma-v2/actions/common/utils.js +100 -0
- package/dist/esm/src/ma-v2/actions/common/utils.js.map +1 -0
- package/dist/esm/src/ma-v2/actions/install-validation/installValidation.d.ts +71 -0
- package/dist/esm/src/ma-v2/actions/install-validation/installValidation.js +109 -0
- package/dist/esm/src/ma-v2/actions/install-validation/installValidation.js.map +1 -0
- package/dist/esm/src/ma-v2/client/client.d.ts +6 -0
- package/dist/esm/src/ma-v2/client/client.js +40 -0
- package/dist/esm/src/ma-v2/client/client.js.map +1 -0
- package/dist/esm/src/ma-v2/index.d.ts +26 -0
- package/dist/esm/src/ma-v2/index.js +24 -0
- package/dist/esm/src/ma-v2/index.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts +556 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.js +716 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/module.d.ts +579 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/module.js +56 -0
- package/dist/esm/src/ma-v2/modules/allowlist-module/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts +312 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js +404 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/module.d.ts +322 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/module.js +14 -0
- package/dist/esm/src/ma-v2/modules/native-token-limit-module/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts +186 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.js +242 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/module.d.ts +196 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/module.js +25 -0
- package/dist/esm/src/ma-v2/modules/paymaster-guard-module/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts +45 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.js +331 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/module.d.ts +10 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/module.js +16 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.d.ts +239 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js +93 -0
- package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts +229 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.js +296 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/module.d.ts +245 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/module.js +42 -0
- package/dist/esm/src/ma-v2/modules/time-range-module/module.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/utils.d.ts +91 -0
- package/dist/esm/src/ma-v2/modules/utils.js +188 -0
- package/dist/esm/src/ma-v2/modules/utils.js.map +1 -0
- package/dist/esm/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +287 -0
- package/dist/esm/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js +374 -0
- package/dist/esm/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.js.map +1 -0
- package/dist/esm/src/ma-v2/utils.d.ts +16 -0
- package/dist/esm/src/ma-v2/utils.js +105 -0
- package/dist/esm/src/ma-v2/utils.js.map +1 -0
- package/dist/types/src/ma-v2/abis/accountFactoryAbi.d.ts +493 -0
- package/dist/types/src/ma-v2/abis/accountFactoryAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/abis/modularAccountAbi.d.ts +955 -0
- package/dist/types/src/ma-v2/abis/modularAccountAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts +992 -0
- package/dist/types/src/ma-v2/abis/semiModularAccountBytecodeAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/abis/semiModularAccountStorageAbi.d.ts +1002 -0
- package/dist/types/src/ma-v2/abis/semiModularAccountStorageAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/account/nativeSMASigner.d.ts +239 -0
- package/dist/types/src/ma-v2/account/nativeSMASigner.d.ts.map +1 -0
- package/dist/types/src/ma-v2/account/semiModularAccountV2.d.ts +42 -0
- package/dist/types/src/ma-v2/account/semiModularAccountV2.d.ts.map +1 -0
- package/dist/types/src/ma-v2/actions/common/types.d.ts +32 -0
- package/dist/types/src/ma-v2/actions/common/types.d.ts.map +1 -0
- package/dist/types/src/ma-v2/actions/common/utils.d.ts +77 -0
- package/dist/types/src/ma-v2/actions/common/utils.d.ts.map +1 -0
- package/dist/types/src/ma-v2/actions/install-validation/installValidation.d.ts +72 -0
- package/dist/types/src/ma-v2/actions/install-validation/installValidation.d.ts.map +1 -0
- package/dist/types/src/ma-v2/client/client.d.ts +7 -0
- package/dist/types/src/ma-v2/client/client.d.ts.map +1 -0
- package/dist/types/src/ma-v2/index.d.ts +27 -0
- package/dist/types/src/ma-v2/index.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts +557 -0
- package/dist/types/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/allowlist-module/module.d.ts +580 -0
- package/dist/types/src/ma-v2/modules/allowlist-module/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts +313 -0
- package/dist/types/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/native-token-limit-module/module.d.ts +323 -0
- package/dist/types/src/ma-v2/modules/native-token-limit-module/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts +187 -0
- package/dist/types/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/paymaster-guard-module/module.d.ts +197 -0
- package/dist/types/src/ma-v2/modules/paymaster-guard-module/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts +46 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/module.d.ts +11 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/signer.d.ts +240 -0
- package/dist/types/src/ma-v2/modules/single-signer-validation/signer.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts +230 -0
- package/dist/types/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/time-range-module/module.d.ts +246 -0
- package/dist/types/src/ma-v2/modules/time-range-module/module.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/utils.d.ts +92 -0
- package/dist/types/src/ma-v2/modules/utils.d.ts.map +1 -0
- package/dist/types/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts +288 -0
- package/dist/types/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.d.ts.map +1 -0
- package/dist/types/src/ma-v2/utils.d.ts +17 -0
- package/dist/types/src/ma-v2/utils.d.ts.map +1 -0
- package/package.json +10 -5
- package/src/ma-v2/abis/accountFactoryAbi.ts +638 -0
- package/src/ma-v2/abis/modularAccountAbi.ts +1241 -0
- package/src/ma-v2/abis/semiModularAccountBytecodeAbi.ts +1288 -0
- package/src/ma-v2/abis/semiModularAccountStorageAbi.ts +1301 -0
- package/src/ma-v2/account/nativeSMASigner.ts +121 -0
- package/src/ma-v2/account/semiModularAccountV2.ts +289 -0
- package/src/ma-v2/actions/common/types.ts +37 -0
- package/src/ma-v2/actions/common/utils.ts +103 -0
- package/src/ma-v2/actions/install-validation/installValidation.ts +213 -0
- package/src/ma-v2/client/client.ts +74 -0
- package/src/ma-v2/index.ts +47 -0
- package/src/ma-v2/modules/allowlist-module/abis/allowlistModuleAbi.ts +715 -0
- package/src/ma-v2/modules/allowlist-module/module.ts +87 -0
- package/src/ma-v2/modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.ts +403 -0
- package/src/ma-v2/modules/native-token-limit-module/module.ts +21 -0
- package/src/ma-v2/modules/paymaster-guard-module/abis/paymasterGuardModuleAbi.ts +241 -0
- package/src/ma-v2/modules/paymaster-guard-module/module.ts +35 -0
- package/src/ma-v2/modules/single-signer-validation/abis/singleSignerValidationModuleAbi.ts +330 -0
- package/src/ma-v2/modules/single-signer-validation/module.ts +24 -0
- package/src/ma-v2/modules/single-signer-validation/signer.ts +127 -0
- package/src/ma-v2/modules/time-range-module/abis/timeRangeModuleAbi.ts +295 -0
- package/src/ma-v2/modules/time-range-module/module.ts +63 -0
- package/src/ma-v2/modules/utils.ts +213 -0
- package/src/ma-v2/modules/webauthn-validation/abis/webauthnValidationAbi.ts +373 -0
- 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";
|