_fallenleaf-eK3jnqBlockchain Data Status copy
Updated 2024-08-28
999
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
›
⌄
-- forked from piper / Blockchain Data Status @ https://flipsidecrypto.xyz/piper/q/qYzMP01XWaaN/blockchain-data-status
-- Thanks to @marqu, forked from https://flipsidecrypto.xyz/marqu/q/enMpSjzqEmLn/solana-nfts---last-update-info. and modified it!
WITH arbitrum_info AS (
SELECT
'Arbitrum' AS blockchain,
BLOCK_NUMBER,
BLOCK_TIMESTAMP,
FLOOR(DATEDIFF('minute', BLOCK_TIMESTAMP, CURRENT_TIMESTAMP()) / 60.0) AS hours,
MOD(DATEDIFF('minute', BLOCK_TIMESTAMP, CURRENT_TIMESTAMP()), 60.0) AS minutes,
CONCAT(IFF(hours < 10, CONCAT('0', hours::STRING), hours::STRING), ':', IFF(minutes < 10, CONCAT('0', minutes::STRING), minutes::STRING)) AS lag,
(hours*60+minutes) AS lag_minutes,
CASE
WHEN lag_minutes <= 60 THEN '🟢 Data is up to date!'
WHEN (lag_minutes > 60 AND lag_minutes <= 90) THEN '🟡 Slightly out of date!'
WHEN lag_minutes > 90 THEN '🔴 Data is out of date!'
END AS status,
'1h' AS update_period
FROM
arbitrum.core.fact_blocks
INNER JOIN arbitrum.core.fact_event_logs USING(BLOCK_NUMBER, BLOCK_TIMESTAMP)
WHERE
BLOCK_TIMESTAMP > CURRENT_DATE() - 3
ORDER BY
BLOCK_TIMESTAMP DESC NULLS LAST
LIMIT 1
),
avalanche_info AS (
SELECT
'Avalanche' AS blockchain,
BLOCK_NUMBER,
BLOCK_TIMESTAMP,
FLOOR(DATEDIFF('minute', BLOCK_TIMESTAMP, CURRENT_TIMESTAMP()) / 60.0) AS hours,
MOD(DATEDIFF('minute', BLOCK_TIMESTAMP, CURRENT_TIMESTAMP()), 60.0) AS minutes,
CONCAT(IFF(hours < 10, CONCAT('0', hours::STRING), hours::STRING), ':', IFF(minutes < 10, CONCAT('0', minutes::STRING), minutes::STRING)) AS lag,
QueryRunArchived: QueryRun has been archived