Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
При интеграции Raydium в кошелек обычно нужно ответить на четыре вопроса для каждого пользователя: в каких пулах у пользователя есть LP? какие позиции (CLMM NFT) он держит? в каких фермах он застейкан? какова общая стоимость? На этой странице рассмотрено каждое из этих вопросов.
Детектирование позиций Raydium
Классические LP-токены (CPMM, AMM v4)
Они выглядят как любые другие SPL-токены: баланс пользователя находится на его ATA. Кошелек по умолчанию показывает это как обычный токен. Чтобы выявить это как позицию Raydium:- Получите все токен-счета пользователя:
connection.getParsedTokenAccountsByOwner(user, { programId: TOKEN_PROGRAM_ID }). - Для каждого mint проверьте список mint’ов Raydium:
GET https://api-v3.raydium.io/pools/info/lps?lps=<LP_MINT>,...(до ~50 LP mint’ов за вызов). - Для совпавших mint’ов API возвращает ссылку на пул. Используйте её для расчета стоимости позиции в единицах токенов:
CLMM позиции-NFT
CLMM позиции — это NFT. PDA каждойPersonalPositionState позиции выводится из mint’а NFT. Для детектирования:
- Получите все NFT пользователя. Для унаследованных Metaplex NFT: отфильтруйте токен-счета по supply равному 1 и decimals равному 0.
- Для каждого mint’а NFT попробуйте вывести PDA PersonalPositionState:
-
Декодируйте через
raydium.clmm.getPositionInfo({ positionPda })для получения:poolId→ получите пул для разрешения mint’овtickLower,tickUpper→ отобразите диапазонliquidity,tokensOwedA/B→ вычислите стоимость позиции + ожидающие комиссииrewardInfos→ ожидающие вознаграждения по потокам
-
Для позиций-NFT выпущенных под Token-2022 (
OpenPositionWithToken22Nft), программой mint’а NFT является Token-2022, а не SPL Token. При сканировании перечисляйте оба.
Ставки в фермах
Farm v3 / v5 / v6 имеют по одному PDA бухгалтерской книги для каждого пользователя. Вывод:UserLedger хешированием пользователя с отобранным списком «вероятных» ID ферм. Перечисление всех ID ферм исчерпывающе непрактично (существуют тысячи); используйте API.
Расчет стоимости позиции
CPMM / AMM v4 LP
raydium.token или ценового оракула).
CLMM позиция
- Стоимость ликвидности (текущая цена)
- Неснятые комиссии
- Ожидающие вознаграждения по каждому потоку
- Диапазон:
[tickLower_price, tickUpper_price]с визуальной полосой, показывающей находится ли текущая цена в диапазоне
Ставка в ферме
reward_per_share_x64 с использованием формулы ленивого обновления (прошедшее время × скорость эмиссии ÷ всего застейкано).
Симуляция транзакций для предпросмотра
Перед подписанием кошельки обычно выполняют предпросмотр изменений баланса. ИспользуйтеsimulateTransaction:
accounts указывает валидатору вернуть состояние счета после симуляции для указанных адресов. Намного точнее, чем попытка предсказать изменение баланса только из формы инструкции.
Подводные камни симуляции
- CLMM свопы требуют корректные массивы tick’ов. Если размер входных данных пользователя пересечет неинициализированный массив tick’ов, симуляция откатится (как и реальное выполнение). Отчетливо отобразите это в интерфейсе.
- Приоритетная комиссия. Симуляция выполняется без применения инструкций бюджета вычислений. Для большой транзакции, которая превысила бы стандартные 200k CU, симуляция падает, но реальное выполнение с явным лимитом CU проходит успешно. Также установите лимит CU для симулируемой транзакции.
- Свежий блокхеш. Симуляция использует текущий блокхеш; если подписание займет >60s, транзакция станет недействительной. Пересимулируйте, если пользователь колеблется.
Отображение Token-2022
Токены под программой Token-2022 должны быть помечены как таковые в списке токенов кошелька, поскольку они имеют разные профили рисков:- Transfer-fee mint’ы: отобразите текущий
transferFeeBasisPointsкак «Transfer fee: X%» рядом с балансом. Предупредите при получении — пользователи могут не заметить, что получат меньше, чем отправитель отправил. - Transfer-hook mint’ы: отобразите ID программы хука. Вредоносный хук может заблокировать исходящие переводы; пользователи должны проверить, что это ожидаемый хук.
- Non-transferable mint’ы: отобразите «Non-transferable» и деактивируйте своп/отправку. Обычно это soulbound-токены или учетные данные.
- Interest-bearing mint’ы: баланс интерфейса, выведенный из
TokenAccount.amount, не отражает накопленные проценты. ИспользуйтеamountToUiAmountиз@solana/spl-token(который применяет коэффициент масштабирования) для отображаемого значения.
Отображение APR фермы
APR, отображаемый пользователям, должен объединять все активные потоки вознаграждений, конвертированные в USD и в расчете на год:APR: X.Y%. Если mint ставки является LP-токеном, также вычислите базовый APR комиссии базового LP и обозначьте сумму как «Total APR» или «APR + fees».
Ссылки
products/clmm/ticks-and-positions— вывод стоимости позиции.products/farm-staking/accounts— поля состояния фермы.algorithms/token-2022-transfer-fees— семантика отображения для transfer-fee токенов.
- Raydium SDK v2 — вспомогательные функции для позиций/ферм.
- Endpoints позиций пользователя на
api-v3.raydium.io.


