@zerodev/sdk 5.4.9 → 5.4.10
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/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js +38 -1
- package/_cjs/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js.map +1 -1
- package/_cjs/accounts/kernel/createKernelAccount.js +26 -1
- package/_cjs/accounts/kernel/createKernelAccount.js.map +1 -1
- package/_cjs/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.js +18 -0
- package/_cjs/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.js.map +1 -0
- package/_cjs/accounts/utils/toKernelPluginManager.js +1 -0
- package/_cjs/accounts/utils/toKernelPluginManager.js.map +1 -1
- package/_cjs/actions/public/index.js +3 -1
- package/_cjs/actions/public/index.js.map +1 -1
- package/_cjs/actions/public/isPluginInstalled.js +23 -0
- package/_cjs/actions/public/isPluginInstalled.js.map +1 -0
- package/_cjs/constants.js +9 -1
- package/_cjs/constants.js.map +1 -1
- package/_cjs/types/index.js.map +1 -1
- package/_cjs/types/kernel.js.map +1 -1
- package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js +37 -0
- package/_esm/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js.map +1 -1
- package/_esm/accounts/kernel/createKernelAccount.js +33 -2
- package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
- package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.js +14 -0
- package/_esm/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.js.map +1 -0
- package/_esm/accounts/utils/toKernelPluginManager.js +1 -0
- package/_esm/accounts/utils/toKernelPluginManager.js.map +1 -1
- package/_esm/actions/public/index.js +1 -0
- package/_esm/actions/public/index.js.map +1 -1
- package/_esm/actions/public/isPluginInstalled.js +44 -0
- package/_esm/actions/public/isPluginInstalled.js.map +1 -0
- package/_esm/constants.js +8 -0
- package/_esm/constants.js.map +1 -1
- package/_esm/types/index.js.map +1 -1
- package/_esm/types/kernel.js.map +1 -1
- package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.d.ts +41 -0
- package/_types/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.d.ts.map +1 -1
- package/_types/accounts/kernel/createKernelAccount.d.ts +3 -2
- package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
- package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.d.ts +5 -0
- package/_types/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.d.ts.map +1 -0
- package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
- package/_types/actions/public/index.d.ts +1 -0
- package/_types/actions/public/index.d.ts.map +1 -1
- package/_types/actions/public/isPluginInstalled.d.ts +37 -0
- package/_types/actions/public/isPluginInstalled.d.ts.map +1 -0
- package/_types/constants.d.ts +8 -0
- package/_types/constants.d.ts.map +1 -1
- package/_types/types/index.d.ts +1 -1
- package/_types/types/index.d.ts.map +1 -1
- package/_types/types/kernel.d.ts +8 -1
- package/_types/types/kernel.d.ts.map +1 -1
- package/accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.ts +39 -0
- package/accounts/kernel/createKernelAccount.ts +64 -3
- package/accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.ts +19 -0
- package/accounts/utils/toKernelPluginManager.ts +1 -0
- package/actions/public/index.ts +1 -0
- package/actions/public/isPluginInstalled.ts +62 -0
- package/constants.ts +9 -0
- package/package.json +1 -1
- package/types/index.ts +2 -1
- package/types/kernel.ts +10 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { readContract } from "viem/actions";
|
|
2
|
+
import { getAction } from "viem/utils";
|
|
3
|
+
import { KernelModuleIsModuleInstalledAbi } from "../../accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js";
|
|
4
|
+
/**
|
|
5
|
+
* Returns whether a plugin is installed on the account.
|
|
6
|
+
*
|
|
7
|
+
* @param client - Client to use
|
|
8
|
+
* @param args - {@link IsPluginInstalledParams} address and plugin details
|
|
9
|
+
* @returns boolean indicating if plugin is installed
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { createPublicClient } from "viem"
|
|
13
|
+
* import { isPluginInstalled } from "@zerodev/sdk"
|
|
14
|
+
*
|
|
15
|
+
* const client = createPublicClient({
|
|
16
|
+
* chain: mainnet,
|
|
17
|
+
* transport: http()
|
|
18
|
+
* })
|
|
19
|
+
*
|
|
20
|
+
* const isInstalled = await isPluginInstalled(client, {
|
|
21
|
+
* address: accountAddress,
|
|
22
|
+
* plugin: {
|
|
23
|
+
* type: PLUGIN_TYPE.VALIDATOR,
|
|
24
|
+
* address: validatorAddress,
|
|
25
|
+
* data: "0x"
|
|
26
|
+
* }
|
|
27
|
+
* })
|
|
28
|
+
*/
|
|
29
|
+
export const isPluginInstalled = async (client, args) => {
|
|
30
|
+
const { address, plugin } = args;
|
|
31
|
+
const { type, address: pluginAddress, data = "0x" } = plugin;
|
|
32
|
+
try {
|
|
33
|
+
return await getAction(client, readContract, "readContract")({
|
|
34
|
+
address,
|
|
35
|
+
abi: KernelModuleIsModuleInstalledAbi,
|
|
36
|
+
functionName: "isModuleInstalled",
|
|
37
|
+
args: [BigInt(type), pluginAddress, data]
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=isPluginInstalled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPluginInstalled.js","sourceRoot":"","sources":["../../../actions/public/isPluginInstalled.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,gCAAgC,EAAE,MAAM,6DAA6D,CAAA;AAY9G;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAClC,MAAc,EACd,IAA6B,EACb,EAAE;IAClB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAChC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAE5D,IAAI,CAAC;QACD,OAAO,MAAM,SAAS,CAClB,MAAM,EACN,YAAY,EACZ,cAAc,CACjB,CAAC;YACE,OAAO;YACP,GAAG,EAAE,gCAAgC;YACrC,YAAY,EAAE,mBAAmB;YACjC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC;SAC5C,CAAC,CAAA;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC,CAAA"}
|
package/_esm/constants.js
CHANGED
|
@@ -82,6 +82,14 @@ export var EXEC_TYPE;
|
|
|
82
82
|
EXEC_TYPE["DEFAULT"] = "0x00";
|
|
83
83
|
EXEC_TYPE["TRY_EXEC"] = "0x01";
|
|
84
84
|
})(EXEC_TYPE || (EXEC_TYPE = {}));
|
|
85
|
+
export const PLUGIN_TYPE = {
|
|
86
|
+
VALIDATOR: 1,
|
|
87
|
+
EXECUTOR: 2,
|
|
88
|
+
FALLBACK: 3,
|
|
89
|
+
HOOK: 4,
|
|
90
|
+
POLICY: 5,
|
|
91
|
+
SIGNER: 6
|
|
92
|
+
};
|
|
85
93
|
// Safe's library for create and create2: https://github.com/safe-global/safe-contracts/blob/0acdd35a203299585438f53885df630f9d486a86/contracts/libraries/CreateCall.sol
|
|
86
94
|
// Address was found here: https://github.com/safe-global/safe-deployments/blob/926ec6bbe2ebcac3aa2c2c6c0aff74aa590cbc6a/src/assets/v1.4.1/create_call.json
|
|
87
95
|
export const safeCreateCallAddress = "0x9b35Af71d77eaf8d7e40252370304687390A1A52";
|
package/_esm/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"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"}
|
package/_esm/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
|
package/_esm/types/kernel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AA4NA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
|
|
@@ -13,4 +13,45 @@ export declare const KernelModuleIsInitializedAbi: readonly [{
|
|
|
13
13
|
}];
|
|
14
14
|
readonly stateMutability: "view";
|
|
15
15
|
}];
|
|
16
|
+
export declare const KernelModuleInstallAbi: readonly [{
|
|
17
|
+
readonly inputs: readonly [{
|
|
18
|
+
readonly internalType: "uint256";
|
|
19
|
+
readonly name: "moduleType";
|
|
20
|
+
readonly type: "uint256";
|
|
21
|
+
}, {
|
|
22
|
+
readonly internalType: "address";
|
|
23
|
+
readonly name: "module";
|
|
24
|
+
readonly type: "address";
|
|
25
|
+
}, {
|
|
26
|
+
readonly internalType: "bytes";
|
|
27
|
+
readonly name: "initData";
|
|
28
|
+
readonly type: "bytes";
|
|
29
|
+
}];
|
|
30
|
+
readonly stateMutability: "payable";
|
|
31
|
+
readonly type: "function";
|
|
32
|
+
readonly name: "installModule";
|
|
33
|
+
}];
|
|
34
|
+
export declare const KernelModuleIsModuleInstalledAbi: readonly [{
|
|
35
|
+
readonly inputs: readonly [{
|
|
36
|
+
readonly internalType: "uint256";
|
|
37
|
+
readonly name: "moduleType";
|
|
38
|
+
readonly type: "uint256";
|
|
39
|
+
}, {
|
|
40
|
+
readonly internalType: "address";
|
|
41
|
+
readonly name: "module";
|
|
42
|
+
readonly type: "address";
|
|
43
|
+
}, {
|
|
44
|
+
readonly internalType: "bytes";
|
|
45
|
+
readonly name: "additionalContext";
|
|
46
|
+
readonly type: "bytes";
|
|
47
|
+
}];
|
|
48
|
+
readonly stateMutability: "view";
|
|
49
|
+
readonly type: "function";
|
|
50
|
+
readonly name: "isModuleInstalled";
|
|
51
|
+
readonly outputs: readonly [{
|
|
52
|
+
readonly internalType: "bool";
|
|
53
|
+
readonly name: "";
|
|
54
|
+
readonly type: "bool";
|
|
55
|
+
}];
|
|
56
|
+
}];
|
|
16
57
|
//# sourceMappingURL=KernelModuleAbi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KernelModuleAbi.d.ts","sourceRoot":"","sources":["../../../../../accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;EAU/B,CAAA"}
|
|
1
|
+
{"version":3,"file":"KernelModuleAbi.d.ts","sourceRoot":"","sources":["../../../../../accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;EAU/B,CAAA;AAEV,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;EAezB,CAAA;AAEV,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;EAoBnC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Address, type Assign, type Client, type EncodeDeployDataParameters, type Hex, type SignableMessage } from "viem";
|
|
2
2
|
import { type EntryPointVersion, type SmartAccount, type SmartAccountImplementation } from "viem/account-abstraction";
|
|
3
|
-
import type { CallType, EntryPointType, GetEntryPointAbi, GetKernelVersion, KernelPluginManager, KernelPluginManagerParams } from "../../types/kernel.js";
|
|
3
|
+
import type { CallType, EntryPointType, GetEntryPointAbi, GetKernelVersion, KernelPluginManager, KernelPluginManagerParams, PluginMigrationData } from "../../types/kernel.js";
|
|
4
4
|
type SignMessageParameters = {
|
|
5
5
|
message: SignableMessage;
|
|
6
6
|
useReplayableSignature?: boolean;
|
|
@@ -28,6 +28,7 @@ export type CreateKernelAccountParameters<entryPointVersion extends EntryPointVe
|
|
|
28
28
|
kernelVersion: GetKernelVersion<entryPointVersion>;
|
|
29
29
|
initConfig?: KernelVerion extends "0.3.1" ? Hex[] : never;
|
|
30
30
|
useMetaFactory?: boolean;
|
|
31
|
+
pluginMigrations?: PluginMigrationData[];
|
|
31
32
|
};
|
|
32
33
|
/**
|
|
33
34
|
* Default addresses for kernel smart account
|
|
@@ -50,6 +51,6 @@ export declare const KERNEL_ADDRESSES: {
|
|
|
50
51
|
* @param ecdsaValidatorAddress
|
|
51
52
|
* @param address
|
|
52
53
|
*/
|
|
53
|
-
export declare function createKernelAccount<entryPointVersion extends EntryPointVersion, KernelVersion extends GetKernelVersion<entryPointVersion>>(client: Client, { plugins, entryPoint, index, factoryAddress: _factoryAddress, accountImplementationAddress: _accountImplementationAddress, metaFactoryAddress: _metaFactoryAddress, address, kernelVersion, initConfig, useMetaFactory }: CreateKernelAccountParameters<entryPointVersion, KernelVersion>): Promise<CreateKernelAccountReturnType<entryPointVersion>>;
|
|
54
|
+
export declare function createKernelAccount<entryPointVersion extends EntryPointVersion, KernelVersion extends GetKernelVersion<entryPointVersion>>(client: Client, { plugins, entryPoint, index, factoryAddress: _factoryAddress, accountImplementationAddress: _accountImplementationAddress, metaFactoryAddress: _metaFactoryAddress, address, kernelVersion, initConfig, useMetaFactory, pluginMigrations }: CreateKernelAccountParameters<entryPointVersion, KernelVersion>): Promise<CreateKernelAccountReturnType<entryPointVersion>>;
|
|
54
55
|
export {};
|
|
55
56
|
//# sourceMappingURL=createKernelAccount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createKernelAccount.d.ts","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,0BAA0B,EAC/B,KAAK,GAAG,EACR,KAAK,eAAe,EAWvB,MAAM,MAAM,CAAA;AACb,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAMlC,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"createKernelAccount.d.ts","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type Address } from "viem";
|
|
2
|
+
import type { PluginMigrationData } from "../../../../../types/kernel.js";
|
|
3
|
+
import type { CallArgs } from "../../types.js";
|
|
4
|
+
export declare const getPluginInstallCallData: (accountAddress: Address, plugin: PluginMigrationData) => CallArgs;
|
|
5
|
+
//# sourceMappingURL=getPluginInstallCallData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPluginInstallCallData.d.ts","sourceRoot":"","sources":["../../../../../../accounts/kernel/utils/plugins/ep0_7/getPluginInstallCallData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,MAAM,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,eAAO,MAAM,wBAAwB,mBACjB,OAAO,UACf,mBAAmB,KAC5B,QAUF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toKernelPluginManager.d.ts","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,MAAM,EASd,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAQjE,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAEjC,MAAM,uBAAuB,CAAA;AAU9B,wBAAgB,qBAAqB,CACjC,iBAAiB,SAAS,iBAAiB,EAG3C,MAAM,EAAE,GAAG,GACZ,MAAM,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAElD;AAED,wBAAsB,qBAAqB,CACvC,iBAAiB,SAAS,iBAAiB,EAE3C,MAAM,EAAE,MAAM,EACd,EACI,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,EACN,UAAc,EACd,UAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACV,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,GAChD,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"toKernelPluginManager.d.ts","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,MAAM,EASd,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAQjE,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAEjC,MAAM,uBAAuB,CAAA;AAU9B,wBAAgB,qBAAqB,CACjC,iBAAiB,SAAS,iBAAiB,EAG3C,MAAM,EAAE,GAAG,GACZ,MAAM,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAElD;AAED,wBAAsB,qBAAqB,CACvC,iBAAiB,SAAS,iBAAiB,EAE3C,MAAM,EAAE,MAAM,EACd,EACI,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,EACN,UAAc,EACd,UAAc,EACd,UAAU,EACV,aAAa,EACb,OAAO,EACV,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,GAChD,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CA6VjD"}
|
|
@@ -2,4 +2,5 @@ export { type GetAccountNonceParams, getAccountNonce } from "./getAccountNonce.j
|
|
|
2
2
|
export { type GetSenderAddressParams, type InvalidEntryPointError, getSenderAddress } from "./getSenderAddress.js";
|
|
3
3
|
export { isSmartAccountDeployed } from "./isSmartAccountDeployed.js";
|
|
4
4
|
export { getKernelImplementationAddress } from "./getKernelImplementationAddress.js";
|
|
5
|
+
export { isPluginInstalled } from "./isPluginInstalled.js";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAC1B,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,gBAAgB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAC1B,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,gBAAgB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Address, Client, Hex } from "viem";
|
|
2
|
+
import type { PLUGIN_TYPE } from "../../constants.js";
|
|
3
|
+
export type IsPluginInstalledParams = {
|
|
4
|
+
address: Address;
|
|
5
|
+
plugin: {
|
|
6
|
+
type: (typeof PLUGIN_TYPE)[keyof typeof PLUGIN_TYPE];
|
|
7
|
+
address: Address;
|
|
8
|
+
data?: Hex;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Returns whether a plugin is installed on the account.
|
|
13
|
+
*
|
|
14
|
+
* @param client - Client to use
|
|
15
|
+
* @param args - {@link IsPluginInstalledParams} address and plugin details
|
|
16
|
+
* @returns boolean indicating if plugin is installed
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* import { createPublicClient } from "viem"
|
|
20
|
+
* import { isPluginInstalled } from "@zerodev/sdk"
|
|
21
|
+
*
|
|
22
|
+
* const client = createPublicClient({
|
|
23
|
+
* chain: mainnet,
|
|
24
|
+
* transport: http()
|
|
25
|
+
* })
|
|
26
|
+
*
|
|
27
|
+
* const isInstalled = await isPluginInstalled(client, {
|
|
28
|
+
* address: accountAddress,
|
|
29
|
+
* plugin: {
|
|
30
|
+
* type: PLUGIN_TYPE.VALIDATOR,
|
|
31
|
+
* address: validatorAddress,
|
|
32
|
+
* data: "0x"
|
|
33
|
+
* }
|
|
34
|
+
* })
|
|
35
|
+
*/
|
|
36
|
+
export declare const isPluginInstalled: (client: Client, args: IsPluginInstalledParams) => Promise<boolean>;
|
|
37
|
+
//# sourceMappingURL=isPluginInstalled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPluginInstalled.d.ts","sourceRoot":"","sources":["../../../actions/public/isPluginInstalled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,MAAM,uBAAuB,GAAG;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE;QACJ,IAAI,EAAE,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAA;QACpD,OAAO,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,GAAG,CAAA;KACb,CAAA;CACJ,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,iBAAiB,WAClB,MAAM,QACR,uBAAuB,KAC9B,QAAQ,OAAO,CAkBjB,CAAA"}
|
package/_types/constants.d.ts
CHANGED
|
@@ -41,6 +41,14 @@ export declare enum EXEC_TYPE {
|
|
|
41
41
|
DEFAULT = "0x00",
|
|
42
42
|
TRY_EXEC = "0x01"
|
|
43
43
|
}
|
|
44
|
+
export declare const PLUGIN_TYPE: {
|
|
45
|
+
VALIDATOR: number;
|
|
46
|
+
EXECUTOR: number;
|
|
47
|
+
FALLBACK: number;
|
|
48
|
+
HOOK: number;
|
|
49
|
+
POLICY: number;
|
|
50
|
+
SIGNER: number;
|
|
51
|
+
};
|
|
44
52
|
export declare const safeCreateCallAddress = "0x9b35Af71d77eaf8d7e40252370304687390A1A52";
|
|
45
53
|
export declare const KernelFactoryToInitCodeHashMap: {
|
|
46
54
|
[key: Address]: Hex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAA;AAC1D,OAAO,EACH,KAAK,iBAAiB,EAGzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EACR,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,mBAAmB,CAAA;AAE1B,eAAO,MAAM,eAAe,yIAC8G,CAAA;AAE1I,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAWxE,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,mCAAmC,uEACwB,CAAA;AAExE,eAAO,MAAM,2BAA2B,EAAE;KACrC,GAAG,IAAI,mBAAmB,GAAG;QAC1B,4BAA4B,EAAE,OAAO,CAAA;QACrC,cAAc,EAAE,OAAO,CAAA;QACvB,kBAAkB,CAAC,EAAE,GAAG,SAAS,sBAAsB,GACjD,OAAO,GACP,KAAK,CAAA;QACX,YAAY,CAAC,EAAE,GAAG,CAAA;KACrB;CAgDJ,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAE1D,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,4BAA4B,+CACO,CAAA;AAChD,eAAO,MAAM,WAAW,WAAW,CAAA;AAEnC,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AACV,oBAAY,cAAc;IACtB,OAAO,SAAS;IAChB,MAAM,SAAS;CAClB;AACD,oBAAY,SAAS;IACjB,MAAM,SAAS;IACf,KAAK,SAAS;IACd,aAAa,SAAS;CACzB;AACD,oBAAY,SAAS;IACjB,OAAO,SAAS;IAChB,QAAQ,SAAS;CACpB;AAID,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAA;CAKjE,CAAA;AAED,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAExE,eAAO,MAAM,aAAa,6HAYzB,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAA;AAC1D,OAAO,EACH,KAAK,iBAAiB,EAGzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EACR,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,mBAAmB,CAAA;AAE1B,eAAO,MAAM,eAAe,yIAC8G,CAAA;AAE1I,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAWxE,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,mCAAmC,uEACwB,CAAA;AAExE,eAAO,MAAM,2BAA2B,EAAE;KACrC,GAAG,IAAI,mBAAmB,GAAG;QAC1B,4BAA4B,EAAE,OAAO,CAAA;QACrC,cAAc,EAAE,OAAO,CAAA;QACvB,kBAAkB,CAAC,EAAE,GAAG,SAAS,sBAAsB,GACjD,OAAO,GACP,KAAK,CAAA;QACX,YAAY,CAAC,EAAE,GAAG,CAAA;KACrB;CAgDJ,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAE1D,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,4BAA4B,+CACO,CAAA;AAChD,eAAO,MAAM,WAAW,WAAW,CAAA;AAEnC,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AACV,oBAAY,cAAc;IACtB,OAAO,SAAS;IAChB,MAAM,SAAS;CAClB;AACD,oBAAY,SAAS;IACjB,MAAM,SAAS;IACf,KAAK,SAAS;IACd,aAAa,SAAS;CACzB;AACD,oBAAY,SAAS;IACjB,OAAO,SAAS;IAChB,QAAQ,SAAS;CACpB;AAED,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAA;AAID,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAA;CAKjE,CAAA;AAED,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAExE,eAAO,MAAM,aAAa,6HAYzB,CAAA"}
|
package/_types/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { KernelValidator, ZeroDevPaymasterRpcSchema, Action, KernelPluginManager, ValidatorInitData, CallType, KernelEncodeCallDataArgs, PluginValidityData, ZeroDevAccountClientRpcSchema, ZeroDevUserOperationGasPriceWithBigIntAsHex, KERNEL_V2_VERSION_TYPE, KERNEL_V3_VERSION_TYPE, KERNEL_VERSION_TYPE, GetKernelVersion, GetEntryPointAbi, EntryPointType } from "./kernel.js";
|
|
1
|
+
export type { KernelValidator, ZeroDevPaymasterRpcSchema, Action, KernelPluginManager, ValidatorInitData, CallType, KernelEncodeCallDataArgs, PluginValidityData, ZeroDevAccountClientRpcSchema, ZeroDevUserOperationGasPriceWithBigIntAsHex, KERNEL_V2_VERSION_TYPE, KERNEL_V3_VERSION_TYPE, KERNEL_VERSION_TYPE, GetKernelVersion, GetEntryPointAbi, EntryPointType, PluginMigrationData } from "./kernel.js";
|
|
2
2
|
export { ValidatorMode } from "./kernel.js";
|
|
3
3
|
export type { Signer } from "./utils.js";
|
|
4
4
|
export type WithRequired<T, K extends keyof T> = Required<Pick<T, K>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,eAAe,EACf,yBAAyB,EACzB,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EAClB,6BAA6B,EAC7B,2CAA2C,EAC3C,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,eAAe,EACf,yBAAyB,EACzB,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EAClB,6BAA6B,EAC7B,2CAA2C,EAC3C,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACtB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAErE,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA"}
|
package/_types/types/kernel.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Address, CustomSource, Hex, LocalAccount, PartialBy } from "viem";
|
|
2
2
|
import type { EntryPointVersion, UserOperation, entryPoint06Abi, entryPoint07Abi } from "viem/account-abstraction";
|
|
3
|
-
import type { VALIDATOR_TYPE } from "../constants.js";
|
|
3
|
+
import type { PLUGIN_TYPE, VALIDATOR_TYPE } from "../constants.js";
|
|
4
4
|
export type ZeroDevPaymasterRpcSchema<entryPointVersion extends EntryPointVersion> = [
|
|
5
5
|
{
|
|
6
6
|
Method: "zd_sponsorUserOperation";
|
|
@@ -111,9 +111,11 @@ export type ValidatorInitData = {
|
|
|
111
111
|
identifier: Hex;
|
|
112
112
|
initConfig?: Hex[];
|
|
113
113
|
};
|
|
114
|
+
export type ActiveValidatorMode = "sudo" | "regular";
|
|
114
115
|
export type KernelPluginManager<entryPointVersion extends EntryPointVersion> = KernelValidator & {
|
|
115
116
|
sudoValidator?: KernelValidator;
|
|
116
117
|
regularValidator?: KernelValidator;
|
|
118
|
+
activeValidatorMode: ActiveValidatorMode;
|
|
117
119
|
hook?: KernelValidatorHook;
|
|
118
120
|
getPluginEnableSignature(accountAddress: Address): Promise<Hex>;
|
|
119
121
|
getValidatorInitData(): Promise<ValidatorInitData>;
|
|
@@ -160,6 +162,11 @@ export declare enum ValidatorMode {
|
|
|
160
162
|
plugin = "0x00000001",
|
|
161
163
|
enable = "0x00000002"
|
|
162
164
|
}
|
|
165
|
+
export type PluginMigrationData = {
|
|
166
|
+
type: (typeof PLUGIN_TYPE)[keyof typeof PLUGIN_TYPE];
|
|
167
|
+
address: Address;
|
|
168
|
+
data: Hex;
|
|
169
|
+
};
|
|
163
170
|
export type CallType = "call" | "delegatecall";
|
|
164
171
|
export type KernelEncodeCallDataArgs = {
|
|
165
172
|
to: Address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC/E,OAAO,KAAK,EACR,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,eAAe,EAClB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,3 +9,42 @@ export const KernelModuleIsInitializedAbi = [
|
|
|
9
9
|
stateMutability: "view"
|
|
10
10
|
}
|
|
11
11
|
] as const
|
|
12
|
+
|
|
13
|
+
export const KernelModuleInstallAbi = [
|
|
14
|
+
{
|
|
15
|
+
inputs: [
|
|
16
|
+
{
|
|
17
|
+
internalType: "uint256",
|
|
18
|
+
name: "moduleType",
|
|
19
|
+
type: "uint256"
|
|
20
|
+
},
|
|
21
|
+
{ internalType: "address", name: "module", type: "address" },
|
|
22
|
+
{ internalType: "bytes", name: "initData", type: "bytes" }
|
|
23
|
+
],
|
|
24
|
+
stateMutability: "payable",
|
|
25
|
+
type: "function",
|
|
26
|
+
name: "installModule"
|
|
27
|
+
}
|
|
28
|
+
] as const
|
|
29
|
+
|
|
30
|
+
export const KernelModuleIsModuleInstalledAbi = [
|
|
31
|
+
{
|
|
32
|
+
inputs: [
|
|
33
|
+
{
|
|
34
|
+
internalType: "uint256",
|
|
35
|
+
name: "moduleType",
|
|
36
|
+
type: "uint256"
|
|
37
|
+
},
|
|
38
|
+
{ internalType: "address", name: "module", type: "address" },
|
|
39
|
+
{
|
|
40
|
+
internalType: "bytes",
|
|
41
|
+
name: "additionalContext",
|
|
42
|
+
type: "bytes"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
stateMutability: "view",
|
|
46
|
+
type: "function",
|
|
47
|
+
name: "isModuleInstalled",
|
|
48
|
+
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
49
|
+
}
|
|
50
|
+
] as const
|
|
@@ -30,7 +30,8 @@ import { getChainId } from "viem/actions"
|
|
|
30
30
|
import { getAction } from "viem/utils"
|
|
31
31
|
import {
|
|
32
32
|
getAccountNonce,
|
|
33
|
-
getSenderAddress
|
|
33
|
+
getSenderAddress,
|
|
34
|
+
isPluginInstalled
|
|
34
35
|
} from "../../actions/public/index.js"
|
|
35
36
|
import {
|
|
36
37
|
KernelVersionToAddressesMap,
|
|
@@ -42,7 +43,8 @@ import type {
|
|
|
42
43
|
GetEntryPointAbi,
|
|
43
44
|
GetKernelVersion,
|
|
44
45
|
KernelPluginManager,
|
|
45
|
-
KernelPluginManagerParams
|
|
46
|
+
KernelPluginManagerParams,
|
|
47
|
+
PluginMigrationData
|
|
46
48
|
} from "../../types/kernel.js"
|
|
47
49
|
import { KERNEL_FEATURES, hasKernelFeature } from "../../utils.js"
|
|
48
50
|
import { validateKernelVersionWithEntryPoint } from "../../utils.js"
|
|
@@ -61,6 +63,7 @@ import { encodeCallData as encodeCallDataEpV07 } from "./utils/account/ep0_7/enc
|
|
|
61
63
|
import { encodeDeployCallData as encodeDeployCallDataV07 } from "./utils/account/ep0_7/encodeDeployCallData.js"
|
|
62
64
|
import { accountMetadata } from "./utils/common/accountMetadata.js"
|
|
63
65
|
import { eip712WrapHash } from "./utils/common/eip712WrapHash.js"
|
|
66
|
+
import { getPluginInstallCallData } from "./utils/plugins/ep0_7/getPluginInstallCallData.js"
|
|
64
67
|
|
|
65
68
|
type SignMessageParameters = {
|
|
66
69
|
message: SignableMessage
|
|
@@ -117,6 +120,7 @@ export type CreateKernelAccountParameters<
|
|
|
117
120
|
kernelVersion: GetKernelVersion<entryPointVersion>
|
|
118
121
|
initConfig?: KernelVerion extends "0.3.1" ? Hex[] : never
|
|
119
122
|
useMetaFactory?: boolean
|
|
123
|
+
pluginMigrations?: PluginMigrationData[]
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
/**
|
|
@@ -329,6 +333,11 @@ const getDefaultAddresses = <entryPointVersion extends EntryPointVersion>(
|
|
|
329
333
|
}
|
|
330
334
|
}
|
|
331
335
|
|
|
336
|
+
type PluginInstallationCache = {
|
|
337
|
+
pendingPlugins: PluginMigrationData[]
|
|
338
|
+
allInstalled: boolean
|
|
339
|
+
}
|
|
340
|
+
|
|
332
341
|
/**
|
|
333
342
|
* Build a kernel smart account from a private key, that use the ECDSA signer behind the scene
|
|
334
343
|
* @param client
|
|
@@ -355,7 +364,8 @@ export async function createKernelAccount<
|
|
|
355
364
|
address,
|
|
356
365
|
kernelVersion,
|
|
357
366
|
initConfig,
|
|
358
|
-
useMetaFactory = true
|
|
367
|
+
useMetaFactory = true,
|
|
368
|
+
pluginMigrations
|
|
359
369
|
}: CreateKernelAccountParameters<entryPointVersion, KernelVersion>
|
|
360
370
|
): Promise<CreateKernelAccountReturnType<entryPointVersion>> {
|
|
361
371
|
const { accountImplementationAddress, factoryAddress, metaFactoryAddress } =
|
|
@@ -449,6 +459,38 @@ export async function createKernelAccount<
|
|
|
449
459
|
version: entryPoint?.version ?? "0.7"
|
|
450
460
|
} as const
|
|
451
461
|
|
|
462
|
+
// Cache for plugin installation status
|
|
463
|
+
const pluginCache: PluginInstallationCache = {
|
|
464
|
+
pendingPlugins: pluginMigrations || [],
|
|
465
|
+
allInstalled: false
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
const checkPluginInstallationStatus = async () => {
|
|
469
|
+
// Skip if no plugins or all are installed
|
|
470
|
+
if (!pluginCache.pendingPlugins.length || pluginCache.allInstalled) {
|
|
471
|
+
pluginCache.allInstalled = true
|
|
472
|
+
return
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
// Check all pending plugins in parallel
|
|
476
|
+
const installationResults = await Promise.all(
|
|
477
|
+
pluginCache.pendingPlugins.map((plugin) =>
|
|
478
|
+
isPluginInstalled(client, {
|
|
479
|
+
address: accountAddress,
|
|
480
|
+
plugin
|
|
481
|
+
})
|
|
482
|
+
)
|
|
483
|
+
)
|
|
484
|
+
|
|
485
|
+
// Filter out installed plugins
|
|
486
|
+
pluginCache.pendingPlugins = pluginCache.pendingPlugins.filter(
|
|
487
|
+
(_, index) => !installationResults[index]
|
|
488
|
+
)
|
|
489
|
+
pluginCache.allInstalled = pluginCache.pendingPlugins.length === 0
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
await checkPluginInstallationStatus()
|
|
493
|
+
|
|
452
494
|
return toSmartAccount<KernelSmartAccountImplementation<entryPointVersion>>({
|
|
453
495
|
kernelVersion,
|
|
454
496
|
kernelPluginManager,
|
|
@@ -487,6 +529,25 @@ export async function createKernelAccount<
|
|
|
487
529
|
return encodeDeployCallDataV07(_tx)
|
|
488
530
|
},
|
|
489
531
|
async encodeCalls(calls, callType) {
|
|
532
|
+
// Check plugin status only if we have pending plugins
|
|
533
|
+
await checkPluginInstallationStatus()
|
|
534
|
+
|
|
535
|
+
// Add plugin installation calls if needed
|
|
536
|
+
if (
|
|
537
|
+
pluginCache.pendingPlugins.length > 0 &&
|
|
538
|
+
entryPoint.version === "0.7" &&
|
|
539
|
+
kernelPluginManager.activeValidatorMode === "sudo"
|
|
540
|
+
) {
|
|
541
|
+
const pluginInstallCalls = pluginCache.pendingPlugins.map(
|
|
542
|
+
(plugin) => getPluginInstallCallData(accountAddress, plugin)
|
|
543
|
+
)
|
|
544
|
+
return encodeCallDataEpV07(
|
|
545
|
+
[...calls, ...pluginInstallCalls],
|
|
546
|
+
callType,
|
|
547
|
+
plugins.hook ? true : undefined
|
|
548
|
+
)
|
|
549
|
+
}
|
|
550
|
+
|
|
490
551
|
if (
|
|
491
552
|
calls.length === 1 &&
|
|
492
553
|
(!callType || callType === "call") &&
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Address, encodeFunctionData } from "viem"
|
|
2
|
+
import type { PluginMigrationData } from "../../../../../types/kernel.js"
|
|
3
|
+
import { KernelModuleInstallAbi } from "../../../abi/kernel_v_3_0_0/KernelModuleAbi.js"
|
|
4
|
+
import type { CallArgs } from "../../types.js"
|
|
5
|
+
|
|
6
|
+
export const getPluginInstallCallData = (
|
|
7
|
+
accountAddress: Address,
|
|
8
|
+
plugin: PluginMigrationData
|
|
9
|
+
): CallArgs => {
|
|
10
|
+
const data = encodeFunctionData({
|
|
11
|
+
abi: KernelModuleInstallAbi,
|
|
12
|
+
functionName: "installModule",
|
|
13
|
+
args: [plugin.type, plugin.address, plugin.data]
|
|
14
|
+
})
|
|
15
|
+
return {
|
|
16
|
+
to: accountAddress,
|
|
17
|
+
data
|
|
18
|
+
}
|
|
19
|
+
}
|
package/actions/public/index.ts
CHANGED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { Address, Client, Hex } from "viem"
|
|
2
|
+
import { readContract } from "viem/actions"
|
|
3
|
+
import { getAction } from "viem/utils"
|
|
4
|
+
import { KernelModuleIsModuleInstalledAbi } from "../../accounts/kernel/abi/kernel_v_3_0_0/KernelModuleAbi.js"
|
|
5
|
+
import type { PLUGIN_TYPE } from "../../constants.js"
|
|
6
|
+
|
|
7
|
+
export type IsPluginInstalledParams = {
|
|
8
|
+
address: Address
|
|
9
|
+
plugin: {
|
|
10
|
+
type: (typeof PLUGIN_TYPE)[keyof typeof PLUGIN_TYPE]
|
|
11
|
+
address: Address
|
|
12
|
+
data?: Hex
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Returns whether a plugin is installed on the account.
|
|
18
|
+
*
|
|
19
|
+
* @param client - Client to use
|
|
20
|
+
* @param args - {@link IsPluginInstalledParams} address and plugin details
|
|
21
|
+
* @returns boolean indicating if plugin is installed
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* import { createPublicClient } from "viem"
|
|
25
|
+
* import { isPluginInstalled } from "@zerodev/sdk"
|
|
26
|
+
*
|
|
27
|
+
* const client = createPublicClient({
|
|
28
|
+
* chain: mainnet,
|
|
29
|
+
* transport: http()
|
|
30
|
+
* })
|
|
31
|
+
*
|
|
32
|
+
* const isInstalled = await isPluginInstalled(client, {
|
|
33
|
+
* address: accountAddress,
|
|
34
|
+
* plugin: {
|
|
35
|
+
* type: PLUGIN_TYPE.VALIDATOR,
|
|
36
|
+
* address: validatorAddress,
|
|
37
|
+
* data: "0x"
|
|
38
|
+
* }
|
|
39
|
+
* })
|
|
40
|
+
*/
|
|
41
|
+
export const isPluginInstalled = async (
|
|
42
|
+
client: Client,
|
|
43
|
+
args: IsPluginInstalledParams
|
|
44
|
+
): Promise<boolean> => {
|
|
45
|
+
const { address, plugin } = args
|
|
46
|
+
const { type, address: pluginAddress, data = "0x" } = plugin
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
return await getAction(
|
|
50
|
+
client,
|
|
51
|
+
readContract,
|
|
52
|
+
"readContract"
|
|
53
|
+
)({
|
|
54
|
+
address,
|
|
55
|
+
abi: KernelModuleIsModuleInstalledAbi,
|
|
56
|
+
functionName: "isModuleInstalled",
|
|
57
|
+
args: [BigInt(type), pluginAddress, data]
|
|
58
|
+
})
|
|
59
|
+
} catch (error) {
|
|
60
|
+
return false
|
|
61
|
+
}
|
|
62
|
+
}
|
package/constants.ts
CHANGED
|
@@ -120,6 +120,15 @@ export enum EXEC_TYPE {
|
|
|
120
120
|
TRY_EXEC = "0x01"
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
+
export const PLUGIN_TYPE = {
|
|
124
|
+
VALIDATOR: 1,
|
|
125
|
+
EXECUTOR: 2,
|
|
126
|
+
FALLBACK: 3,
|
|
127
|
+
HOOK: 4,
|
|
128
|
+
POLICY: 5,
|
|
129
|
+
SIGNER: 6
|
|
130
|
+
}
|
|
131
|
+
|
|
123
132
|
// Safe's library for create and create2: https://github.com/safe-global/safe-contracts/blob/0acdd35a203299585438f53885df630f9d486a86/contracts/libraries/CreateCall.sol
|
|
124
133
|
// Address was found here: https://github.com/safe-global/safe-deployments/blob/926ec6bbe2ebcac3aa2c2c6c0aff74aa590cbc6a/src/assets/v1.4.1/create_call.json
|
|
125
134
|
export const safeCreateCallAddress =
|