ERC20SwapModule contract facilitates ERC20 token swaps based on predefined parameters.

Key Features

  • Secure ERC20 Swaps: Enables ERC20 swaps with security checks on input and output amounts.

  • Parameter Validation: Ensures swap parameters like deadlines and minimum amounts are respected.

  • Allowance Management: Uses forceApprove to manage allowances securely after swaps.

Error Definitions

  • Deadline: Raised when the swap operation exceeds the specified deadline.

  • SwapFailed: The swap operation did not execute successfully.

  • InvalidSwapAmounts: Input or output amounts don't meet the expected values.


  1. Swap Function

    • swap(SwapParams, address, bytes): Executes a token swap based on provided parameters.

      • params: Contains details of the swap operation:

        • tokenIn: The address of the input token.

        • tokenOut: The address of the output token.

        • amountIn: The amount of the input token to swap.

        • minAmountOut: The minimum acceptable amount of the output token.

        • deadline: The deadline for completing the swap.

      • to: Address of the swap target.

      • data: Call data required to execute the swap operation.

      • Returns: The response from the swap call.

      • Errors:

        • Deadline: If the current timestamp is past the deadline.

        • InvalidSwapAmounts: If the amount of tokens swapped does not match the specified input or output criteria.

        • SwapFailed: The swap operation failed to execute successfully.


  • ERC20SwapModuleSwap(SwapParams, address, bytes, uint256, bytes): Emitted after a swap is successfully executed.

    • params: The parameters used for the swap.

    • to: The address of the swap target.

    • data: The call data used for the swap.

    • timestamp: The timestamp when the swap was completed.

    • response: The response data returned from the swap operation.