solana: усилить проверку Pyth oracle в shine_payments

This commit is contained in:
AidarKC
2026-06-10 02:25:45 +04:00
parent 5981d3f871
commit 9ca469a075
6 changed files with 430 additions and 43 deletions
@@ -350,10 +350,18 @@ next_index = tickets_paid + 1
Проверки oracle:
- передан именно тот oracle account, что указан в settings;
- feed id совпадает с ожидаемым;
- owner oracle-аккаунта совпадает с Pyth Solana Receiver program;
- feed id совпадает с ожидаемым `PYTH_SOL_USD_FEED_ID`;
- verification level должен быть `Full`;
- цена не старше `ORACLE_MAX_AGE_SECS`;
- доверительный интервал (`conf`) не должен быть шире `ORACLE_MAX_CONFIDENCE_PPM`;
- цена положительная и корректно переводима в ratio.
Реализация чтения:
- для декодирования price update используется официальный open-source `pyth-solana-receiver-sdk`;
- ручной парсинг по фиксированным offset-ам не используется.
Внутренние преобразования:
- `lamports -> usd_cents` делаются с округлением вниз;