Где живет reward engine#
Основная реализация находится в private/pawn_coin/PawnCoinService.php.
Этот сервис отвечает за wallet bootstrap, creditReward, reward summary, ledger reads и anti-abuse throttling.
Основные reward sources#
- correct prediction reward
- first forecast of the day
- Idea Box publish reward
- first post of the week
Idempotency и защита от дублей#
uniq_reward_sourceблокирует повторное начисление за один source event.uniq_reward_periodзащищает периодические награды вроде daily/weekly bonus.- Ledger write и reward event write должны оставаться согласованными в пределах service flow.
Quality gates#
- В
private/community_pool/CommunityPool.phpиспользуется minimum comment length для daily forecast bonus. - В
ibox/config.phpприменяются minimum title/content requirements и daily cap для reward-eligible posts. - В
PawnCoinService.phpесть rolling-window rate limiting по reward type.
Starter wallet bootstrap#
Текущая безопасная логика больше не завязана на изменяемый grant_type как на признак уникальности.
Bootstrap считается выполненным, если у пользователя уже есть запись в mp_pawn_grants, что защищает от повторного стартового гранта после admin edits.
Что важно проверять после изменений#
- Не сломалась ли idempotency reward source / period.
- Не начал ли starter grant reissue происходить на старых пользователях.
- Совпадают ли reward labels, ledger rows и user-facing history.
- Не появились ли дыры между quality gates в source modules и central economy config.