ravelliable-jade
    Updated 2025-03-14
    WITH TransferEvents AS (
    SELECT
    block_timestamp,
    tx_hash,
    contract_address,
    '0x' || SUBSTR(topics[1], 27) AS operator,
    '0x' || SUBSTR(topics[2], 27) AS from_address,
    '0x' || SUBSTR(topics[3], 27) AS to_address,
    utils.udf_hex_to_int(SUBSTR(data, 3)) AS amount
    FROM monad.testnet.fact_event_logs
    WHERE contract_address = LOWER('0x3dB6c11474893689cdB9d7CDeDC251532CAdF32B')
    AND topic_0 = '0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62' -- TransferSingle
    ),

    -- Calculate balance changes
    BalanceChanges AS (
    SELECT
    from_address as address,
    -amount as amount_change,
    block_timestamp
    FROM TransferEvents
    WHERE from_address != '0x0000000000000000000000000000000000000000'
    UNION ALL
    SELECT
    to_address as address,
    amount as amount_change,
    block_timestamp
    FROM TransferEvents
    WHERE to_address != '0x0000000000000000000000000000000000000000'
    ),

    -- Calculate current balances
    CurrentBalances AS (
    SELECT
    QueryRunArchived: QueryRun has been archived