Skip to content

Commit f77bc0c

Browse files
committed
fix(views): apply Elaine's feedback - remove signer fallback in vplu, deduplicate delegation_events join
1 parent 430d728 commit f77bc0c

File tree

1 file changed

+32
-26
lines changed

1 file changed

+32
-26
lines changed

sql_files/views/registered_voters.sql

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)