MultiOwnerPluginAbi

1const MultiOwnerPluginAbi: readonly [
2 {
3 inputs: readonly [];
4 name: "eip712Domain";
5 outputs: readonly [
6 {
7 internalType: "bytes1";
8 name: "fields";
9 type: "bytes1";
10 },
11 {
12 internalType: "string";
13 name: "name";
14 type: "string";
15 },
16 {
17 internalType: "string";
18 name: "version";
19 type: "string";
20 },
21 {
22 internalType: "uint256";
23 name: "chainId";
24 type: "uint256";
25 },
26 {
27 internalType: "address";
28 name: "verifyingContract";
29 type: "address";
30 },
31 {
32 internalType: "bytes32";
33 name: "salt";
34 type: "bytes32";
35 },
36 {
37 internalType: "uint256[]";
38 name: "extensions";
39 type: "uint256[]";
40 },
41 ];
42 stateMutability: "view";
43 type: "function";
44 },
45 {
46 inputs: readonly [
47 {
48 internalType: "address";
49 name: "account";
50 type: "address";
51 },
52 {
53 internalType: "bytes";
54 name: "message";
55 type: "bytes";
56 },
57 ];
58 name: "encodeMessageData";
59 outputs: readonly [
60 {
61 internalType: "bytes";
62 name: "";
63 type: "bytes";
64 },
65 ];
66 stateMutability: "view";
67 type: "function";
68 },
69 {
70 inputs: readonly [
71 {
72 internalType: "address";
73 name: "account";
74 type: "address";
75 },
76 {
77 internalType: "bytes";
78 name: "message";
79 type: "bytes";
80 },
81 ];
82 name: "getMessageHash";
83 outputs: readonly [
84 {
85 internalType: "bytes32";
86 name: "";
87 type: "bytes32";
88 },
89 ];
90 stateMutability: "view";
91 type: "function";
92 },
93 {
94 inputs: readonly [
95 {
96 internalType: "address";
97 name: "account";
98 type: "address";
99 },
100 {
101 internalType: "address";
102 name: "ownerToCheck";
103 type: "address";
104 },
105 ];
106 name: "isOwnerOf";
107 outputs: readonly [
108 {
109 internalType: "bool";
110 name: "";
111 type: "bool";
112 },
113 ];
114 stateMutability: "view";
115 type: "function";
116 },
117 {
118 inputs: readonly [
119 {
120 internalType: "bytes32";
121 name: "digest";
122 type: "bytes32";
123 },
124 {
125 internalType: "bytes";
126 name: "signature";
127 type: "bytes";
128 },
129 ];
130 name: "isValidSignature";
131 outputs: readonly [
132 {
133 internalType: "bytes4";
134 name: "";
135 type: "bytes4";
136 },
137 ];
138 stateMutability: "view";
139 type: "function";
140 },
141 {
142 inputs: readonly [
143 {
144 internalType: "bytes";
145 name: "data";
146 type: "bytes";
147 },
148 ];
149 name: "onInstall";
150 outputs: readonly [];
151 stateMutability: "nonpayable";
152 type: "function";
153 },
154 {
155 inputs: readonly [
156 {
157 internalType: "bytes";
158 name: "";
159 type: "bytes";
160 },
161 ];
162 name: "onUninstall";
163 outputs: readonly [];
164 stateMutability: "nonpayable";
165 type: "function";
166 },
167 {
168 inputs: readonly [
169 {
170 internalType: "address";
171 name: "account";
172 type: "address";
173 },
174 ];
175 name: "ownersOf";
176 outputs: readonly [
177 {
178 internalType: "address[]";
179 name: "";
180 type: "address[]";
181 },
182 ];
183 stateMutability: "view";
184 type: "function";
185 },
186 {
187 inputs: readonly [];
188 name: "pluginManifest";
189 outputs: readonly [
190 {
191 components: readonly [
192 {
193 internalType: "bytes4[]";
194 name: "interfaceIds";
195 type: "bytes4[]";
196 },
197 {
198 internalType: "bytes4[]";
199 name: "dependencyInterfaceIds";
200 type: "bytes4[]";
201 },
202 {
203 internalType: "bytes4[]";
204 name: "executionFunctions";
205 type: "bytes4[]";
206 },
207 {
208 internalType: "bytes4[]";
209 name: "permittedExecutionSelectors";
210 type: "bytes4[]";
211 },
212 {
213 internalType: "bool";
214 name: "permitAnyExternalAddress";
215 type: "bool";
216 },
217 {
218 internalType: "bool";
219 name: "canSpendNativeToken";
220 type: "bool";
221 },
222 {
223 components: readonly [
224 {
225 internalType: "address";
226 name: "externalAddress";
227 type: "address";
228 },
229 {
230 internalType: "bool";
231 name: "permitAnySelector";
232 type: "bool";
233 },
234 {
235 internalType: "bytes4[]";
236 name: "selectors";
237 type: "bytes4[]";
238 },
239 ];
240 internalType: "struct ManifestExternalCallPermission[]";
241 name: "permittedExternalCalls";
242 type: "tuple[]";
243 },
244 {
245 components: readonly [
246 {
247 internalType: "bytes4";
248 name: "executionSelector";
249 type: "bytes4";
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: "associatedFunction";
271 type: "tuple";
272 },
273 ];
274 internalType: "struct ManifestAssociatedFunction[]";
275 name: "userOpValidationFunctions";
276 type: "tuple[]";
277 },
278 {
279 components: readonly [
280 {
281 internalType: "bytes4";
282 name: "executionSelector";
283 type: "bytes4";
284 },
285 {
286 components: readonly [
287 {
288 internalType: "enum ManifestAssociatedFunctionType";
289 name: "functionType";
290 type: "uint8";
291 },
292 {
293 internalType: "uint8";
294 name: "functionId";
295 type: "uint8";
296 },
297 {
298 internalType: "uint256";
299 name: "dependencyIndex";
300 type: "uint256";
301 },
302 ];
303 internalType: "struct ManifestFunction";
304 name: "associatedFunction";
305 type: "tuple";
306 },
307 ];
308 internalType: "struct ManifestAssociatedFunction[]";
309 name: "runtimeValidationFunctions";
310 type: "tuple[]";
311 },
312 {
313 components: readonly [
314 {
315 internalType: "bytes4";
316 name: "executionSelector";
317 type: "bytes4";
318 },
319 {
320 components: readonly [
321 {
322 internalType: "enum ManifestAssociatedFunctionType";
323 name: "functionType";
324 type: "uint8";
325 },
326 {
327 internalType: "uint8";
328 name: "functionId";
329 type: "uint8";
330 },
331 {
332 internalType: "uint256";
333 name: "dependencyIndex";
334 type: "uint256";
335 },
336 ];
337 internalType: "struct ManifestFunction";
338 name: "associatedFunction";
339 type: "tuple";
340 },
341 ];
342 internalType: "struct ManifestAssociatedFunction[]";
343 name: "preUserOpValidationHooks";
344 type: "tuple[]";
345 },
346 {
347 components: readonly [
348 {
349 internalType: "bytes4";
350 name: "executionSelector";
351 type: "bytes4";
352 },
353 {
354 components: readonly [
355 {
356 internalType: "enum ManifestAssociatedFunctionType";
357 name: "functionType";
358 type: "uint8";
359 },
360 {
361 internalType: "uint8";
362 name: "functionId";
363 type: "uint8";
364 },
365 {
366 internalType: "uint256";
367 name: "dependencyIndex";
368 type: "uint256";
369 },
370 ];
371 internalType: "struct ManifestFunction";
372 name: "associatedFunction";
373 type: "tuple";
374 },
375 ];
376 internalType: "struct ManifestAssociatedFunction[]";
377 name: "preRuntimeValidationHooks";
378 type: "tuple[]";
379 },
380 {
381 components: readonly [
382 {
383 internalType: "bytes4";
384 name: "executionSelector";
385 type: "bytes4";
386 },
387 {
388 components: readonly [
389 {
390 internalType: "enum ManifestAssociatedFunctionType";
391 name: "functionType";
392 type: "uint8";
393 },
394 {
395 internalType: "uint8";
396 name: "functionId";
397 type: "uint8";
398 },
399 {
400 internalType: "uint256";
401 name: "dependencyIndex";
402 type: "uint256";
403 },
404 ];
405 internalType: "struct ManifestFunction";
406 name: "preExecHook";
407 type: "tuple";
408 },
409 {
410 components: readonly [
411 {
412 internalType: "enum ManifestAssociatedFunctionType";
413 name: "functionType";
414 type: "uint8";
415 },
416 {
417 internalType: "uint8";
418 name: "functionId";
419 type: "uint8";
420 },
421 {
422 internalType: "uint256";
423 name: "dependencyIndex";
424 type: "uint256";
425 },
426 ];
427 internalType: "struct ManifestFunction";
428 name: "postExecHook";
429 type: "tuple";
430 },
431 ];
432 internalType: "struct ManifestExecutionHook[]";
433 name: "executionHooks";
434 type: "tuple[]";
435 },
436 ];
437 internalType: "struct PluginManifest";
438 name: "";
439 type: "tuple";
440 },
441 ];
442 stateMutability: "pure";
443 type: "function";
444 },
445 {
446 inputs: readonly [];
447 name: "pluginMetadata";
448 outputs: readonly [
449 {
450 components: readonly [
451 {
452 internalType: "string";
453 name: "name";
454 type: "string";
455 },
456 {
457 internalType: "string";
458 name: "version";
459 type: "string";
460 },
461 {
462 internalType: "string";
463 name: "author";
464 type: "string";
465 },
466 {
467 components: readonly [
468 {
469 internalType: "bytes4";
470 name: "functionSelector";
471 type: "bytes4";
472 },
473 {
474 internalType: "string";
475 name: "permissionDescription";
476 type: "string";
477 },
478 ];
479 internalType: "struct SelectorPermission[]";
480 name: "permissionDescriptors";
481 type: "tuple[]";
482 },
483 ];
484 internalType: "struct PluginMetadata";
485 name: "";
486 type: "tuple";
487 },
488 ];
489 stateMutability: "pure";
490 type: "function";
491 },
492 {
493 inputs: readonly [
494 {
495 internalType: "uint8";
496 name: "functionId";
497 type: "uint8";
498 },
499 {
500 internalType: "bytes";
501 name: "preExecHookData";
502 type: "bytes";
503 },
504 ];
505 name: "postExecutionHook";
506 outputs: readonly [];
507 stateMutability: "nonpayable";
508 type: "function";
509 },
510 {
511 inputs: readonly [
512 {
513 internalType: "uint8";
514 name: "functionId";
515 type: "uint8";
516 },
517 {
518 internalType: "address";
519 name: "sender";
520 type: "address";
521 },
522 {
523 internalType: "uint256";
524 name: "value";
525 type: "uint256";
526 },
527 {
528 internalType: "bytes";
529 name: "data";
530 type: "bytes";
531 },
532 ];
533 name: "preExecutionHook";
534 outputs: readonly [
535 {
536 internalType: "bytes";
537 name: "";
538 type: "bytes";
539 },
540 ];
541 stateMutability: "nonpayable";
542 type: "function";
543 },
544 {
545 inputs: readonly [
546 {
547 internalType: "uint8";
548 name: "functionId";
549 type: "uint8";
550 },
551 {
552 internalType: "address";
553 name: "sender";
554 type: "address";
555 },
556 {
557 internalType: "uint256";
558 name: "value";
559 type: "uint256";
560 },
561 {
562 internalType: "bytes";
563 name: "data";
564 type: "bytes";
565 },
566 ];
567 name: "preRuntimeValidationHook";
568 outputs: readonly [];
569 stateMutability: "nonpayable";
570 type: "function";
571 },
572 {
573 inputs: readonly [
574 {
575 internalType: "uint8";
576 name: "functionId";
577 type: "uint8";
578 },
579 {
580 components: readonly [
581 {
582 internalType: "address";
583 name: "sender";
584 type: "address";
585 },
586 {
587 internalType: "uint256";
588 name: "nonce";
589 type: "uint256";
590 },
591 {
592 internalType: "bytes";
593 name: "initCode";
594 type: "bytes";
595 },
596 {
597 internalType: "bytes";
598 name: "callData";
599 type: "bytes";
600 },
601 {
602 internalType: "uint256";
603 name: "callGasLimit";
604 type: "uint256";
605 },
606 {
607 internalType: "uint256";
608 name: "verificationGasLimit";
609 type: "uint256";
610 },
611 {
612 internalType: "uint256";
613 name: "preVerificationGas";
614 type: "uint256";
615 },
616 {
617 internalType: "uint256";
618 name: "maxFeePerGas";
619 type: "uint256";
620 },
621 {
622 internalType: "uint256";
623 name: "maxPriorityFeePerGas";
624 type: "uint256";
625 },
626 {
627 internalType: "bytes";
628 name: "paymasterAndData";
629 type: "bytes";
630 },
631 {
632 internalType: "bytes";
633 name: "signature";
634 type: "bytes";
635 },
636 ];
637 internalType: "struct UserOperation";
638 name: "userOp";
639 type: "tuple";
640 },
641 {
642 internalType: "bytes32";
643 name: "userOpHash";
644 type: "bytes32";
645 },
646 ];
647 name: "preUserOpValidationHook";
648 outputs: readonly [
649 {
650 internalType: "uint256";
651 name: "";
652 type: "uint256";
653 },
654 ];
655 stateMutability: "nonpayable";
656 type: "function";
657 },
658 {
659 inputs: readonly [
660 {
661 internalType: "uint8";
662 name: "functionId";
663 type: "uint8";
664 },
665 {
666 internalType: "address";
667 name: "sender";
668 type: "address";
669 },
670 {
671 internalType: "uint256";
672 name: "";
673 type: "uint256";
674 },
675 {
676 internalType: "bytes";
677 name: "";
678 type: "bytes";
679 },
680 ];
681 name: "runtimeValidationFunction";
682 outputs: readonly [];
683 stateMutability: "view";
684 type: "function";
685 },
686 {
687 inputs: readonly [
688 {
689 internalType: "bytes4";
690 name: "interfaceId";
691 type: "bytes4";
692 },
693 ];
694 name: "supportsInterface";
695 outputs: readonly [
696 {
697 internalType: "bool";
698 name: "";
699 type: "bool";
700 },
701 ];
702 stateMutability: "view";
703 type: "function";
704 },
705 {
706 inputs: readonly [
707 {
708 internalType: "address[]";
709 name: "ownersToAdd";
710 type: "address[]";
711 },
712 {
713 internalType: "address[]";
714 name: "ownersToRemove";
715 type: "address[]";
716 },
717 ];
718 name: "updateOwners";
719 outputs: readonly [];
720 stateMutability: "nonpayable";
721 type: "function";
722 },
723 {
724 inputs: readonly [
725 {
726 internalType: "uint8";
727 name: "functionId";
728 type: "uint8";
729 },
730 {
731 components: readonly [
732 {
733 internalType: "address";
734 name: "sender";
735 type: "address";
736 },
737 {
738 internalType: "uint256";
739 name: "nonce";
740 type: "uint256";
741 },
742 {
743 internalType: "bytes";
744 name: "initCode";
745 type: "bytes";
746 },
747 {
748 internalType: "bytes";
749 name: "callData";
750 type: "bytes";
751 },
752 {
753 internalType: "uint256";
754 name: "callGasLimit";
755 type: "uint256";
756 },
757 {
758 internalType: "uint256";
759 name: "verificationGasLimit";
760 type: "uint256";
761 },
762 {
763 internalType: "uint256";
764 name: "preVerificationGas";
765 type: "uint256";
766 },
767 {
768 internalType: "uint256";
769 name: "maxFeePerGas";
770 type: "uint256";
771 },
772 {
773 internalType: "uint256";
774 name: "maxPriorityFeePerGas";
775 type: "uint256";
776 },
777 {
778 internalType: "bytes";
779 name: "paymasterAndData";
780 type: "bytes";
781 },
782 {
783 internalType: "bytes";
784 name: "signature";
785 type: "bytes";
786 },
787 ];
788 internalType: "struct UserOperation";
789 name: "userOp";
790 type: "tuple";
791 },
792 {
793 internalType: "bytes32";
794 name: "userOpHash";
795 type: "bytes32";
796 },
797 ];
798 name: "userOpValidationFunction";
799 outputs: readonly [
800 {
801 internalType: "uint256";
802 name: "";
803 type: "uint256";
804 },
805 ];
806 stateMutability: "view";
807 type: "function";
808 },
809 {
810 anonymous: false;
811 inputs: readonly [
812 {
813 indexed: true;
814 internalType: "address";
815 name: "account";
816 type: "address";
817 },
818 {
819 indexed: false;
820 internalType: "address[]";
821 name: "addedOwners";
822 type: "address[]";
823 },
824 {
825 indexed: false;
826 internalType: "address[]";
827 name: "removedOwners";
828 type: "address[]";
829 },
830 ];
831 name: "OwnerUpdated";
832 type: "event";
833 },
834 {
835 inputs: readonly [];
836 name: "AlreadyInitialized";
837 type: "error";
838 },
839 {
840 inputs: readonly [];
841 name: "EmptyOwnersNotAllowed";
842 type: "error";
843 },
844 {
845 inputs: readonly [];
846 name: "InvalidAction";
847 type: "error";
848 },
849 {
850 inputs: readonly [
851 {
852 internalType: "address";
853 name: "owner";
854 type: "address";
855 },
856 ];
857 name: "InvalidOwner";
858 type: "error";
859 },
860 {
861 inputs: readonly [];
862 name: "NotAuthorized";
863 type: "error";
864 },
865 {
866 inputs: readonly [
867 {
868 internalType: "address";
869 name: "caller";
870 type: "address";
871 },
872 ];
873 name: "NotContractCaller";
874 type: "error";
875 },
876 {
877 inputs: readonly [
878 {
879 internalType: "bytes4";
880 name: "selector";
881 type: "bytes4";
882 },
883 {
884 internalType: "uint8";
885 name: "functionId";
886 type: "uint8";
887 },
888 ];
889 name: "NotImplemented";
890 type: "error";
891 },
892 {
893 inputs: readonly [];
894 name: "NotInitialized";
895 type: "error";
896 },
897 {
898 inputs: readonly [
899 {
900 internalType: "address";
901 name: "owner";
902 type: "address";
903 },
904 ];
905 name: "OwnerDoesNotExist";
906 type: "error";
907 },
908];

Defined in: account-kit/smart-contracts/src/msca/plugins/multi-owner/plugin.ts:378