SessionKeyPluginAbi
1 const 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