Перейти к основному содержанию
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Что делает этот скрипт. Создает новый пул CPMM для двух выбранных вами токенов, выбирает комиссию 0,25%, предоставляет начальную ликвидность по цене, определяемой начальными объемами, и выводит ID нового пула и подпись транзакции.

Подготовка

Убедитесь, что вы прочитали Prerequisites быстрого старта и имеете установленные RPC_URL, KEYPAIR и зависимости. Также необходимо пополнить кошелек начальными объемами обоих токенов плюс достаточно SOL для однократной комиссии создания пула (примерно 0,15 SOL на mainnet, текущее значение см. в reference/program-addresses).

Скрипт

Сохраните как create-cpmm.mjs:

Запуск

Пример: создание пула SOL/USDC с начальным объемом 1 SOL и 160 USDC:
Ожидаемый результат:

Что произошло

  1. getCpmmConfigs получила актуальный список уровней комиссии из api-v3.raydium.io и выбрала индекс 0 (уровень 0,25% — полный список см. в reference/fee-comparison).
  2. getTokenInfo разрешила метаданные каждого токена, включая информацию о владеющей им программе токенов. CPMM поддерживает как SPL Token, так и Token-2022; SDK выполняет маршрутизацию автоматически.
  3. createPool построила одну транзакцию, которая:
    • сортирует токены в каноническом порядке,
    • определяет PDA пула, хранилища, LP токен и органы управления,
    • платит однократную create_pool_fee в CREATE_CPMM_POOL_FEE_ACC,
    • создает ATA вызывающей стороны при необходимости,
    • предоставляет хранилища начальными объемами AMOUNT_A и AMOUNT_B.
  4. Начальная цена устанавливается по соотношению начальных объемов: цена = AMOUNT_B / AMOUNT_A после коррекции десятичных знаков. Выбирайте это внимательно — боты будут арбитражить любую неправильную цену в течение нескольких секунд после открытия пула.
  5. startTime: new BN(0) открывает торговлю немедленно. Для подготовки ликвидности перед открытием для публики установите будущую временную метку Unix.

Типичные ошибки

  • pool already exists — пул для этой пары токенов с этим уровнем комиссии уже существует. Проверьте его перед созданием.
  • insufficient funds — в кошельке недостаточно MINT_A, MINT_B или SOL (для комиссии создания пула + арендная плата).
  • Token-2022 extension not supported — один из токенов использует расширение, которое CPMM не поддерживает. См. reference/token-2022-support.

После развертывания

Вы можете сразу же выполнять обмены в новом пуле — скрипт Swap from CLI принимает ваш новый POOL_ID напрямую. Агрегаторы (Jupiter и прочие) индексируют новый пул в течение нескольких минут.

Дальше