Parameters for the simulateHandleOp method

interface SimulateHandleOpParamsV6 {
    stateOverrides?: StateOverrideSet;
    targetAddress: `0x${string}`;
    targetCallData: `0x${string}`;
    userOperation: {
        callData: `0x${string}`;
        callGasLimit: bigint;
        initCode: `0x${string}`;
        maxFeePerGas: bigint;
        maxPriorityFeePerGas: bigint;
        nonce: bigint;
        paymasterAndData: `0x${string}`;
        preVerificationGas: bigint;
        sender: `0x${string}`;
        signature: `0x${string}`;
        verificationGasLimit: bigint;
    };
}

Properties

stateOverrides?: StateOverrideSet

Optional state overrides to modify blockchain state during simulation

targetAddress: `0x${string}`

The target contract address for the simulation

targetCallData: `0x${string}`

The calldata to be executed on the target contract

userOperation: {
    callData: `0x${string}`;
    callGasLimit: bigint;
    initCode: `0x${string}`;
    maxFeePerGas: bigint;
    maxPriorityFeePerGas: bigint;
    nonce: bigint;
    paymasterAndData: `0x${string}`;
    preVerificationGas: bigint;
    sender: `0x${string}`;
    signature: `0x${string}`;
    verificationGasLimit: bigint;
}

The user operation to simulate

Type declaration

  • callData: `0x${string}`
  • callGasLimit: bigint

    Gas limit for the main execution call

  • initCode: `0x${string}`
  • maxFeePerGas: bigint

    Maximum total fee per gas unit

  • maxPriorityFeePerGas: bigint

    Maximum priority fee per gas unit

  • nonce: bigint

    Account nonce

  • paymasterAndData: `0x${string}`
  • preVerificationGas: bigint

    Gas overhead for pre-verification operations

  • sender: `0x${string}`
  • signature: `0x${string}`
  • verificationGasLimit: bigint

    Gas limit for the verification phase