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