// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.25;
contract EscrowOfframp {
    struct ClientArgs {
        address client;
    }
    /// @notice This will lock `_amount` in escrow
    /// @param _amount coin amount to off ramp
    /// @param _tradeFee Onboard trade fee
    function createOfframpOrder(uint256 _amount, uint256 _tradeFee ) external {
        // Create off-ramp order and keep record of trade fee
        // Lock trade amount in escrow
    }
    /// @notice It is expected that order amount has been pre-approved by customer to escrow account
    /// @param _token ERC20 token address
    /// @param _amount coin amount to off ramp
    function createOfframpOrder(IERC20 _token, uint256 _amount, uint256 _tradeFee ) external {
        // Verify if amount is approved by user to be locked in escrow
        // Keep trade record including the fee to be charged
        // Lock trade amount in escrow
    }
    // @notice Mediator confirms order in dispute cases
    function confirmOfframpOrder(ClientArgs memory args) external returns(bool success) {
        // Ensure that order exists for args client
        // Execute transfer of asset to merchant escrow account
        // Transfer trade fee to designated fee recipient address
    }
}