@zerodev/sdk 5.0.8 → 5.1.0-beta.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/_cjs/accounts/kernel/createKernelAccount.js +3 -8
- package/_cjs/accounts/kernel/createKernelAccount.js.map +1 -1
- package/_cjs/accounts/utils/toKernelPluginManager.js +44 -31
- package/_cjs/accounts/utils/toKernelPluginManager.js.map +1 -1
- package/_cjs/types/kernel.js.map +1 -1
- package/_esm/accounts/kernel/createKernelAccount.js +4 -9
- package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
- package/_esm/accounts/utils/toKernelPluginManager.js +44 -34
- package/_esm/accounts/utils/toKernelPluginManager.js.map +1 -1
- package/_esm/types/kernel.js.map +1 -1
- package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
- package/_types/accounts/utils/toKernelPluginManager.d.ts +1 -1
- package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
- package/_types/types/kernel.d.ts +3 -3
- package/_types/types/kernel.d.ts.map +1 -1
- package/accounts/kernel/createKernelAccount.ts +4 -7
- package/accounts/utils/toKernelPluginManager.ts +50 -36
- package/package.json +2 -2
- package/types/kernel.ts +3 -6
|
@@ -108,8 +108,8 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
|
|
|
108
108
|
const kernelPluginManager = (0, toKernelPluginManager_js_1.isKernelPluginManager)(plugins)
|
|
109
109
|
? plugins
|
|
110
110
|
: await (0, toKernelPluginManager_js_1.toKernelPluginManager)(client, {
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
sudo: plugins.sudo,
|
|
112
|
+
regular: plugins.regular,
|
|
113
113
|
executorData: plugins.executorData,
|
|
114
114
|
pluginEnableSignature: plugins.pluginEnableSignature
|
|
115
115
|
});
|
|
@@ -176,12 +176,7 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
|
|
|
176
176
|
const account = (0, accounts_2.toAccount)({
|
|
177
177
|
address: accountAddress,
|
|
178
178
|
async signMessage({ message }) {
|
|
179
|
-
|
|
180
|
-
if (typeof message === "string")
|
|
181
|
-
messageHash = (0, viem_1.keccak256)((0, viem_1.stringToHex)(message));
|
|
182
|
-
else
|
|
183
|
-
messageHash = (0, viem_1.keccak256)(message.raw);
|
|
184
|
-
return signHashedMessage(messageHash);
|
|
179
|
+
return signHashedMessage((0, viem_1.hashMessage)(message));
|
|
185
180
|
},
|
|
186
181
|
async signTransaction(_, __) {
|
|
187
182
|
throw new accounts_1.SignTransactionNotSupportedBySmartAccount();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createKernelAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":";;;AAAA,mDAAkE;AAClE,sDAGgC;AAChC,+
|
|
1
|
+
{"version":3,"file":"createKernelAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,39 +11,48 @@ function isKernelPluginManager(plugin) {
|
|
|
11
11
|
return plugin.getPluginEnableSignature !== undefined;
|
|
12
12
|
}
|
|
13
13
|
exports.isKernelPluginManager = isKernelPluginManager;
|
|
14
|
-
async function toKernelPluginManager(client, {
|
|
14
|
+
async function toKernelPluginManager(client, { sudo, regular, pluginEnableSignature, validatorInitData, executorData = {
|
|
15
15
|
executor: viem_1.zeroAddress,
|
|
16
16
|
selector: (0, viem_1.getFunctionSelector)("execute(address, uint256, bytes, uint8)")
|
|
17
17
|
}, validAfter = 0, validUntil = 0 }) {
|
|
18
18
|
const chainId = await (0, actions_1.getChainId)(client);
|
|
19
19
|
const getValidatorSignature = async (accountAddress, selector) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
if (regular) {
|
|
21
|
+
if (await regular.isEnabled(accountAddress, selector)) {
|
|
22
|
+
return kernel_js_1.ValidatorMode.plugin;
|
|
23
|
+
}
|
|
24
|
+
const enableSignature = await getPluginEnableSignature(accountAddress);
|
|
25
|
+
const enableData = await regular.getEnableData(accountAddress);
|
|
26
|
+
const enableDataLength = enableData.length / 2 - 1;
|
|
27
|
+
if (!enableSignature) {
|
|
28
|
+
throw new Error("Enable signature not set");
|
|
29
|
+
}
|
|
30
|
+
return (0, viem_1.concat)([
|
|
31
|
+
kernel_js_1.ValidatorMode.enable,
|
|
32
|
+
(0, viem_1.pad)((0, viem_1.toHex)(validUntil), { size: 6 }),
|
|
33
|
+
(0, viem_1.pad)((0, viem_1.toHex)(validAfter), { size: 6 }),
|
|
34
|
+
(0, viem_1.pad)(regular.address, { size: 20 }),
|
|
35
|
+
(0, viem_1.pad)(executorData.executor, { size: 20 }),
|
|
36
|
+
(0, viem_1.pad)((0, viem_1.toHex)(enableDataLength), { size: 32 }),
|
|
37
|
+
enableData,
|
|
38
|
+
(0, viem_1.pad)((0, viem_1.toHex)(enableSignature.length / 2 - 1), { size: 32 }),
|
|
39
|
+
enableSignature
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
else if (sudo) {
|
|
43
|
+
return kernel_js_1.ValidatorMode.sudo;
|
|
24
44
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (!enableSignature) {
|
|
28
|
-
throw new Error("Enable signature not set");
|
|
45
|
+
else {
|
|
46
|
+
throw new Error("One of `sudo` or `regular` validator must be set");
|
|
29
47
|
}
|
|
30
|
-
return (0, viem_1.concat)([
|
|
31
|
-
mode,
|
|
32
|
-
(0, viem_1.pad)((0, viem_1.toHex)(validUntil), { size: 6 }),
|
|
33
|
-
(0, viem_1.pad)((0, viem_1.toHex)(validAfter), { size: 6 }),
|
|
34
|
-
(0, viem_1.pad)(validator.address, { size: 20 }),
|
|
35
|
-
(0, viem_1.pad)(executorData.executor, { size: 20 }),
|
|
36
|
-
(0, viem_1.pad)((0, viem_1.toHex)(enableDataLength), { size: 32 }),
|
|
37
|
-
enableData,
|
|
38
|
-
(0, viem_1.pad)((0, viem_1.toHex)(enableSignature.length / 2 - 1), { size: 32 }),
|
|
39
|
-
enableSignature
|
|
40
|
-
]);
|
|
41
48
|
};
|
|
42
49
|
const getPluginEnableSignature = async (accountAddress) => {
|
|
43
50
|
if (pluginEnableSignature)
|
|
44
51
|
return pluginEnableSignature;
|
|
45
|
-
if (!
|
|
46
|
-
|
|
52
|
+
if (!sudo)
|
|
53
|
+
throw new Error("sudo validator not set -- need it to enable the validator");
|
|
54
|
+
if (!regular)
|
|
55
|
+
throw new Error("regular validator not set");
|
|
47
56
|
let kernelImplAddr;
|
|
48
57
|
try {
|
|
49
58
|
const strgAddr = await (0, permissionless_1.getAction)(client, actions_1.getStorageAt)({
|
|
@@ -54,7 +63,7 @@ async function toKernelPluginManager(client, { validator, defaultValidator, plug
|
|
|
54
63
|
kernelImplAddr = `0x${strgAddr.slice(26)}`;
|
|
55
64
|
}
|
|
56
65
|
catch (error) { }
|
|
57
|
-
const ownerSig = await
|
|
66
|
+
const ownerSig = await sudo.signTypedData({
|
|
58
67
|
domain: {
|
|
59
68
|
name: "Kernel",
|
|
60
69
|
version: kernelImplAddr
|
|
@@ -80,21 +89,25 @@ async function toKernelPluginManager(client, { validator, defaultValidator, plug
|
|
|
80
89
|
(0, viem_1.pad)((0, viem_1.toHex)(validAfter ?? 0), {
|
|
81
90
|
size: 6
|
|
82
91
|
}),
|
|
83
|
-
|
|
92
|
+
regular.address
|
|
84
93
|
]), { size: 32 }),
|
|
85
94
|
executor: executorData.executor,
|
|
86
|
-
enableData: await
|
|
95
|
+
enableData: await regular.getEnableData(accountAddress)
|
|
87
96
|
},
|
|
88
97
|
primaryType: "ValidatorApproved"
|
|
89
98
|
});
|
|
90
99
|
return ownerSig;
|
|
91
100
|
};
|
|
101
|
+
const activeValidator = regular || sudo;
|
|
102
|
+
if (!activeValidator) {
|
|
103
|
+
throw new Error("One of `sudo` or `regular` validator must be set");
|
|
104
|
+
}
|
|
92
105
|
return {
|
|
93
|
-
...
|
|
106
|
+
...activeValidator,
|
|
94
107
|
signUserOperation: async (userOperation) => {
|
|
95
108
|
return (0, viem_1.concatHex)([
|
|
96
109
|
await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
|
|
97
|
-
await
|
|
110
|
+
await activeValidator.signUserOperation(userOperation)
|
|
98
111
|
]);
|
|
99
112
|
},
|
|
100
113
|
getExecutorData: () => executorData,
|
|
@@ -105,7 +118,7 @@ async function toKernelPluginManager(client, { validator, defaultValidator, plug
|
|
|
105
118
|
getDummySignature: async (userOperation) => {
|
|
106
119
|
return (0, viem_1.concatHex)([
|
|
107
120
|
await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
|
|
108
|
-
await
|
|
121
|
+
await activeValidator.getDummySignature(userOperation)
|
|
109
122
|
]);
|
|
110
123
|
},
|
|
111
124
|
getPluginEnableSignature,
|
|
@@ -113,9 +126,9 @@ async function toKernelPluginManager(client, { validator, defaultValidator, plug
|
|
|
113
126
|
if (validatorInitData)
|
|
114
127
|
return validatorInitData;
|
|
115
128
|
return {
|
|
116
|
-
validatorAddress:
|
|
117
|
-
enableData: (await
|
|
118
|
-
(await
|
|
129
|
+
validatorAddress: sudo?.address ?? activeValidator.address,
|
|
130
|
+
enableData: (await sudo?.getEnableData()) ??
|
|
131
|
+
(await activeValidator.getEnableData())
|
|
119
132
|
};
|
|
120
133
|
}
|
|
121
134
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toKernelPluginManager.js","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":";;;AAAA,mDAA0C;AAC1C,+BAaa;AACb,0CAAuD;AACvD,qDAA0D;AAC1D,qDAI8B;AAC9B,6CAAiD;AAEjD,SAAgB,qBAAqB,CAEjC,MAAW;IAEX,OAAO,MAAM,CAAC,wBAAwB,KAAK,SAAS,CAAA;AACxD,CAAC;AALD,sDAKC;AAEM,KAAK,UAAU,qBAAqB,CAIvC,MAAkC,EAClC,EACI,
|
|
1
|
+
{"version":3,"file":"toKernelPluginManager.js","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"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"}
|
package/_cjs/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":";;;AA8FA,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getAccountNonce, getSenderAddress } from "permissionless";
|
|
2
2
|
import { SignTransactionNotSupportedBySmartAccount } from "permissionless/accounts";
|
|
3
|
-
import { concatHex, decodeFunctionResult, encodeAbiParameters, encodeDeployData, encodeFunctionData, getTypesForEIP712Domain, hashTypedData, keccak256, parseAbi, stringToHex, validateTypedData } from "viem";
|
|
3
|
+
import { concatHex, decodeFunctionResult, encodeAbiParameters, encodeDeployData, encodeFunctionData, getTypesForEIP712Domain, hashMessage, hashTypedData, keccak256, parseAbi, stringToHex, validateTypedData } from "viem";
|
|
4
4
|
import { toAccount } from "viem/accounts";
|
|
5
5
|
import { getBytecode } from "viem/actions";
|
|
6
6
|
import { isKernelPluginManager, toKernelPluginManager } from "../utils/toKernelPluginManager.js";
|
|
@@ -141,8 +141,8 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
|
|
|
141
141
|
const kernelPluginManager = isKernelPluginManager(plugins)
|
|
142
142
|
? plugins
|
|
143
143
|
: await toKernelPluginManager(client, {
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
sudo: plugins.sudo,
|
|
145
|
+
regular: plugins.regular,
|
|
146
146
|
executorData: plugins.executorData,
|
|
147
147
|
pluginEnableSignature: plugins.pluginEnableSignature
|
|
148
148
|
});
|
|
@@ -212,12 +212,7 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
|
|
|
212
212
|
const account = toAccount({
|
|
213
213
|
address: accountAddress,
|
|
214
214
|
async signMessage({ message }) {
|
|
215
|
-
|
|
216
|
-
if (typeof message === "string")
|
|
217
|
-
messageHash = keccak256(stringToHex(message));
|
|
218
|
-
else
|
|
219
|
-
messageHash = keccak256(message.raw);
|
|
220
|
-
return signHashedMessage(messageHash);
|
|
215
|
+
return signHashedMessage(hashMessage(message));
|
|
221
216
|
},
|
|
222
217
|
async signTransaction(_, __) {
|
|
223
218
|
throw new SignTransactionNotSupportedBySmartAccount();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createKernelAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createKernelAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,42 +9,48 @@ export function isKernelPluginManager(
|
|
|
9
9
|
plugin) {
|
|
10
10
|
return plugin.getPluginEnableSignature !== undefined;
|
|
11
11
|
}
|
|
12
|
-
export async function toKernelPluginManager(client, {
|
|
12
|
+
export async function toKernelPluginManager(client, { sudo, regular, pluginEnableSignature, validatorInitData, executorData = {
|
|
13
13
|
executor: zeroAddress,
|
|
14
14
|
selector: getFunctionSelector("execute(address, uint256, bytes, uint8)")
|
|
15
15
|
}, validAfter = 0, validUntil = 0 }) {
|
|
16
16
|
const chainId = await getChainId(client);
|
|
17
17
|
const getValidatorSignature = async (accountAddress, selector) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
if (regular) {
|
|
19
|
+
if (await regular.isEnabled(accountAddress, selector)) {
|
|
20
|
+
return ValidatorMode.plugin;
|
|
21
|
+
}
|
|
22
|
+
const enableSignature = await getPluginEnableSignature(accountAddress);
|
|
23
|
+
const enableData = await regular.getEnableData(accountAddress);
|
|
24
|
+
const enableDataLength = enableData.length / 2 - 1;
|
|
25
|
+
if (!enableSignature) {
|
|
26
|
+
throw new Error("Enable signature not set");
|
|
27
|
+
}
|
|
28
|
+
return concat([
|
|
29
|
+
ValidatorMode.enable,
|
|
30
|
+
pad(toHex(validUntil), { size: 6 }), // 6 bytes 4 - 10
|
|
31
|
+
pad(toHex(validAfter), { size: 6 }), // 6 bytes 10 - 16
|
|
32
|
+
pad(regular.address, { size: 20 }), // 20 bytes 16 - 36
|
|
33
|
+
pad(executorData.executor, { size: 20 }), // 20 bytes 36 - 56
|
|
34
|
+
pad(toHex(enableDataLength), { size: 32 }), // 32 bytes 56 - 88
|
|
35
|
+
enableData, // 88 - 88 + enableData.length
|
|
36
|
+
pad(toHex(enableSignature.length / 2 - 1), { size: 32 }), // 32 bytes 88 + enableData.length - 120 + enableData.length
|
|
37
|
+
enableSignature // 120 + enableData.length - 120 + enableData.length + enableSignature.length
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
else if (sudo) {
|
|
41
|
+
return ValidatorMode.sudo;
|
|
22
42
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (!enableSignature) {
|
|
26
|
-
throw new Error("Enable signature not set");
|
|
43
|
+
else {
|
|
44
|
+
throw new Error("One of `sudo` or `regular` validator must be set");
|
|
27
45
|
}
|
|
28
|
-
return concat([
|
|
29
|
-
mode, // 4 bytes 0 - 4
|
|
30
|
-
pad(toHex(validUntil), { size: 6 }), // 6 bytes 4 - 10
|
|
31
|
-
pad(toHex(validAfter), { size: 6 }), // 6 bytes 10 - 16
|
|
32
|
-
pad(validator.address, { size: 20 }), // 20 bytes 16 - 36
|
|
33
|
-
pad(executorData.executor, { size: 20 }), // 20 bytes 36 - 56
|
|
34
|
-
pad(toHex(enableDataLength), { size: 32 }), // 32 bytes 56 - 88
|
|
35
|
-
enableData, // 88 - 88 + enableData.length
|
|
36
|
-
pad(toHex(enableSignature.length / 2 - 1), { size: 32 }), // 32 bytes 88 + enableData.length - 120 + enableData.length
|
|
37
|
-
enableSignature // 120 + enableData.length - 120 + enableData.length + enableSignature.length
|
|
38
|
-
]);
|
|
39
46
|
};
|
|
40
47
|
const getPluginEnableSignature = async (accountAddress) => {
|
|
41
48
|
if (pluginEnableSignature)
|
|
42
49
|
return pluginEnableSignature;
|
|
43
|
-
if (!
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
// }
|
|
50
|
+
if (!sudo)
|
|
51
|
+
throw new Error("sudo validator not set -- need it to enable the validator");
|
|
52
|
+
if (!regular)
|
|
53
|
+
throw new Error("regular validator not set");
|
|
48
54
|
let kernelImplAddr;
|
|
49
55
|
try {
|
|
50
56
|
const strgAddr = await getAction(client, getStorageAt)({
|
|
@@ -55,7 +61,7 @@ export async function toKernelPluginManager(client, { validator, defaultValidato
|
|
|
55
61
|
kernelImplAddr = `0x${strgAddr.slice(26)}`;
|
|
56
62
|
}
|
|
57
63
|
catch (error) { }
|
|
58
|
-
const ownerSig = await
|
|
64
|
+
const ownerSig = await sudo.signTypedData({
|
|
59
65
|
domain: {
|
|
60
66
|
name: "Kernel",
|
|
61
67
|
version: kernelImplAddr
|
|
@@ -81,21 +87,25 @@ export async function toKernelPluginManager(client, { validator, defaultValidato
|
|
|
81
87
|
pad(toHex(validAfter ?? 0), {
|
|
82
88
|
size: 6
|
|
83
89
|
}),
|
|
84
|
-
|
|
90
|
+
regular.address
|
|
85
91
|
]), { size: 32 }),
|
|
86
92
|
executor: executorData.executor,
|
|
87
|
-
enableData: await
|
|
93
|
+
enableData: await regular.getEnableData(accountAddress)
|
|
88
94
|
},
|
|
89
95
|
primaryType: "ValidatorApproved"
|
|
90
96
|
});
|
|
91
97
|
return ownerSig;
|
|
92
98
|
};
|
|
99
|
+
const activeValidator = regular || sudo;
|
|
100
|
+
if (!activeValidator) {
|
|
101
|
+
throw new Error("One of `sudo` or `regular` validator must be set");
|
|
102
|
+
}
|
|
93
103
|
return {
|
|
94
|
-
...
|
|
104
|
+
...activeValidator,
|
|
95
105
|
signUserOperation: async (userOperation) => {
|
|
96
106
|
return concatHex([
|
|
97
107
|
await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
|
|
98
|
-
await
|
|
108
|
+
await activeValidator.signUserOperation(userOperation)
|
|
99
109
|
]);
|
|
100
110
|
},
|
|
101
111
|
getExecutorData: () => executorData,
|
|
@@ -106,7 +116,7 @@ export async function toKernelPluginManager(client, { validator, defaultValidato
|
|
|
106
116
|
getDummySignature: async (userOperation) => {
|
|
107
117
|
return concatHex([
|
|
108
118
|
await getValidatorSignature(userOperation.sender, userOperation.callData.toString().slice(0, 10)),
|
|
109
|
-
await
|
|
119
|
+
await activeValidator.getDummySignature(userOperation)
|
|
110
120
|
]);
|
|
111
121
|
},
|
|
112
122
|
getPluginEnableSignature,
|
|
@@ -114,9 +124,9 @@ export async function toKernelPluginManager(client, { validator, defaultValidato
|
|
|
114
124
|
if (validatorInitData)
|
|
115
125
|
return validatorInitData;
|
|
116
126
|
return {
|
|
117
|
-
validatorAddress:
|
|
118
|
-
enableData: (await
|
|
119
|
-
(await
|
|
127
|
+
validatorAddress: sudo?.address ?? activeValidator.address,
|
|
128
|
+
enableData: (await sudo?.getEnableData()) ??
|
|
129
|
+
(await activeValidator.getEnableData())
|
|
120
130
|
};
|
|
121
131
|
}
|
|
122
132
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toKernelPluginManager.js","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAMH,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,GAAG,EACH,KAAK,EACL,WAAW,EACd,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAGH,aAAa,EAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,MAAM,UAAU,qBAAqB;AACjC,4DAA4D;AAC5D,MAAW;IAEX,OAAO,MAAM,CAAC,wBAAwB,KAAK,SAAS,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAIvC,MAAkC,EAClC,EACI,
|
|
1
|
+
{"version":3,"file":"toKernelPluginManager.js","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"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"}
|
package/_esm/types/kernel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6C,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6C,MAAM,MAAM,CAAA;AA0FhE,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createKernelAccount.d.ts","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,YAAY,EACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,GAAG,EACR,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"createKernelAccount.d.ts","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,YAAY,EACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,GAAG,EACR,KAAK,SAAS,EAcjB,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EACR,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,uBAAuB,CAAA;AAO9B,MAAM,MAAM,kBAAkB,CAC1B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,IACnD,YAAY,CAAC,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG;IACvD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,gBAAgB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,cAAc,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACnE,CAAA;AA8CD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCb,CAAA;AACV;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE;IAC3B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;CAK3B,CAAA;AAoED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,OAAO,EACP,UAA6C,EAC7C,KAAU,EACV,cAAiD,EACjD,mBAAyD,EACzD,sBAAsB,EACzB,EAAE;IACC,OAAO,EAAE,yBAAyB,GAAG,mBAAmB,CAAA;IACxD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACnC,GACF,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAkOjD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Chain, type Client, type Transport } from "viem";
|
|
2
2
|
import { type KernelPluginManager, type KernelPluginManagerParams } from "../../types/kernel.js";
|
|
3
3
|
export declare function isKernelPluginManager(plugin: any): plugin is KernelPluginManager;
|
|
4
|
-
export declare function toKernelPluginManager<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined>(client: Client<TTransport, TChain>, {
|
|
4
|
+
export declare function toKernelPluginManager<TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined>(client: Client<TTransport, TChain>, { sudo, regular, pluginEnableSignature, validatorInitData, executorData, validAfter, validUntil }: KernelPluginManagerParams): Promise<KernelPluginManager>;
|
|
5
5
|
//# sourceMappingURL=toKernelPluginManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toKernelPluginManager.d.ts","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,SAAS,EAQjB,MAAM,MAAM,CAAA;AAGb,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAEjC,MAAM,uBAAuB,CAAA;AAG9B,wBAAgB,qBAAqB,CAEjC,MAAM,EAAE,GAAG,GACZ,MAAM,IAAI,mBAAmB,CAE/B;AAED,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,EAClC,EACI,
|
|
1
|
+
{"version":3,"file":"toKernelPluginManager.d.ts","sourceRoot":"","sources":["../../../accounts/utils/toKernelPluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,SAAS,EAQjB,MAAM,MAAM,CAAA;AAGb,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAEjC,MAAM,uBAAuB,CAAA;AAG9B,wBAAgB,qBAAqB,CAEjC,MAAM,EAAE,GAAG,GACZ,MAAM,IAAI,mBAAmB,CAE/B;AAED,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,EAClC,EACI,IAAI,EACJ,OAAO,EACP,qBAAqB,EACrB,iBAAiB,EACjB,YAKC,EACD,UAAc,EACd,UAAc,EACjB,EAAE,yBAAyB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CAwI9B"}
|
package/_types/types/kernel.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export type KernelValidator<Name extends string = string> = LocalAccount<Name> &
|
|
|
42
42
|
getDummySignature(userOperation: UserOperation, pluginEnableSignature?: Hex): Promise<Hex>;
|
|
43
43
|
signUserOperation: (userOperation: UserOperation, pluginEnableSignature?: Hex) => Promise<Hex>;
|
|
44
44
|
getEnableData(accountAddress?: Address): Promise<Hex>;
|
|
45
|
-
|
|
45
|
+
isEnabled(accountAddress: Address, selector: Hex): Promise<boolean>;
|
|
46
46
|
};
|
|
47
47
|
export type ValidatorInitData = {
|
|
48
48
|
validatorAddress: Address;
|
|
@@ -55,8 +55,8 @@ export type KernelPluginManager = KernelValidator & {
|
|
|
55
55
|
getValidityData(): PluginValidityData;
|
|
56
56
|
};
|
|
57
57
|
export type KernelPluginManagerParams = {
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
sudo?: KernelValidator;
|
|
59
|
+
regular?: KernelValidator;
|
|
60
60
|
pluginEnableSignature?: Hex;
|
|
61
61
|
validatorInitData?: ValidatorInitData;
|
|
62
62
|
executorData?: ExecutorData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,4BAA4B,EAC/B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,MAAM,MAAM,yBAAyB,GAAG;IACpC;QACI,MAAM,EAAE,yBAAyB,CAAA;QACjC,UAAU,EAAE;YACR;gBACI,OAAO,EAAE,MAAM,CAAA;gBACf,MAAM,EAAE,SAAS,CACb,4BAA4B,EAC1B,cAAc,GACd,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,CACvB,CAAA;gBACD,iBAAiB,EAAE,OAAO,CAAA;gBAC1B,YAAY,CAAC,EAAE;oBACX,YAAY,EAAE,GAAG,CAAA;iBACpB,CAAA;gBACD,iBAAiB,CAAC,EAAE,OAAO,CAAA;gBAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;gBAC7B,aAAa,CAAC,EAAE,OAAO,CAAA;aAC1B;SACJ,CAAA;QACD,UAAU,EAAE;YACR,gBAAgB,EAAE,GAAG,CAAA;YACrB,kBAAkB,EAAE,GAAG,CAAA;YACvB,oBAAoB,EAAE,GAAG,CAAA;YACzB,YAAY,EAAE,GAAG,CAAA;YACjB,YAAY,EAAE,GAAG,CAAA;YACjB,oBAAoB,EAAE,GAAG,CAAA;SAC5B,CAAA;KACJ;IACD;QACI,MAAM,EAAE,gBAAgB,CAAA;QACxB,UAAU,EAAE;YACR;gBACI,OAAO,EAAE,MAAM,CAAA;gBACf,iBAAiB,EAAE,OAAO,CAAA;aAC7B;SACJ,CAAA;QACD,UAAU,EAAE,OAAO,EAAE,CAAA;KACxB;CACJ,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IACpD,YAAY,CAAC,IAAI,CAAC,GAAG;IACjB,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAClC,iBAAiB,CACb,aAAa,EAAE,aAAa,EAC5B,qBAAqB,CAAC,EAAE,GAAG,GAC5B,OAAO,CAAC,GAAG,CAAC,CAAA;IACf,iBAAiB,EAAE,CACf,aAAa,EAAE,aAAa,EAC5B,qBAAqB,CAAC,EAAE,GAAG,KAC1B,OAAO,CAAC,GAAG,CAAC,CAAA;IACjB,aAAa,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACrD,
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
encodeDeployData,
|
|
18
18
|
encodeFunctionData,
|
|
19
19
|
getTypesForEIP712Domain,
|
|
20
|
+
hashMessage,
|
|
20
21
|
hashTypedData,
|
|
21
22
|
keccak256,
|
|
22
23
|
parseAbi,
|
|
@@ -236,8 +237,8 @@ export async function createKernelAccount<
|
|
|
236
237
|
const kernelPluginManager = isKernelPluginManager(plugins)
|
|
237
238
|
? plugins
|
|
238
239
|
: await toKernelPluginManager(client, {
|
|
239
|
-
|
|
240
|
-
|
|
240
|
+
sudo: plugins.sudo,
|
|
241
|
+
regular: plugins.regular,
|
|
241
242
|
executorData: plugins.executorData,
|
|
242
243
|
pluginEnableSignature: plugins.pluginEnableSignature
|
|
243
244
|
})
|
|
@@ -322,11 +323,7 @@ export async function createKernelAccount<
|
|
|
322
323
|
const account = toAccount({
|
|
323
324
|
address: accountAddress,
|
|
324
325
|
async signMessage({ message }) {
|
|
325
|
-
|
|
326
|
-
if (typeof message === "string")
|
|
327
|
-
messageHash = keccak256(stringToHex(message))
|
|
328
|
-
else messageHash = keccak256(message.raw)
|
|
329
|
-
return signHashedMessage(messageHash)
|
|
326
|
+
return signHashedMessage(hashMessage(message))
|
|
330
327
|
},
|
|
331
328
|
async signTransaction(_, __) {
|
|
332
329
|
throw new SignTransactionNotSupportedBySmartAccount()
|
|
@@ -35,8 +35,8 @@ export async function toKernelPluginManager<
|
|
|
35
35
|
>(
|
|
36
36
|
client: Client<TTransport, TChain>,
|
|
37
37
|
{
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
sudo,
|
|
39
|
+
regular,
|
|
40
40
|
pluginEnableSignature,
|
|
41
41
|
validatorInitData,
|
|
42
42
|
executorData = {
|
|
@@ -54,35 +54,44 @@ export async function toKernelPluginManager<
|
|
|
54
54
|
accountAddress: Address,
|
|
55
55
|
selector: Hex
|
|
56
56
|
): Promise<Hex> => {
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
if (regular) {
|
|
58
|
+
if (await regular.isEnabled(accountAddress, selector)) {
|
|
59
|
+
return ValidatorMode.plugin
|
|
60
|
+
}
|
|
59
61
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
const enableSignature =
|
|
63
|
+
await getPluginEnableSignature(accountAddress)
|
|
64
|
+
const enableData = await regular.getEnableData(accountAddress)
|
|
65
|
+
const enableDataLength = enableData.length / 2 - 1
|
|
66
|
+
if (!enableSignature) {
|
|
67
|
+
throw new Error("Enable signature not set")
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return concat([
|
|
71
|
+
ValidatorMode.enable,
|
|
72
|
+
pad(toHex(validUntil), { size: 6 }), // 6 bytes 4 - 10
|
|
73
|
+
pad(toHex(validAfter), { size: 6 }), // 6 bytes 10 - 16
|
|
74
|
+
pad(regular.address, { size: 20 }), // 20 bytes 16 - 36
|
|
75
|
+
pad(executorData.executor, { size: 20 }), // 20 bytes 36 - 56
|
|
76
|
+
pad(toHex(enableDataLength), { size: 32 }), // 32 bytes 56 - 88
|
|
77
|
+
enableData, // 88 - 88 + enableData.length
|
|
78
|
+
pad(toHex(enableSignature.length / 2 - 1), { size: 32 }), // 32 bytes 88 + enableData.length - 120 + enableData.length
|
|
79
|
+
enableSignature // 120 + enableData.length - 120 + enableData.length + enableSignature.length
|
|
80
|
+
])
|
|
81
|
+
} else if (sudo) {
|
|
82
|
+
return ValidatorMode.sudo
|
|
83
|
+
} else {
|
|
84
|
+
throw new Error("One of `sudo` or `regular` validator must be set")
|
|
67
85
|
}
|
|
68
|
-
return concat([
|
|
69
|
-
mode, // 4 bytes 0 - 4
|
|
70
|
-
pad(toHex(validUntil), { size: 6 }), // 6 bytes 4 - 10
|
|
71
|
-
pad(toHex(validAfter), { size: 6 }), // 6 bytes 10 - 16
|
|
72
|
-
pad(validator.address, { size: 20 }), // 20 bytes 16 - 36
|
|
73
|
-
pad(executorData.executor, { size: 20 }), // 20 bytes 36 - 56
|
|
74
|
-
pad(toHex(enableDataLength), { size: 32 }), // 32 bytes 56 - 88
|
|
75
|
-
enableData, // 88 - 88 + enableData.length
|
|
76
|
-
pad(toHex(enableSignature.length / 2 - 1), { size: 32 }), // 32 bytes 88 + enableData.length - 120 + enableData.length
|
|
77
|
-
enableSignature // 120 + enableData.length - 120 + enableData.length + enableSignature.length
|
|
78
|
-
])
|
|
79
86
|
}
|
|
87
|
+
|
|
80
88
|
const getPluginEnableSignature = async (accountAddress: Address) => {
|
|
81
89
|
if (pluginEnableSignature) return pluginEnableSignature
|
|
82
|
-
if (!
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
if (!sudo)
|
|
91
|
+
throw new Error(
|
|
92
|
+
"sudo validator not set -- need it to enable the validator"
|
|
93
|
+
)
|
|
94
|
+
if (!regular) throw new Error("regular validator not set")
|
|
86
95
|
let kernelImplAddr: Address | undefined
|
|
87
96
|
try {
|
|
88
97
|
const strgAddr = await getAction(
|
|
@@ -94,7 +103,7 @@ export async function toKernelPluginManager<
|
|
|
94
103
|
})
|
|
95
104
|
if (strgAddr) kernelImplAddr = `0x${strgAddr.slice(26)}` as Hex
|
|
96
105
|
} catch (error) {}
|
|
97
|
-
const ownerSig = await
|
|
106
|
+
const ownerSig = await sudo.signTypedData({
|
|
98
107
|
domain: {
|
|
99
108
|
name: "Kernel",
|
|
100
109
|
version: kernelImplAddr
|
|
@@ -121,27 +130,32 @@ export async function toKernelPluginManager<
|
|
|
121
130
|
pad(toHex(validAfter ?? 0), {
|
|
122
131
|
size: 6
|
|
123
132
|
}),
|
|
124
|
-
|
|
133
|
+
regular.address
|
|
125
134
|
]),
|
|
126
135
|
{ size: 32 }
|
|
127
136
|
),
|
|
128
137
|
executor: executorData.executor as Address,
|
|
129
|
-
enableData: await
|
|
138
|
+
enableData: await regular.getEnableData(accountAddress)
|
|
130
139
|
},
|
|
131
140
|
primaryType: "ValidatorApproved"
|
|
132
141
|
})
|
|
133
142
|
return ownerSig
|
|
134
143
|
}
|
|
135
144
|
|
|
145
|
+
const activeValidator = regular || sudo
|
|
146
|
+
if (!activeValidator) {
|
|
147
|
+
throw new Error("One of `sudo` or `regular` validator must be set")
|
|
148
|
+
}
|
|
149
|
+
|
|
136
150
|
return {
|
|
137
|
-
...
|
|
151
|
+
...activeValidator,
|
|
138
152
|
signUserOperation: async (userOperation) => {
|
|
139
153
|
return concatHex([
|
|
140
154
|
await getValidatorSignature(
|
|
141
155
|
userOperation.sender,
|
|
142
156
|
userOperation.callData.toString().slice(0, 10) as Hex
|
|
143
157
|
),
|
|
144
|
-
await
|
|
158
|
+
await activeValidator.signUserOperation(userOperation)
|
|
145
159
|
])
|
|
146
160
|
},
|
|
147
161
|
getExecutorData: () => executorData,
|
|
@@ -155,18 +169,18 @@ export async function toKernelPluginManager<
|
|
|
155
169
|
userOperation.sender,
|
|
156
170
|
userOperation.callData.toString().slice(0, 10) as Hex
|
|
157
171
|
),
|
|
158
|
-
await
|
|
172
|
+
await activeValidator.getDummySignature(userOperation)
|
|
159
173
|
])
|
|
160
174
|
},
|
|
161
175
|
getPluginEnableSignature,
|
|
162
176
|
getValidatorInitData: async () => {
|
|
163
177
|
if (validatorInitData) return validatorInitData
|
|
164
178
|
return {
|
|
165
|
-
validatorAddress:
|
|
166
|
-
|
|
179
|
+
validatorAddress: sudo?.address ?? activeValidator.address,
|
|
180
|
+
|
|
167
181
|
enableData:
|
|
168
|
-
(await
|
|
169
|
-
(await
|
|
182
|
+
(await sudo?.getEnableData()) ??
|
|
183
|
+
(await activeValidator.getEnableData())
|
|
170
184
|
}
|
|
171
185
|
}
|
|
172
186
|
}
|
package/package.json
CHANGED
package/types/kernel.ts
CHANGED
|
@@ -59,10 +59,7 @@ export type KernelValidator<Name extends string = string> =
|
|
|
59
59
|
pluginEnableSignature?: Hex
|
|
60
60
|
) => Promise<Hex>
|
|
61
61
|
getEnableData(accountAddress?: Address): Promise<Hex>
|
|
62
|
-
|
|
63
|
-
accountAddress: Address,
|
|
64
|
-
selector: Hex
|
|
65
|
-
): Promise<ValidatorMode>
|
|
62
|
+
isEnabled(accountAddress: Address, selector: Hex): Promise<boolean>
|
|
66
63
|
}
|
|
67
64
|
|
|
68
65
|
export type ValidatorInitData = {
|
|
@@ -78,8 +75,8 @@ export type KernelPluginManager = KernelValidator & {
|
|
|
78
75
|
}
|
|
79
76
|
|
|
80
77
|
export type KernelPluginManagerParams = {
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
sudo?: KernelValidator
|
|
79
|
+
regular?: KernelValidator
|
|
83
80
|
pluginEnableSignature?: Hex
|
|
84
81
|
validatorInitData?: ValidatorInitData
|
|
85
82
|
executorData?: ExecutorData
|