interface AirSwapInterface {
    /// @dev Mapping of order hash to bool (true = already filled).
    function fills(
        bytes32 hash
    ) external view returns (bool);

    /// @dev Fills an order by transferring tokens between (maker or escrow) and taker.
    /// Maker is given tokenA to taker.
    function fill(
        address makerAddress,
        uint makerAmount,
        address makerToken,
        address takerAddress,
        uint takerAmount,
        address takerToken,
        uint256 expiration,
        uint256 nonce,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external payable;
}
/**
 * @title AirSwap interface.
 */
function fill(
    address makerAddress,
    uint makerAmount,
    address makerToken,
    address takerAddress,
    uint takerAmount,
    address takerToken,
    uint256 expiration,
    uint256 nonce,
    uint8 v,
    bytes32 r,
    bytes32 s
) external payable;

/// @dev Fills an order by transferring tokens between (maker or escrow) and taker.
/// Maker is given tokenA to taker.