Skip to main content
Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →
Chức năng của script này. Tạo một pool CPMM hoàn toàn mới cho hai mint bạn chỉ định, chọn mức phí 0,25%, khởi tạo thanh khoản ban đầu ở mức giá được xác định bởi các số lượng khởi tạo, và in ra ID pool mới cùng chữ ký giao dịch.

Chuẩn bị

Hãy chắc chắn rằng bạn đã đọc Điều kiện tiên quyết Bắt đầu nhanh và có RPC_URL, KEYPAIR, cũng như các thư viện phụ thuộc đã cài đặt. Bạn cũng cần nạp ví với các số lượng khởi tạo của cả hai mint, cộng với đủ SOL để chi trả phí tạo pool một lần và tiền thuê tài khoản (~0,19 SOL tổng cộng trên mainnet — xem reference/fee-comparison để xem chi tiết phí/tiền thuê, hoặc ray/protocol-fees chỉ để xem phí). Chạy trên devnet. Chỉ thay đổi cluster thành "devnet" là chưa đủ. Script này sử dụng hai import được đặt tên không tuân theo cluster: programId: CREATE_CPMM_POOL_PROGRAMpoolFeeAccount: CREATE_CPMM_POOL_FEE_ACC, cả hai đều là hằng số mainnet. Hãy import DEVNET_PROGRAM_ID từ SDK và sử dụng DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_PROGRAMDEVNET_PROGRAM_ID.CREATE_CPMM_POOL_FEE_ACC thay thế — cùng mẫu mà script CLMM sử dụng.

Script

Lưu dưới dạng create-cpmm.mjs:
create-cpmm.mjs

Chạy script

Ví dụ: tạo một pool SOL/USDC với 1 SOL và 160 USDC khởi tạo:
Kết quả dự kiến:

Điều gì vừa xảy ra

  1. getCpmmConfigs lấy danh sách các mức phí trực tiếp từ api-v3.raydium.io và chọn index 0 (mức phí 0,25% — xem reference/fee-comparison để xem bộ đầy đủ).
  2. getTokenInfo giải quyết metadata của mỗi mint, bao gồm chương trình token nào sở hữu nó. CPMM chấp nhận cả mint SPL Token và Token-2022; SDK định tuyến tự động.
  3. createPool xây dựng một giao dịch duy nhất thực hiện:
    • sắp xếp các mint theo thứ tự chính tắc,
    • dẫn xuất PDA pool, vault, LP mint, và authority,
    • thanh toán create_pool_fee một lần tới CREATE_CPMM_POOL_FEE_ACC,
    • tạo ATA của người gọi nếu thiếu,
    • khởi tạo vault với AMOUNT_AAMOUNT_B.
  4. Giá ban đầu được đặt bởi tỷ lệ khởi tạo: price = AMOUNT_B / AMOUNT_A sau điều chỉnh số thập phân. Hãy chọn cẩn thận — bot sẽ arbitrage bất kỳ sai giá nào trong vòng vài giây sau khi pool mở.
  5. startTime: new BN(0) mở giao dịch ngay lập tức. Để chuẩn bị thanh khoản trước khi mở cho công chúng, đặt một timestamp Unix trong tương lai.

Lỗi phổ biến

  • pool already exists — Một pool đã tồn tại cho cặp mint này ở mức phí này. Hãy tra cứu trước khi tạo.
  • insufficient funds — Ví của bạn không có đủ MINT_A, MINT_B, hoặc SOL (cho phí tạo pool + tiền thuê).
  • Token-2022 extension not supported — Một trong các mint của bạn sử dụng một extension mà CPMM không chấp nhận. Xem reference/token-2022-support.

Sau khi triển khai

Bạn có thể ngay lập tức swap với pool mới — script Swap từ CLI chấp nhận POOL_ID mới của bạn trực tiếp. Các aggregator (Jupiter, v.v.) sẽ lập chỉ mục pool mới trong vòng vài phút.

Tiếp theo