SHA256
solana: усилить проверку Pyth oracle в shine_payments
This commit is contained in:
@@ -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` делаются с округлением вниз;
|
||||
|
||||
Reference in New Issue
Block a user