nat_nomadrouters_r_daily
Updated 2023-04-13
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
›
⌄
WITH routers AS (
SELECT *
FROM VALUES
--update 2023-02-24
('ethereum', '0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45', 'UniSwap', 'Router'),
('ethereum', '0x7a250d5630b4cf539739df2c5dacb4c659f2488d', 'UniSwap', 'Router'),
('ethereum', '0xe592427a0aece92de3edee1f18e0157c05861564', 'UniSwap', 'Router'),
('ethereum', '0xf164fc0ec4e93095b804a4795bbe1e041497b92a', 'UniSwap', 'Router'),
('ethereum', '0x1111111254fb6c44bac0bed2854e76f90643097d', '1inch', 'Aggregator'),
('ethereum', '0x1111111254eeb25477b68fb85ed929f73a960582', '1inch', 'Aggregator'),
('ethereum', '0x11111112542d85b3ef69ae05771c2dccff4faa26', '1inch', 'Aggregator')
AS data(blockchain, address, project, contract_type)
)
select calls.block_timestamp
, calls.tx_hash
, calls.tx_from
, project
, MAX(CASE WHEN contract_address = '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2' THEN amount * price
ELSE amount / pow(10, decimals) * price END) as usd_amount
from (
SELECT
transactions.block_timestamp,
transactions.from_address AS tx_from,
transactions.tx_hash,
MIN_BY(project, substring(identifier, len(type)+2)) AS project,
MIN(substring(identifier, len(type)+2)) AS start_trace_address
FROM
ethereum.core.fact_transactions AS transactions
JOIN ethereum.core.fact_traces AS traces ON traces.tx_hash = transactions.tx_hash
JOIN routers ON routers.address = traces.from_address AND routers.blockchain = 'ethereum'
LEFT JOIN ethereum.core.ez_nft_transfers AS transfers ON transfers.tx_hash = transactions.tx_hash
WHERE
DATE_TRUNC('day', transactions.block_timestamp) > DATEADD('day', -32, CURRENT_TIMESTAMP())
AND DATE_TRUNC('day', transactions.block_timestamp) < DATE_TRUNC('day', CURRENT_TIMESTAMP())
AND DATE_TRUNC('day', traces.block_timestamp) > DATEADD('day', -32, CURRENT_TIMESTAMP())