T13: klamp last_vote heuristik ke waktu scan (⊥ di masa depan)
Unstake tanpa revote membuat rasio bobot/stake membesar → estimasi last_vote melewati now. normalize() kini mengklamp ke now; voters.db dikembalikan (27 baris, MAX(last_vote) ≤ MAX(scanned_at)). Oracle lolos.
This commit is contained in:
1 parent
41990af9af
commit
eb4f941b37
4 files changed
+17
-3
No files matched your search
+4
-1
@@ -118,7 +118,8 @@ def normalize(row, now=None):
|
||||
"""V4/V5/V6/V13: saring ke baris yang relevan, bidang dinormalisasi.
|
||||
|
||||
V13: pemilih dengan last_vote tak diketahui atau basi dibuang di sini —
|
||||
hanya pemilih segar yang berakhir di DB.
|
||||
hanya pemilih segar yang berakhir di DB. Estimasi last_vote yang melewati
|
||||
`now` (unstake tanpa revote → rasio bobot/stake membesar) diklamp ke `now`.
|
||||
"""
|
||||
if now is None:
|
||||
now = datetime.now(timezone.utc).replace(tzinfo=None)
|
||||
@@ -131,6 +132,8 @@ def normalize(row, now=None):
|
||||
if staked_vex < MIN_STAKED_VEX:
|
||||
return None
|
||||
last_vote = derive_last_vote(row.get('last_vote_weight', ''), staked_vex)
|
||||
if last_vote is not None and last_vote > now.isoformat(timespec='seconds'):
|
||||
last_vote = now.isoformat(timespec='seconds') # V13: heuristik ⊥ boleh di masa depan
|
||||
if last_vote is None or _is_stale(last_vote, now): # V13: basi ⊥ disimpan
|
||||
return None
|
||||
return {
|
||||
|
||||
Reference in new issue
Block a user