Sel stat SALDO LIQUID menampilkan account.core_liquid_balance dari
GET {DATABISNIS_API}/v2/state/get_account. Cache in-memory per worker
selama DASH_LIQUID_TTL (60s); gagal fetch → nilai lama (atau '—' bila
belum pernah sukses) + cooldown supaya API tak dipukul berulang. Stats
grid 4 kolom desktop, 2x2 tablet. Oracle + smoke lolos.
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
"""Konfigurasi proyek dari env / `.env`.
|
|
|
|
Bacaan tipe via `os.getenv`; nilai default = konstanta lama. Muat `.env` sekali
|
|
di sini supaya semua modul (get_voters, dashboard) berbagi sumber yang sama.
|
|
"""
|
|
|
|
import os
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
# BP target
|
|
TARGET_BP = os.getenv('VEX_TARGET_BP', 'databisnisid')
|
|
|
|
# Node RPC publik Vexanium
|
|
API_NODE = os.getenv('VEX_API_NODE', 'https://v2.vexascan.com:2096')
|
|
|
|
# Lokasi basis data SQLite (dipakai fetcher & dashboard)
|
|
DB_PATH = os.getenv('VEX_DB_PATH', 'voters.db')
|
|
|
|
# Syarat minimum stake (dalam VEX) untuk disimpan
|
|
MIN_STAKED_VEX = float(os.getenv('VEX_MIN_STAKED_VEX', '1000'))
|
|
|
|
# Dashboard: ukuran halaman list
|
|
PAGE_SIZE = int(os.getenv('DASH_PAGE_SIZE', '50'))
|
|
|
|
# Dashboard: host & port server Flask
|
|
DASH_HOST = os.getenv('DASH_HOST', '127.0.0.1')
|
|
DASH_PORT = int(os.getenv('DASH_PORT', '5000'))
|
|
|
|
# Dashboard: jumlah worker gunicorn (produksi)
|
|
DASH_WORKERS = int(os.getenv('DASH_WORKERS', '2'))
|
|
|
|
# Ambang batas vote "basi" (hari tanpa revote) — pemilih lewat batas ini dibuang di scan
|
|
VEX_STALE_DAYS = int(os.getenv('VEX_STALE_DAYS', '28'))
|
|
|
|
# API databisnis untuk saldo liquid akun (balance BP, disajikan dashboard)
|
|
DATABISNIS_API = os.getenv('DATABISNIS_API', 'https://api.databisnis.id')
|
|
|
|
# Dashboard: TTL cache (detik) untuk saldo liquid — gagal fetch juga di-cooldown
|
|
DASH_LIQUID_TTL = int(os.getenv('DASH_LIQUID_TTL', '60'))
|