UNPKG

@owlprotocol/contracts-account-abstraction

Version:

ERC4337 Account Abstraction support for deploying relevant smart contracts and interacting with UserOps.

49 lines (48 loc) 1.9 kB
import { Address, StateOverride, Client, Hex } from "viem"; import { PackedUserOperation, ExecutionResult, TargetCallResult } from "../../models/index.js"; export type SimulateHandleOpResult<TypeResult extends "failed" | "execution" = "failed" | "execution"> = { result: TypeResult; data: TypeResult extends "failed" ? string : { callDataResult?: TargetCallResult; executionResult: ExecutionResult; }; code?: TypeResult extends "failed" ? number : undefined; }; /** * Similar to `simulateHandleOpV07` but reverts on error. * Also a higher-level abstraction as: * - targetAddress = userOp.sender * - targetCallData = userOp.callData * @param packedUserOperation * @param entryPoint * @param client * @param entryPointSimulationsAddress * @param stateOverride * @returns */ export declare function getExecutionResult(client: Client, parameters: { packedUserOperation: PackedUserOperation; entryPoint: Address; entryPointSimulationsAddress: Address; stateOverride?: StateOverride[number]; }): Promise<SimulateHandleOpResult<"execution">>; /** * Simulate UserOpV7. Low level function meant to align with Solidity interface and * decode revert data. * @param packedUserOperation * @param entryPoint * @param client * @param targetAddress currently all calls use userOp.sender but this is here to align with the interface * @param targetCallData currently all calls use userOp.callData but this is here to align with the interface * @param entryPointSimulationsAddress * @param stateOverride * @returns */ export declare function simulateHandleOpV07(client: Client, parameters: { packedUserOperation: PackedUserOperation; entryPoint: Address; targetAddress: Address; targetCallData: Hex; entryPointSimulationsAddress: Address; stateOverride?: StateOverride[number] | undefined; }): Promise<SimulateHandleOpResult>;