|
2 | 2 | import snapshot from '@snapshot-labs/snapshot.js'; |
3 | 3 | import { getVoteValue } from './entityValue'; |
4 | 4 | import db from './mysql'; |
5 | | -import { CB } from '../constants'; |
| 5 | +import { CB, CURRENT_CB } from '../constants'; |
6 | 6 |
|
7 | 7 | const REFRESH_INTERVAL = 60 * 1000; |
8 | 8 | const BATCH_SIZE = 100; |
9 | 9 |
|
10 | 10 | type Datum = { |
11 | 11 | id: string; |
| 12 | + vp_state: string; |
12 | 13 | vp_by_strategy: number[]; |
13 | 14 | vp_value_by_strategy: number[]; |
14 | 15 | }; |
15 | 16 |
|
16 | 17 | async function getVotes(): Promise<Datum[]> { |
17 | 18 | const query = ` |
18 | | - SELECT votes.id, votes.vp_by_strategy, proposals.vp_value_by_strategy |
| 19 | + SELECT votes.id, votes.vp_state, votes.vp_by_strategy, proposals.vp_value_by_strategy |
19 | 20 | FROM votes |
20 | 21 | JOIN proposals ON votes.proposal = proposals.id |
21 | 22 | WHERE proposals.cb = ? AND votes.cb = ? |
@@ -48,7 +49,7 @@ function buildQuery(datum: Datum, query: string[], params: any[]) { |
48 | 49 | const value = getVoteValue(datum.vp_value_by_strategy, datum.vp_by_strategy); |
49 | 50 |
|
50 | 51 | query.push('UPDATE votes SET vp_value = ?, cb = ? WHERE id = ? LIMIT 1'); |
51 | | - params.push(value, CB.PENDING_CLOSE, datum.id); |
| 52 | + params.push(value, datum.vp_state === 'final' ? CURRENT_CB : CB.PENDING_CLOSE, datum.id); |
52 | 53 | } catch (e) { |
53 | 54 | // TODO: enable only after whole database is synced |
54 | 55 | // capture(e, { extra: { proposal } }); |
|
0 commit comments