Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Что это делает. Создает новый пул CPMM для двух указанных вами монет, выбирает уровень комиссии 0,25%, инициализирует ликвидность по цене, определяемой начальными суммами, и выводит ID нового пула и подпись транзакции.
Подготовка
Убедитесь, что вы прочитали Предварительные требования быстрого старта и у вас установленыRPC_URL, KEYPAIR и необходимые зависимости.
Также необходимо пополнить кошелек начальными суммами обеих монет, плюс достаточно SOL для покрытия единовременной комиссии за создание пула и аренды аккаунта (~0,19 SOL всего на mainnet — см. reference/fee-comparison для разбивки аренды/комиссии или ray/protocol-fees только для комиссии).
Запуск на devnet. Просто переключение cluster на "devnet" недостаточно. Этот скрипт использует два именованных импорта, которые не следуют за cluster: programId: CREATE_CPMM_POOL_PROGRAM и poolFeeAccount: CREATE_CPMM_POOL_FEE_ACC, оба константы mainnet. Импортируйте DEVNET_PROGRAM_ID из SDK и используйте вместо них DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_PROGRAM и DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_FEE_ACC — тот же паттерн, что использует скрипт CLMM.
Скрипт
Сохраните какcreate-cpmm.mjs:
create-cpmm.mjs
Запуск
Пример: создание пула SOL/USDC с начальной суммой 1 SOL и 160 USDC:Что произошло
getCpmmConfigsполучила актуальный список уровней комиссий сapi-v3.raydium.ioи выбрала индекс 0 (уровень 0,25% — см.reference/fee-comparisonдля полного набора).getTokenInfoразрешила метаданные каждой монеты, включая то, какая программа токенов ею владеет. CPMM принимает как SPL Token, так и Token-2022 монеты; SDK маршрутизирует автоматически.createPoolпостроила одну транзакцию, которая:- сортирует монеты в каноническом порядке,
- выводит PDA пула, хранилища, LP монету и полномочия,
- платит единовременную
create_pool_feeнаCREATE_CPMM_POOL_FEE_ACC, - создает ATA вызывающей стороны, если они отсутствуют,
- инициализирует хранилища с
AMOUNT_AиAMOUNT_B.
- Начальная цена устанавливается по соотношению начальных сумм:
price = AMOUNT_B / AMOUNT_Aпосле корректировки десятичных знаков. Выбирайте это тщательно — боты будут арбитражировать любое неправильное ценообразование в течение секунд после открытия пула. 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 и т. д.) индексируют новый пул в течение нескольких минут.
Далее
products/cpmm/overview— что такое CPMM и когда его выбирать.user-flows/create-cpmm-pool— тот же процесс со скриншотами через пользовательский интерфейс Raydium.user-flows/choosing-a-pool-type— должны ли вы были использовать CLMM вместо этого?

