@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
TypeScript
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>;