@@ -108,31 +108,28 @@ receipt_actions_prep AS (
108108 , vplu_prep .voting_power_from_locks_unlocks
109109 , vplu_prep .lockup_update_at_ns
110110 FROM (
111- SELECT
112- rap .block_timestamp
113- , rap .receipt_id
114- , COALESCE(
115- CASE
116- WHEN (safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - >> ' error' ) IS NULL
117- THEN (safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - > ' data' - > 0 - >> ' account_id' )
118- ELSE NULL
119- END,
120- rap .signer_account_id
121- ) AS registered_voter_id
122- , CASE
123- WHEN (safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - >> ' error' ) IS NULL
124- THEN ((safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - > ' data' - > 0 - >> ' locked_near_balance' ))::NUMERIC
125- ELSE NULL
126- END AS voting_power_from_locks_unlocks
127- , CASE
128- WHEN (safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - >> ' error' ) IS NULL
129- THEN ((safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - > ' data' - > 0 - >> ' timestamp' ))::NUMERIC
130- ELSE NULL
131- END AS lockup_update_at_ns
132- FROM receipt_actions_prep AS rap
133- WHERE
134- rap .method_name = ' on_lockup_update'
135- ) AS vplu_prep
111+ SELECT
112+ rap .block_timestamp
113+ , rap .receipt_id
114+ , CASE
115+ WHEN (safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - >> ' error' ) IS NULL
116+ THEN (safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - > ' data' - > 0 - >> ' account_id' )
117+ ELSE NULL
118+ END AS registered_voter_id
119+ , CASE
120+ WHEN (safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - >> ' error' ) IS NULL
121+ THEN ((safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - > ' data' - > 0 - >> ' locked_near_balance' ))::NUMERIC
122+ ELSE NULL
123+ END AS voting_power_from_locks_unlocks
124+ , CASE
125+ WHEN (safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - >> ' error' ) IS NULL
126+ THEN ((safe_json_parse(REPLACE(rap .action_logs [1 ], ' EVENT_JSON:' , ' ' )) - > ' data' - > 0 - >> ' timestamp' ))::NUMERIC
127+ ELSE NULL
128+ END AS lockup_update_at_ns
129+ FROM receipt_actions_prep AS rap
130+ WHERE
131+ rap .method_name = ' on_lockup_update'
132+ ) AS vplu_prep
136133 ORDER BY
137134 vplu_prep .registered_voter_id
138135 , vplu_prep .block_timestamp DESC
@@ -243,7 +240,16 @@ receipt_actions_prep AS (
243240 ON ra .signer_account_id = vplu .registered_voter_id
244241 LEFT JOIN proposal_participation AS pp
245242 ON ra .signer_account_id = pp .registered_voter_id
246- LEFT JOIN {SCHEMA_NAME}.delegation_events AS de
243+ LEFT JOIN
244+ (
245+ SELECT DISTINCT ON (delegator_id)
246+ d.*
247+ FROM {SCHEMA_NAME}.delegation_events AS d
248+ ORDER BY
249+ d .delegator_id
250+ , d .block_timestamp DESC
251+ , d .receipt_id DESC
252+ ) AS de
247253 ON ra .signer_account_id = de .delegator_id
248254 AND de .is_latest_delegator_event = TRUE
249255 AND de .delegate_method = ' delegate_all'
0 commit comments