1
+ WITH filtered_balances AS
2
+ (
3
+ SELECT
4
+ max (block_num) AS block_num,
5
+ max (timestamp ) AS timestamp ,
6
+ program_id,
7
+ account,
8
+ argMax(amount, b .block_num ) AS amount,
9
+ mint,
10
+ any(decimals) AS decimals,
11
+ {network_id:String} as network_id
12
+ FROM balances AS b
13
+ WHERE
14
+ mint = {mint:String}
15
+ AND b .timestamp > now() - INTERVAL 1 MONTH
16
+ GROUP BY program_id, mint, account
17
+ ORDER BY amount DESC
18
+ LIMIT {limit :UInt64}
19
+ OFFSET {offset:UInt64}
20
+ ),
21
+ owners AS
22
+ (
23
+ SELECT
24
+ account,
25
+ owner
26
+ FROM owner_state_latest AS o
27
+ WHERE account IN (SELECT account FROM filtered_balances)
28
+ ),
29
+ metadata AS
30
+ (
31
+ SELECT
32
+ mint,
33
+ if(empty(name), NULL , name) AS name,
34
+ if(empty(symbol), NULL , symbol) AS symbol,
35
+ if(empty(uri), NULL , uri) AS uri
36
+ FROM metadata_view
37
+ WHERE metadata IN (
38
+ SELECT metadata
39
+ FROM metadata_mint_state_latest
40
+ WHERE mint IN (SELECT mint FROM filtered_balances)
41
+ GROUP BY metadata
42
+ )
43
+ )
1
44
SELECT
2
- block_num,
3
- timestamp as last_balance_update,
4
- toString(owner) AS owner,
5
- amount,
6
- toString(b .amount / pow(10 , decimals)) as value,
45
+ b .timestamp AS last_update,
46
+ block_num AS last_update_block_num,
47
+ toUnixTimestamp(b .timestamp ) AS last_update_timestamp,
48
+ toString(program_id) AS program_id,
49
+ toString(owner) AS owner,
50
+ toString(account) AS token_account,
51
+ toString(mint) AS mint,
52
+ toString(b .amount ) AS amount,
53
+ b .amount / pow(10 , decimals) AS value,
7
54
decimals,
8
- ' TO IMPLEMENT' as symbol,
9
- {network_id: String} as network_id
10
- FROM balances_by_mint AS b
11
- FINAL
12
- WHERE
13
- mint = {contract: String} AND amount > 0
14
- ORDER BY value DESC
15
- LIMIT {limit :UInt64}
16
- OFFSET {offset:UInt64}
55
+ name,
56
+ symbol,
57
+ uri,
58
+ {network_id:String} AS network_id
59
+ FROM filtered_balances AS b
60
+ LEFT JOIN metadata USING mint
61
+ LEFT JOIN owners USING account
62
+ ORDER BY value DESC
0 commit comments