dashboard: hapus TOTAL VEX + perbaiki wrap mobile (V48) ; catatan stats-note dipendekkan (buang perbandingan vexascan) ; formula last_vote 52-pekan (V13/B12) ; image web rebuild + push

This commit is contained in:
proitlab committed 2026-08-07 22:04:25 +07:00
1 parent e9df89aaac
commit 0e83137b5a
8 files changed
+70 -34

No files matched your search

+28 -9
View File
@@ -19,9 +19,10 @@ import get_voters as gv
def _fresh_weight(staked_raw, days_ago=5):
"""Bobot untuk revote ~sekarang: staked_raw × 2^(tahun sejak 2000)."""
t = ((datetime.now() - gv.WEIGHT_EPOCH).days - days_ago) / 365.25
return f'{staked_raw * 2 ** t:.17f}'
"""Bobot utk revote ~sekarang: staked_raw × 2^(pekan/52) — kuantisasi
pekan utuh sejak epoch 2000 (formula stake2vote Vexanium)."""
weeks = ((datetime.now() - gv.WEIGHT_EPOCH).days - days_ago) // 7
return f'{staked_raw * 2 ** (weeks / 52.0):.17f}'
class FakePayload:
@@ -126,11 +127,17 @@ def main():
(datetime.now() - datetime.fromisoformat(by['zzz9']['last_vote'])).days
> 800)
# V13: formula — staked_raw × 2^26 → ~2026-01-01 (±2 hari, toleransi 365.25 hari/tahun)
lv = gv.derive_last_vote(f'{12000000 * 2 ** 26}.00000000000000000', 1200.0)
# V13: formula — staked_raw × 2^(pekan/52), kuantisasi pekan utuh sejak 2000
# 2^1 → 52 pekan setelah 2000-01-01 = 2000-12-30 (52×7 = 364 hari)
lv = gv.derive_last_vote(f'{12000000 * 2 ** 1:.17f}', 1200.0)
lv_dt = datetime.fromisoformat(lv) if lv else None
check('V13 formula 2^26 → ~2026-01-01',
lv_dt is not None and abs((lv_dt - datetime(2026, 1, 1)).days) <= 2)
check('V13 formula 2^1 (52 pekan) → 2000-12-30',
lv_dt is not None and lv_dt == datetime(2000, 12, 30))
# 2^26 → 26×52 pekan = 1352 pekan setelah 2000 = 2025-11-29
lv = gv.derive_last_vote(f'{12000000 * 2 ** 26:.17f}', 1200.0)
lv_dt = datetime.fromisoformat(lv) if lv else None
check('V13 formula 2^26 (1352 pekan) → 2025-11-29',
lv_dt is not None and lv_dt == datetime(2025, 11, 29))
check('V13 rasio 1.0 → epoch 2000',
gv.derive_last_vote('12000000.00000000000000000', 1200.0) == '2000-01-01T00:00:00')
check('V13 bobot nol → None', gv.derive_last_vote('0', 1200.0) is None)
@@ -138,6 +145,17 @@ def main():
check('V13 bobot tak valid → None', gv.derive_last_vote('abc', 1200.0) is None)
check('V13 stake nol → None', gv.derive_last_vote('1.0', 0.0) is None)
# V13/B12: regresi formula pekan utuh — baris nyata dari chain
# ..tg: staked_raw 9000, weight → t×52 = 1291 pekan → 2024-09-28
lv = gv.derive_last_vote('267849632990.26596069335937500', 9000 / 10000)
check('V13 regresi ..tg (1291 pekan) → 2024-09-28',
lv == '2024-09-28T00:00:00')
# 1.crownz: staked_raw 17115095, t×52 = 1314 pekan → 2025-03-08
lv = gv.derive_last_vote(
f'{17115095 * 2 ** (1314 / 52.0):.17f}', 17115095 / 10000)
check('V13 regresi 1.crownz (1314 pekan) → 2025-03-08',
lv == '2025-03-08T00:00:00')
# V13/V40: normalize menyimpan basi, membuang yang tak dapat diverifikasi
old = gv.normalize({'owner': 'old8', 'producers': [gv.TARGET_BP],
'staked': 20000000,
@@ -154,10 +172,11 @@ def main():
# V13: estimasi yang melewati now (unstake tanpa revote) diklamp ke now
fixed_now = datetime(2026, 8, 5, 12, 0, 0)
t_future = ((fixed_now - gv.WEIGHT_EPOCH).days + 5) / 365.25
weeks_future = ((fixed_now - gv.WEIGHT_EPOCH).days + 14) // 7 # 2 pekan ke depan
fut = gv.normalize({'owner': 'fut9', 'producers': [gv.TARGET_BP],
'staked': 20000000,
'last_vote_weight': f'{20000000 * 2 ** t_future:.17f}'},
'last_vote_weight':
f'{20000000 * 2 ** (weeks_future / 52.0):.17f}'},
now=fixed_now)
check('V13 last_vote masa depan diklamp ke now',
fut is not None