WITH GET_INPUT_Timespan AS (
SELECT {{Timespan}} AS INPUT_Timespan,
CASE
WHEN INPUT_Timespan = 'Last 30 days' THEN CURRENT_DATE - 30
WHEN INPUT_Timespan = 'Last 60 days' THEN CURRENT_DATE - 60
WHEN INPUT_Timespan = 'Last 90 days' THEN CURRENT_DATE - 90
WHEN INPUT_Timespan = 'Last 180 days' THEN CURRENT_DATE - 180
ELSE '2014-01-01'
END AS Timespan
),
----------------------------------------------------Ethereum_USDC_Transfers-----------------------------------------------
Ethereum_USDC_Transfers AS (
SELECT BLOCK_TIMESTAMP, TX_HASH AS TX, FROM_ADDRESS AS SENDER, TO_ADDRESS AS RECEIVER, RAW_AMOUNT/POW(10,6) AS AMOUNT, 'Ethereum' AS Chain
FROM ethereum.core.ez_token_transfers
WHERE CONTRACT_ADDRESS = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
AND RAW_AMOUNT > 0 AND RAW_AMOUNT IS NOT NULL AND
BLOCK_TIMESTAMP::DATE >= (SELECT Timespan FROM GET_INPUT_Timespan) AND
FROM_ADDRESS != '0x0000000000000000000000000000000000000000' AND --Mint
TO_ADDRESS != '0x0000000000000000000000000000000000000000' --Burn
),
Top10_destination_ETH AS(
SELECT SUM(AMOUNT) AS Amount, RECEIVER AS ADDRESS
FROM Ethereum_USDC_Transfers
GROUP BY RECEIVER
),
Ethereum AS (
SELECT ADDRESS, IFF(ADDRESS_NAME IS NULL,ADDRESS,ADDRESS_NAME) AS "Label", Amount
FROM Top10_destination_ETH LEFT JOIN ethereum.core.dim_labels USING (ADDRESS) ORDER BY Amount DESC LIMIT 10
),
----------------------------------------------------Solana_USDC_Transfers-----------------------------------------------