Alchemy Logo

UpgradeableModularAccountAbi

const UpgradeableModularAccountAbi: readonly [
  {
    inputs: readonly [
      {
        internalType: "contract IEntryPoint";
        name: "anEntryPoint";
        type: "address";
      },
    ];
    stateMutability: "nonpayable";
    type: "constructor";
  },
  {
    stateMutability: "payable";
    type: "fallback";
  },
  {
    stateMutability: "payable";
    type: "receive";
  },
  {
    inputs: readonly [];
    name: "entryPoint";
    outputs: readonly [
      {
        internalType: "contract IEntryPoint";
        name: "";
        type: "address";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "target";
        type: "address";
      },
      {
        internalType: "uint256";
        name: "value";
        type: "uint256";
      },
      {
        internalType: "bytes";
        name: "data";
        type: "bytes";
      },
    ];
    name: "execute";
    outputs: readonly [
      {
        internalType: "bytes";
        name: "result";
        type: "bytes";
      },
    ];
    stateMutability: "payable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        components: readonly [
          {
            internalType: "address";
            name: "target";
            type: "address";
          },
          {
            internalType: "uint256";
            name: "value";
            type: "uint256";
          },
          {
            internalType: "bytes";
            name: "data";
            type: "bytes";
          },
        ];
        internalType: "struct Call[]";
        name: "calls";
        type: "tuple[]";
      },
    ];
    name: "executeBatch";
    outputs: readonly [
      {
        internalType: "bytes[]";
        name: "results";
        type: "bytes[]";
      },
    ];
    stateMutability: "payable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes";
        name: "data";
        type: "bytes";
      },
    ];
    name: "executeFromPlugin";
    outputs: readonly [
      {
        internalType: "bytes";
        name: "returnData";
        type: "bytes";
      },
    ];
    stateMutability: "payable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "target";
        type: "address";
      },
      {
        internalType: "uint256";
        name: "value";
        type: "uint256";
      },
      {
        internalType: "bytes";
        name: "data";
        type: "bytes";
      },
    ];
    name: "executeFromPluginExternal";
    outputs: readonly [
      {
        internalType: "bytes";
        name: "";
        type: "bytes";
      },
    ];
    stateMutability: "payable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "getExecutionFunctionConfig";
    outputs: readonly [
      {
        components: readonly [
          {
            internalType: "address";
            name: "plugin";
            type: "address";
          },
          {
            internalType: "FunctionReference";
            name: "userOpValidationFunction";
            type: "bytes21";
          },
          {
            internalType: "FunctionReference";
            name: "runtimeValidationFunction";
            type: "bytes21";
          },
        ];
        internalType: "struct IAccountLoupe.ExecutionFunctionConfig";
        name: "config";
        type: "tuple";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "getExecutionHooks";
    outputs: readonly [
      {
        components: readonly [
          {
            internalType: "FunctionReference";
            name: "preExecHook";
            type: "bytes21";
          },
          {
            internalType: "FunctionReference";
            name: "postExecHook";
            type: "bytes21";
          },
        ];
        internalType: "struct IAccountLoupe.ExecutionHooks[]";
        name: "execHooks";
        type: "tuple[]";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [];
    name: "getInstalledPlugins";
    outputs: readonly [
      {
        internalType: "address[]";
        name: "pluginAddresses";
        type: "address[]";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [];
    name: "getNonce";
    outputs: readonly [
      {
        internalType: "uint256";
        name: "";
        type: "uint256";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "getPreValidationHooks";
    outputs: readonly [
      {
        internalType: "FunctionReference[]";
        name: "preUserOpValidationHooks";
        type: "bytes21[]";
      },
      {
        internalType: "FunctionReference[]";
        name: "preRuntimeValidationHooks";
        type: "bytes21[]";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address[]";
        name: "plugins";
        type: "address[]";
      },
      {
        internalType: "bytes";
        name: "pluginInitData";
        type: "bytes";
      },
    ];
    name: "initialize";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "bytes32";
        name: "manifestHash";
        type: "bytes32";
      },
      {
        internalType: "bytes";
        name: "pluginInstallData";
        type: "bytes";
      },
      {
        internalType: "FunctionReference[]";
        name: "dependencies";
        type: "bytes21[]";
      },
    ];
    name: "installPlugin";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "operator";
        type: "address";
      },
      {
        internalType: "address";
        name: "from";
        type: "address";
      },
      {
        internalType: "uint256[]";
        name: "ids";
        type: "uint256[]";
      },
      {
        internalType: "uint256[]";
        name: "values";
        type: "uint256[]";
      },
      {
        internalType: "bytes";
        name: "data";
        type: "bytes";
      },
    ];
    name: "onERC1155BatchReceived";
    outputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "operator";
        type: "address";
      },
      {
        internalType: "address";
        name: "from";
        type: "address";
      },
      {
        internalType: "uint256";
        name: "id";
        type: "uint256";
      },
      {
        internalType: "uint256";
        name: "value";
        type: "uint256";
      },
      {
        internalType: "bytes";
        name: "data";
        type: "bytes";
      },
    ];
    name: "onERC1155Received";
    outputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "operator";
        type: "address";
      },
      {
        internalType: "address";
        name: "from";
        type: "address";
      },
      {
        internalType: "uint256";
        name: "tokenId";
        type: "uint256";
      },
      {
        internalType: "bytes";
        name: "data";
        type: "bytes";
      },
    ];
    name: "onERC721Received";
    outputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [];
    name: "proxiableUUID";
    outputs: readonly [
      {
        internalType: "bytes32";
        name: "";
        type: "bytes32";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "interfaceId";
        type: "bytes4";
      },
    ];
    name: "supportsInterface";
    outputs: readonly [
      {
        internalType: "bool";
        name: "";
        type: "bool";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "operator";
        type: "address";
      },
      {
        internalType: "address";
        name: "from";
        type: "address";
      },
      {
        internalType: "address";
        name: "to";
        type: "address";
      },
      {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
      },
      {
        internalType: "bytes";
        name: "userData";
        type: "bytes";
      },
      {
        internalType: "bytes";
        name: "operatorData";
        type: "bytes";
      },
    ];
    name: "tokensReceived";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "bytes";
        name: "config";
        type: "bytes";
      },
      {
        internalType: "bytes";
        name: "pluginUninstallData";
        type: "bytes";
      },
    ];
    name: "uninstallPlugin";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "newImplementation";
        type: "address";
      },
      {
        internalType: "bytes";
        name: "data";
        type: "bytes";
      },
    ];
    name: "upgradeToAndCall";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        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";
      },
      {
        internalType: "uint256";
        name: "missingAccountFunds";
        type: "uint256";
      },
    ];
    name: "validateUserOp";
    outputs: readonly [
      {
        internalType: "uint256";
        name: "validationData";
        type: "uint256";
      },
    ];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: true;
        internalType: "contract IEntryPoint";
        name: "entryPoint";
        type: "address";
      },
    ];
    name: "ModularAccountInitialized";
    type: "event";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: true;
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        indexed: false;
        internalType: "bytes32";
        name: "manifestHash";
        type: "bytes32";
      },
      {
        indexed: false;
        internalType: "FunctionReference[]";
        name: "dependencies";
        type: "bytes21[]";
      },
    ];
    name: "PluginInstalled";
    type: "event";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: true;
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        indexed: true;
        internalType: "bool";
        name: "onUninstallSucceeded";
        type: "bool";
      },
    ];
    name: "PluginUninstalled";
    type: "event";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: true;
        internalType: "address";
        name: "implementation";
        type: "address";
      },
    ];
    name: "Upgraded";
    type: "event";
  },
  {
    inputs: readonly [];
    name: "AlreadyInitialized";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "AlreadyInitializing";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "AlwaysDenyRule";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "ArrayLengthMismatch";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
      {
        internalType: "FunctionReference";
        name: "hook";
        type: "bytes21";
      },
    ];
    name: "DuplicateHookLimitExceeded";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
      {
        internalType: "FunctionReference";
        name: "hook";
        type: "bytes21";
      },
    ];
    name: "DuplicatePreRuntimeValidationHookLimitExceeded";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
      {
        internalType: "FunctionReference";
        name: "hook";
        type: "bytes21";
      },
    ];
    name: "DuplicatePreUserOpValidationHookLimitExceeded";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "Erc4337FunctionNotAllowed";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "address";
        name: "target";
        type: "address";
      },
      {
        internalType: "uint256";
        name: "value";
        type: "uint256";
      },
      {
        internalType: "bytes";
        name: "data";
        type: "bytes";
      },
    ];
    name: "ExecFromPluginExternalNotPermitted";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "ExecFromPluginNotPermitted";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "ExecutionFunctionAlreadySet";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "IPluginFunctionNotAllowed";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "InterfaceNotAllowed";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "InvalidDependenciesProvided";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "InvalidPluginManifest";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "dependency";
        type: "address";
      },
    ];
    name: "MissingPluginDependency";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "NativeFunctionNotAllowed";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
    ];
    name: "NativeTokenSpendingNotPermitted";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "NullFunctionReference";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
    ];
    name: "PluginAlreadyInstalled";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
    ];
    name: "PluginCallDenied";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
    ];
    name: "PluginDependencyViolation";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "bytes";
        name: "revertReason";
        type: "bytes";
      },
    ];
    name: "PluginInstallCallbackFailed";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
    ];
    name: "PluginInterfaceNotSupported";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
    ];
    name: "PluginNotInstalled";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "bytes";
        name: "revertReason";
        type: "bytes";
      },
    ];
    name: "PluginUninstallCallbackFailed";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "uint8";
        name: "functionId";
        type: "uint8";
      },
      {
        internalType: "bytes";
        name: "revertReason";
        type: "bytes";
      },
    ];
    name: "PostExecHookReverted";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "uint8";
        name: "functionId";
        type: "uint8";
      },
      {
        internalType: "bytes";
        name: "revertReason";
        type: "bytes";
      },
    ];
    name: "PreExecHookReverted";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "uint8";
        name: "functionId";
        type: "uint8";
      },
      {
        internalType: "bytes";
        name: "revertReason";
        type: "bytes";
      },
    ];
    name: "PreRuntimeValidationHookFailed";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
      {
        internalType: "FunctionReference";
        name: "validationFunction";
        type: "bytes21";
      },
    ];
    name: "RuntimeValidationFunctionAlreadySet";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "RuntimeValidationFunctionMissing";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "uint8";
        name: "functionId";
        type: "uint8";
      },
      {
        internalType: "bytes";
        name: "revertReason";
        type: "bytes";
      },
    ];
    name: "RuntimeValidationFunctionReverted";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "UnauthorizedCallContext";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "plugin";
        type: "address";
      },
      {
        internalType: "uint8";
        name: "functionId";
        type: "uint8";
      },
      {
        internalType: "address";
        name: "aggregator";
        type: "address";
      },
    ];
    name: "UnexpectedAggregator";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "UnrecognizedFunction";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "UpgradeFailed";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "UserOpNotFromEntryPoint";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
      {
        internalType: "FunctionReference";
        name: "validationFunction";
        type: "bytes21";
      },
    ];
    name: "UserOpValidationFunctionAlreadySet";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "UserOpValidationFunctionMissing";
    type: "error";
  },
];

Defined in: account-kit/smart-contracts/dist/types/src/msca/abis/UpgradeableModularAccount.d.ts:1

Was this page helpful?