1- WITH LatestDrepDistr AS (
2- SELECT
3- * ,
4- ROW_NUMBER() OVER (PARTITION BY hash_id ORDER BY epoch_no DESC ) AS rn
1+ WITH ActiveProposals AS (
2+ SELECT id
3+ FROM gov_action_proposal
4+ WHERE expiration > (SELECT MAX (no) FROM epoch)
5+ AND ratified_epoch IS NULL
6+ AND enacted_epoch IS NULL
7+ AND expired_epoch IS NULL
8+ AND dropped_epoch IS NULL
9+ ),
10+ LatestDrepDistr AS (
11+ SELECT DISTINCT ON (hash_id)
12+ *
513 FROM
614 drep_distr
15+ ORDER BY
16+ hash_id, epoch_no DESC
717),
818LatestEpoch AS (
919 SELECT
@@ -46,6 +56,7 @@ ParsedDescription AS (
4656 gov_action_proposal
4757 WHERE
4858 gov_action_proposal .type = ' NewCommittee'
59+ AND gov_action_proposal .id IN (SELECT id FROM ActiveProposals)
4960),
5061MembersToBeRemoved AS (
5162 SELECT
@@ -96,19 +107,28 @@ EnrichedCurrentMembers AS (
96107 pcm .id
97108),
98109RankedPoolVotes AS (
99- SELECT
100- * ,
101- ROW_NUMBER() OVER (PARTITION BY vp .pool_voter ORDER BY vp .tx_id DESC ) AS rn
110+ SELECT DISTINCT ON (vp .pool_voter , vp .gov_action_proposal_id )
111+ vp .gov_action_proposal_id ,
112+ vp .pool_voter ,
113+ vp .vote
102114 FROM
103115 voting_procedure vp
116+ WHERE
117+ vp .pool_voter IS NOT NULL
118+ AND vp .gov_action_proposal_id IN (SELECT id FROM ActiveProposals)
119+ ORDER BY
120+ vp .pool_voter ,
121+ vp .gov_action_proposal_id ,
122+ vp .tx_id DESC ,
123+ vp .id DESC
104124),
105125PoolVotes AS (
106126 SELECT
107127 rpv .gov_action_proposal_id ,
108128 ps .epoch_no ,
109- COUNT (DISTINCT CASE WHEN vote = ' Yes' THEN rpv .pool_voter ELSE 0 END) AS total_unique_votes ,
110- COUNT (DISTINCT CASE WHEN vote = ' No' THEN rpv .pool_voter ELSE 0 END) AS total_unique_votes ,
111- COUNT (DISTINCT CASE WHEN vote = ' Abstain' THEN rpv .pool_voter ELSE 0 END) AS total_unique_votes ,
129+ COUNT (DISTINCT CASE WHEN vote = ' Yes' THEN rpv .pool_voter ELSE 0 END) AS total_yes_votes ,
130+ COUNT (DISTINCT CASE WHEN vote = ' No' THEN rpv .pool_voter ELSE 0 END) AS total_no_votes ,
131+ COUNT (DISTINCT CASE WHEN vote = ' Abstain' THEN rpv .pool_voter ELSE 0 END) AS total_abstain_votes ,
112132 SUM (CASE WHEN rpv .vote = ' Yes' THEN ps .voting_power ELSE 0 END) AS poolYesVotes,
113133 SUM (CASE WHEN rpv .vote = ' No' THEN ps .voting_power ELSE 0 END) AS poolNoVotes,
114134 SUM (CASE WHEN rpv .vote = ' Abstain' THEN ps .voting_power ELSE 0 END) AS poolAbstainVotes
@@ -118,48 +138,58 @@ PoolVotes AS (
118138 pool_stat ps
119139 ON rpv .pool_voter = ps .pool_hash_id
120140 WHERE
121- rpv . rn = 1 AND ps .epoch_no = (SELECT MAX (no) FROM epoch)
141+ ps .epoch_no = (SELECT MAX (no) FROM epoch)
122142 GROUP BY
123143 rpv .gov_action_proposal_id , ps .epoch_no
124144),
125145RankedDRepVotes AS (
126146 SELECT DISTINCT ON (vp .drep_voter , vp .gov_action_proposal_id )
127- *
147+ vp .gov_action_proposal_id ,
148+ vp .drep_voter ,
149+ vp .vote
128150 FROM
129151 voting_procedure vp
152+ WHERE
153+ vp .drep_voter IS NOT NULL
154+ AND vp .gov_action_proposal_id IN (SELECT id FROM ActiveProposals)
130155 ORDER BY
131- vp .drep_voter ,
132- vp .gov_action_proposal_id ,
133- vp .tx_id DESC
156+ vp .drep_voter ,
157+ vp .gov_action_proposal_id ,
158+ vp .tx_id DESC ,
159+ vp .id DESC
134160),
135161RankedDRepRegistration AS (
136162 SELECT DISTINCT ON (dr .drep_hash_id )
137- *
163+ dr. *
138164 FROM
139165 drep_registration dr
140166 ORDER BY
141167 dr .drep_hash_id ,
142- dr .tx_id DESC
168+ dr .tx_id DESC ,
169+ dr .id DESC
143170),
144171CommitteeVotes AS (
145172 SELECT
146- gov_action_proposal_id,
147-
148- SUM (CASE WHEN vote = ' Yes' THEN 1 ELSE 0 END) AS ccYesVotes,
149- SUM (CASE WHEN vote = ' No' THEN 1 ELSE 0 END) AS ccNoVotes,
150- SUM (CASE WHEN vote = ' Abstain' THEN 1 ELSE 0 END) AS ccAbstainVotes
151- FROM
152- voting_procedure AS vp
153- WHERE
154- vp .committee_voter IS NOT NULL
155- AND (vp .tx_id , vp .committee_voter , vp .gov_action_proposal_id ) IN (
156- SELECT MAX (tx_id), committee_voter, gov_action_proposal_id
157- FROM voting_procedure
158- WHERE committee_voter IS NOT NULL
159- GROUP BY committee_voter, gov_action_proposal_id
160- )
173+ vp .gov_action_proposal_id ,
174+ SUM (CASE WHEN vp .vote = ' Yes' THEN 1 ELSE 0 END) AS ccYesVotes,
175+ SUM (CASE WHEN vp .vote = ' No' THEN 1 ELSE 0 END) AS ccNoVotes,
176+ SUM (CASE WHEN vp .vote = ' Abstain' THEN 1 ELSE 0 END) AS ccAbstainVotes
177+ FROM (
178+ SELECT DISTINCT ON (committee_voter, gov_action_proposal_id)
179+ gov_action_proposal_id,
180+ committee_voter,
181+ vote
182+ FROM voting_procedure
183+ WHERE committee_voter IS NOT NULL
184+ AND gov_action_proposal_id IN (SELECT id FROM ActiveProposals)
185+ ORDER BY
186+ committee_voter,
187+ gov_action_proposal_id,
188+ tx_id DESC ,
189+ id DESC
190+ ) vp
161191 GROUP BY
162- gov_action_proposal_id
192+ vp . gov_action_proposal_id
163193)
164194SELECT
165195 gov_action_proposal .id ,
@@ -228,7 +258,7 @@ SELECT
228258 NULL
229259 END
230260 , ' {}' ::JSON) AS description,
231- CASE
261+ CASE
232262 WHEN meta .network_name ::text = ' mainnet' OR meta .network_name ::text = ' preprod' THEN
233263 latest_epoch .start_time + (gov_action_proposal .expiration - latest_epoch .no )::bigint * INTERVAL ' 5 days'
234264 ELSE
@@ -266,16 +296,17 @@ SELECT
266296 drep_voting_power .no_confidence
267297 END) no_votes,
268298 COALESCE(SUM (ldd_drep .amount ) FILTER (WHERE rdv .vote ::text = ' Abstain' ), 0 ) abstain_votes,
269- COALESCE(ps .poolYesVotes , 0 ) pool_yes_votes,
270- COALESCE(ps .poolNoVotes , 0 ) pool_no_votes,
271- COALESCE(ps .poolAbstainVotes , 0 ) pool_abstain_votes,
299+ COALESCE(ps .poolYesVotes , 0 ) pool_yes_votes,
300+ COALESCE(ps .poolNoVotes , 0 ) pool_no_votes,
301+ COALESCE(ps .poolAbstainVotes , 0 ) pool_abstain_votes,
272302 COALESCE(cv .ccYesVotes , 0 ) cc_yes_votes,
273303 COALESCE(cv .ccNoVotes , 0 ) cc_no_votes,
274304 COALESCE(cv .ccAbstainVotes , 0 ) cc_abstain_votes,
275305 prev_gov_action .index as prev_gov_action_index,
276306 encode(prev_gov_action_tx .hash , ' hex' ) as prev_gov_action_tx_hash
277307FROM
278308 gov_action_proposal
309+ JOIN ActiveProposals ON gov_action_proposal .id = ActiveProposals .id
279310 CROSS JOIN LatestEpoch AS latest_epoch
280311 CROSS JOIN DRepVotingPower AS drep_voting_power
281312 CROSS JOIN meta
@@ -286,30 +317,21 @@ FROM
286317 LEFT JOIN off_chain_vote_gov_action_data ON off_chain_vote_gov_action_data .off_chain_vote_data_id = off_chain_vote_data .id
287318 LEFT JOIN param_proposal AS proposal_params ON gov_action_proposal .param_proposal = proposal_params .id
288319 LEFT JOIN cost_model AS cost_model ON proposal_params .cost_model_id = cost_model .id
289- LEFT JOIN PoolVotes ps ON gov_action_proposal .id = ps .gov_action_proposal_id
320+ LEFT JOIN PoolVotes ps ON gov_action_proposal .id = ps .gov_action_proposal_id
290321 LEFT JOIN CommitteeVotes cv ON gov_action_proposal .id = cv .gov_action_proposal_id
291322 LEFT JOIN RankedDRepVotes rdv ON rdv .gov_action_proposal_id = gov_action_proposal .id
292323 LEFT JOIN RankedDRepRegistration rdr ON rdr .drep_hash_id = rdv .drep_voter AND COALESCE(rdr .deposit , 0 ) >= 0
293- LEFT JOIN LatestDrepDistr ldd_drep ON ldd_drep .hash_id = rdr .drep_hash_id
324+ LEFT JOIN LatestDrepDistr ldd_drep ON ldd_drep .hash_id = rdr .drep_hash_id
294325 AND ldd_drep .epoch_no = latest_epoch .no
295326 LEFT JOIN gov_action_proposal AS prev_gov_action ON gov_action_proposal .prev_gov_action_proposal = prev_gov_action .id
296- LEFT JOIN tx AS prev_gov_action_tx ON prev_gov_action .tx_id = prev_gov_action_tx .id
327+ LEFT JOIN tx AS prev_gov_action_tx ON prev_gov_action .tx_id = prev_gov_action_tx .id
297328WHERE
298329 (COALESCE(?, ' ' ) = ' ' OR
299330 off_chain_vote_gov_action_data .title ILIKE ? OR
300331 off_chain_vote_gov_action_data .abstract ILIKE ? OR
301332 off_chain_vote_gov_action_data .motivation ILIKE ? OR
302333 off_chain_vote_gov_action_data .rationale ILIKE ? OR
303334 concat(encode(creator_tx .hash , ' hex' ), ' #' , gov_action_proposal .index ) ILIKE ?)
304- AND gov_action_proposal .expiration > (
305- SELECT
306- Max (NO)
307- FROM
308- epoch)
309- AND gov_action_proposal .ratified_epoch IS NULL
310- AND gov_action_proposal .enacted_epoch IS NULL
311- AND gov_action_proposal .expired_epoch IS NULL
312- AND gov_action_proposal .dropped_epoch IS NULL
313335GROUP BY
314336 gov_action_proposal .id ,
315337 creator_tx .hash ,
@@ -323,14 +345,14 @@ GROUP BY
323345 cv .ccAbstainVotes ,
324346 proposal_params,
325347 ps .poolYesVotes ,
326- ps .poolNoVotes ,
327- ps .poolAbstainVotes ,
328- meta .network_name ,
329- voting_anchor .url ,
330- voting_anchor .data_hash ,
348+ ps .poolNoVotes ,
349+ ps .poolAbstainVotes ,
350+ meta .network_name ,
351+ voting_anchor .url ,
352+ voting_anchor .data_hash ,
331353 prev_gov_action .index ,
332354 prev_gov_action_tx .hash ,
333355 off_chain_vote_gov_action_data .title ,
334356 off_chain_vote_gov_action_data .abstract ,
335357 off_chain_vote_gov_action_data .motivation ,
336- off_chain_vote_gov_action_data .rationale
358+ off_chain_vote_gov_action_data .rationale ;
0 commit comments