datavortexFinal unbond
Updated 2024-12-04
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
›
⌄
WITH filtered_data AS (
-- Step 1: Filter relevant rows early to reduce dataset size
SELECT *
FROM sei.core.fact_msg_attributes
WHERE msg_type = 'unbond'
AND ATTRIBUTE_KEY IN ('validator', 'amount')
),
tx_validators AS (
-- Step 2: Get distinct tx_id and validator mapping
SELECT DISTINCT
tx_id,
ATTRIBUTE_VALUE AS validator
FROM filtered_data
WHERE ATTRIBUTE_KEY = 'validator'
),
validator_amounts AS (
-- Step 3: Get amounts, converting from macro SEI to SEI
SELECT
tx_id,
CAST(REPLACE(ATTRIBUTE_VALUE, 'usei', '') AS DOUBLE) / 1e6 AS amount_in_sei
FROM filtered_data
WHERE ATTRIBUTE_KEY = 'amount'
)
-- Step 4: Join the data, aggregate amounts by validator, and order results
SELECT
tv.validator,
SUM(va.amount_in_sei) AS total_unstake_in_sei
FROM tx_validators tv
INNER JOIN validator_amounts va
ON tv.tx_id = va.tx_id
GROUP BY tv.validator
--HAVING SUM(va.amount_in_sei) > 20000000 -- Filter for unstake > 20,000,000 SEI
ORDER BY total_unstake_in_sei DESC; -- Order by total unstake amounts in descending order
QueryRunArchived: QueryRun has been archived