IPluginAbi

1const IPluginAbi: readonly [
2 {
3 inputs: readonly [
4 {
5 internalType: "bytes";
6 name: "data";
7 type: "bytes";
8 },
9 ];
10 name: "onInstall";
11 outputs: readonly [];
12 stateMutability: "nonpayable";
13 type: "function";
14 },
15 {
16 inputs: readonly [
17 {
18 internalType: "bytes";
19 name: "data";
20 type: "bytes";
21 },
22 ];
23 name: "onUninstall";
24 outputs: readonly [];
25 stateMutability: "nonpayable";
26 type: "function";
27 },
28 {
29 inputs: readonly [];
30 name: "pluginManifest";
31 outputs: readonly [
32 {
33 components: readonly [
34 {
35 internalType: "bytes4[]";
36 name: "interfaceIds";
37 type: "bytes4[]";
38 },
39 {
40 internalType: "bytes4[]";
41 name: "dependencyInterfaceIds";
42 type: "bytes4[]";
43 },
44 {
45 internalType: "bytes4[]";
46 name: "executionFunctions";
47 type: "bytes4[]";
48 },
49 {
50 internalType: "bytes4[]";
51 name: "permittedExecutionSelectors";
52 type: "bytes4[]";
53 },
54 {
55 internalType: "bool";
56 name: "permitAnyExternalAddress";
57 type: "bool";
58 },
59 {
60 internalType: "bool";
61 name: "canSpendNativeToken";
62 type: "bool";
63 },
64 {
65 components: readonly [
66 {
67 internalType: "address";
68 name: "externalAddress";
69 type: "address";
70 },
71 {
72 internalType: "bool";
73 name: "permitAnySelector";
74 type: "bool";
75 },
76 {
77 internalType: "bytes4[]";
78 name: "selectors";
79 type: "bytes4[]";
80 },
81 ];
82 internalType: "struct ManifestExternalCallPermission[]";
83 name: "permittedExternalCalls";
84 type: "tuple[]";
85 },
86 {
87 components: readonly [
88 {
89 internalType: "bytes4";
90 name: "executionSelector";
91 type: "bytes4";
92 },
93 {
94 components: readonly [
95 {
96 internalType: "enum ManifestAssociatedFunctionType";
97 name: "functionType";
98 type: "uint8";
99 },
100 {
101 internalType: "uint8";
102 name: "functionId";
103 type: "uint8";
104 },
105 {
106 internalType: "uint256";
107 name: "dependencyIndex";
108 type: "uint256";
109 },
110 ];
111 internalType: "struct ManifestFunction";
112 name: "associatedFunction";
113 type: "tuple";
114 },
115 ];
116 internalType: "struct ManifestAssociatedFunction[]";
117 name: "userOpValidationFunctions";
118 type: "tuple[]";
119 },
120 {
121 components: readonly [
122 {
123 internalType: "bytes4";
124 name: "executionSelector";
125 type: "bytes4";
126 },
127 {
128 components: readonly [
129 {
130 internalType: "enum ManifestAssociatedFunctionType";
131 name: "functionType";
132 type: "uint8";
133 },
134 {
135 internalType: "uint8";
136 name: "functionId";
137 type: "uint8";
138 },
139 {
140 internalType: "uint256";
141 name: "dependencyIndex";
142 type: "uint256";
143 },
144 ];
145 internalType: "struct ManifestFunction";
146 name: "associatedFunction";
147 type: "tuple";
148 },
149 ];
150 internalType: "struct ManifestAssociatedFunction[]";
151 name: "runtimeValidationFunctions";
152 type: "tuple[]";
153 },
154 {
155 components: readonly [
156 {
157 internalType: "bytes4";
158 name: "executionSelector";
159 type: "bytes4";
160 },
161 {
162 components: readonly [
163 {
164 internalType: "enum ManifestAssociatedFunctionType";
165 name: "functionType";
166 type: "uint8";
167 },
168 {
169 internalType: "uint8";
170 name: "functionId";
171 type: "uint8";
172 },
173 {
174 internalType: "uint256";
175 name: "dependencyIndex";
176 type: "uint256";
177 },
178 ];
179 internalType: "struct ManifestFunction";
180 name: "associatedFunction";
181 type: "tuple";
182 },
183 ];
184 internalType: "struct ManifestAssociatedFunction[]";
185 name: "preUserOpValidationHooks";
186 type: "tuple[]";
187 },
188 {
189 components: readonly [
190 {
191 internalType: "bytes4";
192 name: "executionSelector";
193 type: "bytes4";
194 },
195 {
196 components: readonly [
197 {
198 internalType: "enum ManifestAssociatedFunctionType";
199 name: "functionType";
200 type: "uint8";
201 },
202 {
203 internalType: "uint8";
204 name: "functionId";
205 type: "uint8";
206 },
207 {
208 internalType: "uint256";
209 name: "dependencyIndex";
210 type: "uint256";
211 },
212 ];
213 internalType: "struct ManifestFunction";
214 name: "associatedFunction";
215 type: "tuple";
216 },
217 ];
218 internalType: "struct ManifestAssociatedFunction[]";
219 name: "preRuntimeValidationHooks";
220 type: "tuple[]";
221 },
222 {
223 components: readonly [
224 {
225 internalType: "bytes4";
226 name: "executionSelector";
227 type: "bytes4";
228 },
229 {
230 components: readonly [
231 {
232 internalType: "enum ManifestAssociatedFunctionType";
233 name: "functionType";
234 type: "uint8";
235 },
236 {
237 internalType: "uint8";
238 name: "functionId";
239 type: "uint8";
240 },
241 {
242 internalType: "uint256";
243 name: "dependencyIndex";
244 type: "uint256";
245 },
246 ];
247 internalType: "struct ManifestFunction";
248 name: "preExecHook";
249 type: "tuple";
250 },
251 {
252 components: readonly [
253 {
254 internalType: "enum ManifestAssociatedFunctionType";
255 name: "functionType";
256 type: "uint8";
257 },
258 {
259 internalType: "uint8";
260 name: "functionId";
261 type: "uint8";
262 },
263 {
264 internalType: "uint256";
265 name: "dependencyIndex";
266 type: "uint256";
267 },
268 ];
269 internalType: "struct ManifestFunction";
270 name: "postExecHook";
271 type: "tuple";
272 },
273 ];
274 internalType: "struct ManifestExecutionHook[]";
275 name: "executionHooks";
276 type: "tuple[]";
277 },
278 ];
279 internalType: "struct PluginManifest";
280 name: "";
281 type: "tuple";
282 },
283 ];
284 stateMutability: "pure";
285 type: "function";
286 },
287 {
288 inputs: readonly [];
289 name: "pluginMetadata";
290 outputs: readonly [
291 {
292 components: readonly [
293 {
294 internalType: "string";
295 name: "name";
296 type: "string";
297 },
298 {
299 internalType: "string";
300 name: "version";
301 type: "string";
302 },
303 {
304 internalType: "string";
305 name: "author";
306 type: "string";
307 },
308 {
309 components: readonly [
310 {
311 internalType: "bytes4";
312 name: "functionSelector";
313 type: "bytes4";
314 },
315 {
316 internalType: "string";
317 name: "permissionDescription";
318 type: "string";
319 },
320 ];
321 internalType: "struct SelectorPermission[]";
322 name: "permissionDescriptors";
323 type: "tuple[]";
324 },
325 ];
326 internalType: "struct PluginMetadata";
327 name: "";
328 type: "tuple";
329 },
330 ];
331 stateMutability: "pure";
332 type: "function";
333 },
334 {
335 inputs: readonly [
336 {
337 internalType: "uint8";
338 name: "functionId";
339 type: "uint8";
340 },
341 {
342 internalType: "bytes";
343 name: "preExecHookData";
344 type: "bytes";
345 },
346 ];
347 name: "postExecutionHook";
348 outputs: readonly [];
349 stateMutability: "nonpayable";
350 type: "function";
351 },
352 {
353 inputs: readonly [
354 {
355 internalType: "uint8";
356 name: "functionId";
357 type: "uint8";
358 },
359 {
360 internalType: "address";
361 name: "sender";
362 type: "address";
363 },
364 {
365 internalType: "uint256";
366 name: "value";
367 type: "uint256";
368 },
369 {
370 internalType: "bytes";
371 name: "data";
372 type: "bytes";
373 },
374 ];
375 name: "preExecutionHook";
376 outputs: readonly [
377 {
378 internalType: "bytes";
379 name: "";
380 type: "bytes";
381 },
382 ];
383 stateMutability: "nonpayable";
384 type: "function";
385 },
386 {
387 inputs: readonly [
388 {
389 internalType: "uint8";
390 name: "functionId";
391 type: "uint8";
392 },
393 {
394 internalType: "address";
395 name: "sender";
396 type: "address";
397 },
398 {
399 internalType: "uint256";
400 name: "value";
401 type: "uint256";
402 },
403 {
404 internalType: "bytes";
405 name: "data";
406 type: "bytes";
407 },
408 ];
409 name: "preRuntimeValidationHook";
410 outputs: readonly [];
411 stateMutability: "nonpayable";
412 type: "function";
413 },
414 {
415 inputs: readonly [
416 {
417 internalType: "uint8";
418 name: "functionId";
419 type: "uint8";
420 },
421 {
422 components: readonly [
423 {
424 internalType: "address";
425 name: "sender";
426 type: "address";
427 },
428 {
429 internalType: "uint256";
430 name: "nonce";
431 type: "uint256";
432 },
433 {
434 internalType: "bytes";
435 name: "initCode";
436 type: "bytes";
437 },
438 {
439 internalType: "bytes";
440 name: "callData";
441 type: "bytes";
442 },
443 {
444 internalType: "uint256";
445 name: "callGasLimit";
446 type: "uint256";
447 },
448 {
449 internalType: "uint256";
450 name: "verificationGasLimit";
451 type: "uint256";
452 },
453 {
454 internalType: "uint256";
455 name: "preVerificationGas";
456 type: "uint256";
457 },
458 {
459 internalType: "uint256";
460 name: "maxFeePerGas";
461 type: "uint256";
462 },
463 {
464 internalType: "uint256";
465 name: "maxPriorityFeePerGas";
466 type: "uint256";
467 },
468 {
469 internalType: "bytes";
470 name: "paymasterAndData";
471 type: "bytes";
472 },
473 {
474 internalType: "bytes";
475 name: "signature";
476 type: "bytes";
477 },
478 ];
479 internalType: "struct UserOperation";
480 name: "userOp";
481 type: "tuple";
482 },
483 {
484 internalType: "bytes32";
485 name: "userOpHash";
486 type: "bytes32";
487 },
488 ];
489 name: "preUserOpValidationHook";
490 outputs: readonly [
491 {
492 internalType: "uint256";
493 name: "";
494 type: "uint256";
495 },
496 ];
497 stateMutability: "nonpayable";
498 type: "function";
499 },
500 {
501 inputs: readonly [
502 {
503 internalType: "uint8";
504 name: "functionId";
505 type: "uint8";
506 },
507 {
508 internalType: "address";
509 name: "sender";
510 type: "address";
511 },
512 {
513 internalType: "uint256";
514 name: "value";
515 type: "uint256";
516 },
517 {
518 internalType: "bytes";
519 name: "data";
520 type: "bytes";
521 },
522 ];
523 name: "runtimeValidationFunction";
524 outputs: readonly [];
525 stateMutability: "nonpayable";
526 type: "function";
527 },
528 {
529 inputs: readonly [
530 {
531 internalType: "uint8";
532 name: "functionId";
533 type: "uint8";
534 },
535 {
536 components: readonly [
537 {
538 internalType: "address";
539 name: "sender";
540 type: "address";
541 },
542 {
543 internalType: "uint256";
544 name: "nonce";
545 type: "uint256";
546 },
547 {
548 internalType: "bytes";
549 name: "initCode";
550 type: "bytes";
551 },
552 {
553 internalType: "bytes";
554 name: "callData";
555 type: "bytes";
556 },
557 {
558 internalType: "uint256";
559 name: "callGasLimit";
560 type: "uint256";
561 },
562 {
563 internalType: "uint256";
564 name: "verificationGasLimit";
565 type: "uint256";
566 },
567 {
568 internalType: "uint256";
569 name: "preVerificationGas";
570 type: "uint256";
571 },
572 {
573 internalType: "uint256";
574 name: "maxFeePerGas";
575 type: "uint256";
576 },
577 {
578 internalType: "uint256";
579 name: "maxPriorityFeePerGas";
580 type: "uint256";
581 },
582 {
583 internalType: "bytes";
584 name: "paymasterAndData";
585 type: "bytes";
586 },
587 {
588 internalType: "bytes";
589 name: "signature";
590 type: "bytes";
591 },
592 ];
593 internalType: "struct UserOperation";
594 name: "userOp";
595 type: "tuple";
596 },
597 {
598 internalType: "bytes32";
599 name: "userOpHash";
600 type: "bytes32";
601 },
602 ];
603 name: "userOpValidationFunction";
604 outputs: readonly [
605 {
606 internalType: "uint256";
607 name: "";
608 type: "uint256";
609 },
610 ];
611 stateMutability: "nonpayable";
612 type: "function";
613 },
614];

Defined in: account-kit/smart-contracts/src/msca/abis/IPlugin.ts:1