Updated 2022-09-02
    with price as ( select hour::date as p_date, token_address, symbol, decimals, avg(price) as avg_price
    from optimism.core.fact_hourly_token_prices
    group by 1,2,3,4)
    ,
    from_token as ( select date(BLOCK_TIMESTAMP) as date, tx_hash , origin_from_address,
    symbol as from_token, raw_amount/pow(10,decimals) as from_amounts, from_amounts* avg_price as from_amount_usd
    from optimism.core.fact_token_transfers a join price b on a.contract_address = b.token_address
    and a.block_timestamp::date = b.p_date
    where origin_to_address = lower('0xdef1abe32c034e558cdd535791643c58a13acc10') and ORIGIN_FUNCTION_SIGNATURE='0x415565b0'
    and origin_from_address = from_address
    and block_timestamp >= current_date - 60

    )
    ,
    to_address as ( select date(BLOCK_TIMESTAMP) as date, tx_hash , origin_from_address,
    symbol as to_token, raw_amount/pow(10,decimals) as to_amounts, to_amounts* avg_price as to_amount_usd
    from optimism.core.fact_token_transfers a join price b on a.contract_address = b.token_address
    and a.block_timestamp::date = b.p_date
    where origin_to_address = lower('0xdef1abe32c034e558cdd535791643c58a13acc10') and ORIGIN_FUNCTION_SIGNATURE='0x415565b0'
    and origin_from_address = to_address
    and block_timestamp >= current_date - 60

    )
    ,
    tb1 as ( select a.date, a.tx_hash, a.origin_from_address, from_token, from_amounts,from_amount_usd, to_token, to_amounts, to_amount_usd
    from from_token a left outer join to_address b on a.tx_hash = b.tx_hash
    where a.date = b.date and a.origin_from_address = b.origin_from_address
    )

    select from_token , count(DISTINCT(tx_hash)) as swaps, sum(from_amount_usd) as volume
    from tb1
    group by 1
    order by 2 desc
    limit 10
    Run a query to Download Data