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:
1 parent
e9df89aaac
commit
0e83137b5a
8 files changed
+70
-34
No files matched your search
+28
-9
@@ -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
|
||||
|
||||
Reference in new issue
Block a user