SessionKeyPluginAbi

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

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/plugin.d.ts:139