Updated 5 days ago
    WITH platform_activity AS (
    SELECT
    SWAPPER,
    PLATFORM,
    TOKEN_IN,
    TOKEN_OUT,
    AMOUNT_IN_USD,
    AMOUNT_OUT_USD,
    BLOCK_TIMESTAMP
    FROM
    aptos.defi.ez_dex_swaps
    WHERE
    BLOCK_TIMESTAMP >= DATEADD(day, -{{days}}, CURRENT_DATE) and amount_in_usd is not null and amount_out_usd is not null
    ),

    arbitrage_candidates AS (
    SELECT
    a.SWAPPER,
    a.PLATFORM AS platform_1,
    b.PLATFORM AS platform_2,
    a.TOKEN_OUT,
    a.AMOUNT_OUT_USD AS exit_price,
    b.AMOUNT_IN_USD AS entry_price,
    (b.AMOUNT_IN_USD - a.AMOUNT_OUT_USD) AS potential_profit
    FROM
    platform_activity a
    JOIN
    platform_activity b
    ON
    a.SWAPPER = b.SWAPPER
    AND a.TOKEN_OUT = b.TOKEN_IN
    AND a.PLATFORM != b.PLATFORM
    AND a.BLOCK_TIMESTAMP < b.BLOCK_TIMESTAMP
    )

    SELECT