const IPluginAbi: readonly [
{
inputs: readonly [
{
internalType: "bytes";
name: "data";
type: "bytes";
},
];
name: "onInstall";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
},
{
inputs: readonly [
{
internalType: "bytes";
name: "data";
type: "bytes";
},
];
name: "onUninstall";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
},
{
inputs: readonly [];
name: "pluginManifest";
outputs: readonly [
{
components: readonly [
{
internalType: "bytes4[]";
name: "interfaceIds";
type: "bytes4[]";
},
{
internalType: "bytes4[]";
name: "dependencyInterfaceIds";
type: "bytes4[]";
},
{
internalType: "bytes4[]";
name: "executionFunctions";
type: "bytes4[]";
},
{
internalType: "bytes4[]";
name: "permittedExecutionSelectors";
type: "bytes4[]";
},
{
internalType: "bool";
name: "permitAnyExternalAddress";
type: "bool";
},
{
internalType: "bool";
name: "canSpendNativeToken";
type: "bool";
},
{
components: readonly [
{
internalType: "address";
name: "externalAddress";
type: "address";
},
{
internalType: "bool";
name: "permitAnySelector";
type: "bool";
},
{
internalType: "bytes4[]";
name: "selectors";
type: "bytes4[]";
},
];
internalType: "struct ManifestExternalCallPermission[]";
name: "permittedExternalCalls";
type: "tuple[]";
},
{
components: readonly [
{
internalType: "bytes4";
name: "executionSelector";
type: "bytes4";
},
{
components: readonly [
{
internalType: "enum ManifestAssociatedFunctionType";
name: "functionType";
type: "uint8";
},
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "uint256";
name: "dependencyIndex";
type: "uint256";
},
];
internalType: "struct ManifestFunction";
name: "associatedFunction";
type: "tuple";
},
];
internalType: "struct ManifestAssociatedFunction[]";
name: "userOpValidationFunctions";
type: "tuple[]";
},
{
components: readonly [
{
internalType: "bytes4";
name: "executionSelector";
type: "bytes4";
},
{
components: readonly [
{
internalType: "enum ManifestAssociatedFunctionType";
name: "functionType";
type: "uint8";
},
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "uint256";
name: "dependencyIndex";
type: "uint256";
},
];
internalType: "struct ManifestFunction";
name: "associatedFunction";
type: "tuple";
},
];
internalType: "struct ManifestAssociatedFunction[]";
name: "runtimeValidationFunctions";
type: "tuple[]";
},
{
components: readonly [
{
internalType: "bytes4";
name: "executionSelector";
type: "bytes4";
},
{
components: readonly [
{
internalType: "enum ManifestAssociatedFunctionType";
name: "functionType";
type: "uint8";
},
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "uint256";
name: "dependencyIndex";
type: "uint256";
},
];
internalType: "struct ManifestFunction";
name: "associatedFunction";
type: "tuple";
},
];
internalType: "struct ManifestAssociatedFunction[]";
name: "preUserOpValidationHooks";
type: "tuple[]";
},
{
components: readonly [
{
internalType: "bytes4";
name: "executionSelector";
type: "bytes4";
},
{
components: readonly [
{
internalType: "enum ManifestAssociatedFunctionType";
name: "functionType";
type: "uint8";
},
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "uint256";
name: "dependencyIndex";
type: "uint256";
},
];
internalType: "struct ManifestFunction";
name: "associatedFunction";
type: "tuple";
},
];
internalType: "struct ManifestAssociatedFunction[]";
name: "preRuntimeValidationHooks";
type: "tuple[]";
},
{
components: readonly [
{
internalType: "bytes4";
name: "executionSelector";
type: "bytes4";
},
{
components: readonly [
{
internalType: "enum ManifestAssociatedFunctionType";
name: "functionType";
type: "uint8";
},
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "uint256";
name: "dependencyIndex";
type: "uint256";
},
];
internalType: "struct ManifestFunction";
name: "preExecHook";
type: "tuple";
},
{
components: readonly [
{
internalType: "enum ManifestAssociatedFunctionType";
name: "functionType";
type: "uint8";
},
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "uint256";
name: "dependencyIndex";
type: "uint256";
},
];
internalType: "struct ManifestFunction";
name: "postExecHook";
type: "tuple";
},
];
internalType: "struct ManifestExecutionHook[]";
name: "executionHooks";
type: "tuple[]";
},
];
internalType: "struct PluginManifest";
name: "";
type: "tuple";
},
];
stateMutability: "pure";
type: "function";
},
{
inputs: readonly [];
name: "pluginMetadata";
outputs: readonly [
{
components: readonly [
{
internalType: "string";
name: "name";
type: "string";
},
{
internalType: "string";
name: "version";
type: "string";
},
{
internalType: "string";
name: "author";
type: "string";
},
{
components: readonly [
{
internalType: "bytes4";
name: "functionSelector";
type: "bytes4";
},
{
internalType: "string";
name: "permissionDescription";
type: "string";
},
];
internalType: "struct SelectorPermission[]";
name: "permissionDescriptors";
type: "tuple[]";
},
];
internalType: "struct PluginMetadata";
name: "";
type: "tuple";
},
];
stateMutability: "pure";
type: "function";
},
{
inputs: readonly [
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "bytes";
name: "preExecHookData";
type: "bytes";
},
];
name: "postExecutionHook";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
},
{
inputs: readonly [
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "address";
name: "sender";
type: "address";
},
{
internalType: "uint256";
name: "value";
type: "uint256";
},
{
internalType: "bytes";
name: "data";
type: "bytes";
},
];
name: "preExecutionHook";
outputs: readonly [
{
internalType: "bytes";
name: "";
type: "bytes";
},
];
stateMutability: "nonpayable";
type: "function";
},
{
inputs: readonly [
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "address";
name: "sender";
type: "address";
},
{
internalType: "uint256";
name: "value";
type: "uint256";
},
{
internalType: "bytes";
name: "data";
type: "bytes";
},
];
name: "preRuntimeValidationHook";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
},
{
inputs: readonly [
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
components: readonly [
{
internalType: "address";
name: "sender";
type: "address";
},
{
internalType: "uint256";
name: "nonce";
type: "uint256";
},
{
internalType: "bytes";
name: "initCode";
type: "bytes";
},
{
internalType: "bytes";
name: "callData";
type: "bytes";
},
{
internalType: "uint256";
name: "callGasLimit";
type: "uint256";
},
{
internalType: "uint256";
name: "verificationGasLimit";
type: "uint256";
},
{
internalType: "uint256";
name: "preVerificationGas";
type: "uint256";
},
{
internalType: "uint256";
name: "maxFeePerGas";
type: "uint256";
},
{
internalType: "uint256";
name: "maxPriorityFeePerGas";
type: "uint256";
},
{
internalType: "bytes";
name: "paymasterAndData";
type: "bytes";
},
{
internalType: "bytes";
name: "signature";
type: "bytes";
},
];
internalType: "struct UserOperation";
name: "userOp";
type: "tuple";
},
{
internalType: "bytes32";
name: "userOpHash";
type: "bytes32";
},
];
name: "preUserOpValidationHook";
outputs: readonly [
{
internalType: "uint256";
name: "";
type: "uint256";
},
];
stateMutability: "nonpayable";
type: "function";
},
{
inputs: readonly [
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
internalType: "address";
name: "sender";
type: "address";
},
{
internalType: "uint256";
name: "value";
type: "uint256";
},
{
internalType: "bytes";
name: "data";
type: "bytes";
},
];
name: "runtimeValidationFunction";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
},
{
inputs: readonly [
{
internalType: "uint8";
name: "functionId";
type: "uint8";
},
{
components: readonly [
{
internalType: "address";
name: "sender";
type: "address";
},
{
internalType: "uint256";
name: "nonce";
type: "uint256";
},
{
internalType: "bytes";
name: "initCode";
type: "bytes";
},
{
internalType: "bytes";
name: "callData";
type: "bytes";
},
{
internalType: "uint256";
name: "callGasLimit";
type: "uint256";
},
{
internalType: "uint256";
name: "verificationGasLimit";
type: "uint256";
},
{
internalType: "uint256";
name: "preVerificationGas";
type: "uint256";
},
{
internalType: "uint256";
name: "maxFeePerGas";
type: "uint256";
},
{
internalType: "uint256";
name: "maxPriorityFeePerGas";
type: "uint256";
},
{
internalType: "bytes";
name: "paymasterAndData";
type: "bytes";
},
{
internalType: "bytes";
name: "signature";
type: "bytes";
},
];
internalType: "struct UserOperation";
name: "userOp";
type: "tuple";
},
{
internalType: "bytes32";
name: "userOpHash";
type: "bytes32";
},
];
name: "userOpValidationFunction";
outputs: readonly [
{
internalType: "uint256";
name: "";
type: "uint256";
},
];
stateMutability: "nonpayable";
type: "function";
},
];Defined in: account-kit/smart-contracts/src/msca/abis/IPlugin.ts:1