feat(relayer): авто-закрытие ставок, WS-события, одна открытая ставка на адрес
- settle.ts: серверный планировщик (startScheduler, тик SMART_SETTLE_INTERVAL_MS) находит просроченные открытые ставки, берёт цену из истории на expire_time, сам зовёт close_bet; рассылает bet_closed - gateway.ts: ручка POST /close удалена (404); проверка 'одна открытая ставка на адрес' под withBetLock -> 409 с openBetId; bet_open по WS при создании; lastState прокидывается в settleOnce (без него лог спамил каждый тик) - settle.ts: пакетный getProgramAccounts вместо поштучного перебора по id (замер: 3 мс против 28 мс, 9.3x, 1 запрос вместо 15); фильтр не-Bet аккаунтов по BET_ACCOUNT_SIZE (Global исключён из unmapped) - check.ts: +38 проверок (decodeBet, openBetOf, dueForSettle, события, границы)
This commit is contained in:
@@ -28,6 +28,7 @@ smart:
|
||||
startBalance: 10000000000
|
||||
priceHistory: '/app/data/price-history.db'
|
||||
priceRetentionHours: 24
|
||||
settleIntervalMs: 2000
|
||||
|
||||
nats:
|
||||
url: 'nats://192.168.88.93:4222'
|
||||
|
||||
Reference in New Issue
Block a user