Alchemy Logo

semiModularAccountBytecodeAbi

const semiModularAccountBytecodeAbi: readonly [
  {
    inputs: readonly [
      {
        internalType: "contract IEntryPoint";
        name: "entryPoint";
        type: "address";
      },
      {
        internalType: "contract ExecutionInstallDelegate";
        name: "executionInstallDelegate";
        type: "address";
      },
    ];
    stateMutability: "nonpayable";
    type: "constructor";
  },
  {
    stateMutability: "payable";
    type: "fallback";
  },
  {
    stateMutability: "payable";
    type: "receive";
  },
  {
    inputs: readonly [];
    name: "accountId";
    outputs: readonly [
      {
        internalType: "string";
        name: "";
        type: "string";
      },
    ];
    stateMutability: "pure";
    type: "function";
  },
  {
    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 [
      {
        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: "bytes32";
            name: "accountGasLimits";
            type: "bytes32";
          },
          {
            internalType: "uint256";
            name: "preVerificationGas";
            type: "uint256";
          },
          {
            internalType: "bytes32";
            name: "gasFees";
            type: "bytes32";
          },
          {
            internalType: "bytes";
            name: "paymasterAndData";
            type: "bytes";
          },
          {
            internalType: "bytes";
            name: "signature";
            type: "bytes";
          },
        ];
        internalType: "struct PackedUserOperation";
        name: "userOp";
        type: "tuple";
      },
      {
        internalType: "bytes32";
        name: "";
        type: "bytes32";
      },
    ];
    name: "executeUserOp";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes";
        name: "data";
        type: "bytes";
      },
      {
        internalType: "bytes";
        name: "authorization";
        type: "bytes";
      },
    ];
    name: "executeWithRuntimeValidation";
    outputs: readonly [
      {
        internalType: "bytes";
        name: "";
        type: "bytes";
      },
    ];
    stateMutability: "payable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "getExecutionData";
    outputs: readonly [
      {
        components: readonly [
          {
            internalType: "address";
            name: "module";
            type: "address";
          },
          {
            internalType: "bool";
            name: "skipRuntimeValidation";
            type: "bool";
          },
          {
            internalType: "bool";
            name: "allowGlobalValidation";
            type: "bool";
          },
          {
            internalType: "HookConfig[]";
            name: "executionHooks";
            type: "bytes25[]";
          },
        ];
        internalType: "struct ExecutionDataView";
        name: "data";
        type: "tuple";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [];
    name: "getFallbackSignerData";
    outputs: readonly [
      {
        internalType: "address";
        name: "";
        type: "address";
      },
      {
        internalType: "bool";
        name: "";
        type: "bool";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "ModuleEntity";
        name: "validationFunction";
        type: "bytes24";
      },
    ];
    name: "getValidationData";
    outputs: readonly [
      {
        components: readonly [
          {
            internalType: "ValidationFlags";
            name: "validationFlags";
            type: "uint8";
          },
          {
            internalType: "HookConfig[]";
            name: "validationHooks";
            type: "bytes25[]";
          },
          {
            internalType: "HookConfig[]";
            name: "executionHooks";
            type: "bytes25[]";
          },
          {
            internalType: "bytes4[]";
            name: "selectors";
            type: "bytes4[]";
          },
        ];
        internalType: "struct ValidationDataView";
        name: "data";
        type: "tuple";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "module";
        type: "address";
      },
      {
        components: readonly [
          {
            components: readonly [
              {
                internalType: "bytes4";
                name: "executionSelector";
                type: "bytes4";
              },
              {
                internalType: "bool";
                name: "skipRuntimeValidation";
                type: "bool";
              },
              {
                internalType: "bool";
                name: "allowGlobalValidation";
                type: "bool";
              },
            ];
            internalType: "struct ManifestExecutionFunction[]";
            name: "executionFunctions";
            type: "tuple[]";
          },
          {
            components: readonly [
              {
                internalType: "bytes4";
                name: "executionSelector";
                type: "bytes4";
              },
              {
                internalType: "uint32";
                name: "entityId";
                type: "uint32";
              },
              {
                internalType: "bool";
                name: "isPreHook";
                type: "bool";
              },
              {
                internalType: "bool";
                name: "isPostHook";
                type: "bool";
              },
            ];
            internalType: "struct ManifestExecutionHook[]";
            name: "executionHooks";
            type: "tuple[]";
          },
          {
            internalType: "bytes4[]";
            name: "interfaceIds";
            type: "bytes4[]";
          },
        ];
        internalType: "struct ExecutionManifest";
        name: "manifest";
        type: "tuple";
      },
      {
        internalType: "bytes";
        name: "moduleInstallData";
        type: "bytes";
      },
    ];
    name: "installExecution";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "ValidationConfig";
        name: "validationConfig";
        type: "bytes25";
      },
      {
        internalType: "bytes4[]";
        name: "selectors";
        type: "bytes4[]";
      },
      {
        internalType: "bytes";
        name: "installData";
        type: "bytes";
      },
      {
        internalType: "bytes[]";
        name: "hooks";
        type: "bytes[]";
      },
    ];
    name: "installValidation";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes32";
        name: "hash";
        type: "bytes32";
      },
      {
        internalType: "bytes";
        name: "signature";
        type: "bytes";
      },
    ];
    name: "isValidSignature";
    outputs: readonly [
      {
        internalType: "bytes4";
        name: "";
        type: "bytes4";
      },
    ];
    stateMutability: "view";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "";
        type: "address";
      },
      {
        internalType: "address";
        name: "";
        type: "address";
      },
      {
        internalType: "uint256[]";
        name: "";
        type: "uint256[]";
      },
      {
        internalType: "uint256[]";
        name: "";
        type: "uint256[]";
      },
      {
        internalType: "bytes";
        name: "";
        type: "bytes";
      },
    ];
    name: "onERC1155BatchReceived";
    outputs: readonly [
      {
        internalType: "bytes4";
        name: "";
        type: "bytes4";
      },
    ];
    stateMutability: "pure";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "";
        type: "address";
      },
      {
        internalType: "address";
        name: "";
        type: "address";
      },
      {
        internalType: "uint256";
        name: "";
        type: "uint256";
      },
      {
        internalType: "uint256";
        name: "";
        type: "uint256";
      },
      {
        internalType: "bytes";
        name: "";
        type: "bytes";
      },
    ];
    name: "onERC1155Received";
    outputs: readonly [
      {
        internalType: "bytes4";
        name: "";
        type: "bytes4";
      },
    ];
    stateMutability: "pure";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "";
        type: "address";
      },
      {
        internalType: "address";
        name: "";
        type: "address";
      },
      {
        internalType: "uint256";
        name: "";
        type: "uint256";
      },
      {
        internalType: "bytes";
        name: "";
        type: "bytes";
      },
    ];
    name: "onERC721Received";
    outputs: readonly [
      {
        internalType: "bytes4";
        name: "";
        type: "bytes4";
      },
    ];
    stateMutability: "pure";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "uint256";
        name: "value";
        type: "uint256";
      },
      {
        internalType: "bytes";
        name: "initCode";
        type: "bytes";
      },
      {
        internalType: "bool";
        name: "isCreate2";
        type: "bool";
      },
      {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
      },
    ];
    name: "performCreate";
    outputs: readonly [
      {
        internalType: "address";
        name: "createdAddr";
        type: "address";
      },
    ];
    stateMutability: "payable";
    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: "module";
        type: "address";
      },
      {
        components: readonly [
          {
            components: readonly [
              {
                internalType: "bytes4";
                name: "executionSelector";
                type: "bytes4";
              },
              {
                internalType: "bool";
                name: "skipRuntimeValidation";
                type: "bool";
              },
              {
                internalType: "bool";
                name: "allowGlobalValidation";
                type: "bool";
              },
            ];
            internalType: "struct ManifestExecutionFunction[]";
            name: "executionFunctions";
            type: "tuple[]";
          },
          {
            components: readonly [
              {
                internalType: "bytes4";
                name: "executionSelector";
                type: "bytes4";
              },
              {
                internalType: "uint32";
                name: "entityId";
                type: "uint32";
              },
              {
                internalType: "bool";
                name: "isPreHook";
                type: "bool";
              },
              {
                internalType: "bool";
                name: "isPostHook";
                type: "bool";
              },
            ];
            internalType: "struct ManifestExecutionHook[]";
            name: "executionHooks";
            type: "tuple[]";
          },
          {
            internalType: "bytes4[]";
            name: "interfaceIds";
            type: "bytes4[]";
          },
        ];
        internalType: "struct ExecutionManifest";
        name: "manifest";
        type: "tuple";
      },
      {
        internalType: "bytes";
        name: "moduleUninstallData";
        type: "bytes";
      },
    ];
    name: "uninstallExecution";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "ModuleEntity";
        name: "validationFunction";
        type: "bytes24";
      },
      {
        internalType: "bytes";
        name: "uninstallData";
        type: "bytes";
      },
      {
        internalType: "bytes[]";
        name: "hookUninstallData";
        type: "bytes[]";
      },
    ];
    name: "uninstallValidation";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "fallbackSigner";
        type: "address";
      },
      {
        internalType: "bool";
        name: "isDisabled";
        type: "bool";
      },
    ];
    name: "updateFallbackSignerData";
    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: "bytes32";
            name: "accountGasLimits";
            type: "bytes32";
          },
          {
            internalType: "uint256";
            name: "preVerificationGas";
            type: "uint256";
          },
          {
            internalType: "bytes32";
            name: "gasFees";
            type: "bytes32";
          },
          {
            internalType: "bytes";
            name: "paymasterAndData";
            type: "bytes";
          },
          {
            internalType: "bytes";
            name: "signature";
            type: "bytes";
          },
        ];
        internalType: "struct PackedUserOperation";
        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: "address";
        name: "module";
        type: "address";
      },
      {
        components: readonly [
          {
            components: readonly [
              {
                internalType: "bytes4";
                name: "executionSelector";
                type: "bytes4";
              },
              {
                internalType: "bool";
                name: "skipRuntimeValidation";
                type: "bool";
              },
              {
                internalType: "bool";
                name: "allowGlobalValidation";
                type: "bool";
              },
            ];
            internalType: "struct ManifestExecutionFunction[]";
            name: "executionFunctions";
            type: "tuple[]";
          },
          {
            components: readonly [
              {
                internalType: "bytes4";
                name: "executionSelector";
                type: "bytes4";
              },
              {
                internalType: "uint32";
                name: "entityId";
                type: "uint32";
              },
              {
                internalType: "bool";
                name: "isPreHook";
                type: "bool";
              },
              {
                internalType: "bool";
                name: "isPostHook";
                type: "bool";
              },
            ];
            internalType: "struct ManifestExecutionHook[]";
            name: "executionHooks";
            type: "tuple[]";
          },
          {
            internalType: "bytes4[]";
            name: "interfaceIds";
            type: "bytes4[]";
          },
        ];
        indexed: false;
        internalType: "struct ExecutionManifest";
        name: "manifest";
        type: "tuple";
      },
    ];
    name: "ExecutionInstalled";
    type: "event";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: true;
        internalType: "address";
        name: "module";
        type: "address";
      },
      {
        indexed: false;
        internalType: "bool";
        name: "onUninstallSucceeded";
        type: "bool";
      },
      {
        components: readonly [
          {
            components: readonly [
              {
                internalType: "bytes4";
                name: "executionSelector";
                type: "bytes4";
              },
              {
                internalType: "bool";
                name: "skipRuntimeValidation";
                type: "bool";
              },
              {
                internalType: "bool";
                name: "allowGlobalValidation";
                type: "bool";
              },
            ];
            internalType: "struct ManifestExecutionFunction[]";
            name: "executionFunctions";
            type: "tuple[]";
          },
          {
            components: readonly [
              {
                internalType: "bytes4";
                name: "executionSelector";
                type: "bytes4";
              },
              {
                internalType: "uint32";
                name: "entityId";
                type: "uint32";
              },
              {
                internalType: "bool";
                name: "isPreHook";
                type: "bool";
              },
              {
                internalType: "bool";
                name: "isPostHook";
                type: "bool";
              },
            ];
            internalType: "struct ManifestExecutionHook[]";
            name: "executionHooks";
            type: "tuple[]";
          },
          {
            internalType: "bytes4[]";
            name: "interfaceIds";
            type: "bytes4[]";
          },
        ];
        indexed: false;
        internalType: "struct ExecutionManifest";
        name: "manifest";
        type: "tuple";
      },
    ];
    name: "ExecutionUninstalled";
    type: "event";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: true;
        internalType: "address";
        name: "newFallbackSigner";
        type: "address";
      },
      {
        indexed: false;
        internalType: "bool";
        name: "isDisabled";
        type: "bool";
      },
    ];
    name: "FallbackSignerUpdated";
    type: "event";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: false;
        internalType: "uint64";
        name: "version";
        type: "uint64";
      },
    ];
    name: "Initialized";
    type: "event";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: true;
        internalType: "address";
        name: "implementation";
        type: "address";
      },
    ];
    name: "Upgraded";
    type: "event";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: true;
        internalType: "address";
        name: "module";
        type: "address";
      },
      {
        indexed: true;
        internalType: "uint32";
        name: "entityId";
        type: "uint32";
      },
    ];
    name: "ValidationInstalled";
    type: "event";
  },
  {
    anonymous: false;
    inputs: readonly [
      {
        indexed: true;
        internalType: "address";
        name: "module";
        type: "address";
      },
      {
        indexed: true;
        internalType: "uint32";
        name: "entityId";
        type: "uint32";
      },
      {
        indexed: false;
        internalType: "bool";
        name: "onUninstallSucceeded";
        type: "bool";
      },
    ];
    name: "ValidationUninstalled";
    type: "event";
  },
  {
    inputs: readonly [];
    name: "ArrayLengthMismatch";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "CreateFailed";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "DeferredActionSignatureInvalid";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "DeferredValidationHasValidationHooks";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "HookConfig";
        name: "hookConfig";
        type: "bytes25";
      },
    ];
    name: "ExecutionHookAlreadySet";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "FallbackSignerDisabled";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "FallbackSignerMismatch";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "FallbackValidationInstallationNotAllowed";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "module";
        type: "address";
      },
    ];
    name: "InterfaceNotSupported";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "InvalidInitialization";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "InvalidSignatureType";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "address";
        name: "module";
        type: "address";
      },
      {
        internalType: "bytes";
        name: "revertReason";
        type: "bytes";
      },
    ];
    name: "ModuleInstallCallbackFailed";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "NonCanonicalEncoding";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "NotEntryPoint";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "PreValidationHookDuplicate";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "RequireUserOperationContext";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "SegmentOutOfOrder";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "SelfCallRecursionDepthExceeded";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "ModuleEntity";
        name: "validationFunction";
        type: "bytes24";
      },
    ];
    name: "SignatureValidationInvalid";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "UnauthorizedCallContext";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "ModuleEntity";
        name: "validationFunction";
        type: "bytes24";
      },
      {
        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 [
      {
        internalType: "ModuleEntity";
        name: "validationFunction";
        type: "bytes24";
      },
    ];
    name: "UserOpValidationInvalid";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
      {
        internalType: "ModuleEntity";
        name: "validationFunction";
        type: "bytes24";
      },
    ];
    name: "ValidationAlreadySet";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "ValidationAssocHookLimitExceeded";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "ValidationEntityIdInUse";
    type: "error";
  },
  {
    inputs: readonly [
      {
        internalType: "bytes4";
        name: "selector";
        type: "bytes4";
      },
    ];
    name: "ValidationFunctionMissing";
    type: "error";
  },
  {
    inputs: readonly [];
    name: "ValidationSignatureSegmentMissing";
    type: "error";
  },
];

Defined in: account-kit/smart-contracts/src/ma-v2/abis/semiModularAccountBytecodeAbi.ts:1

Was this page helpful?