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 đoạn mã này. Tạo pool CLMM mới tại mức phí bạn chọn, sau đó mở vị thế tập trung ban đầu. Hai transaction, một kịch bản. Mã được trích từ các demo chính thức trong
raydium-sdk-V2-demo/src/clmm và điều chỉnh thành một tệp có thể chạy được trên Node.Chuẩn bị
Hãy chắc chắn 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 cài đặt.
Tạo pool CLMM yêu cầu phí một lần cộng với chi phí thuê cho mỗi mảng tick cho vị thế ban đầu. Bạn cũng cần cả hai mint hạt giống trong ví của mình — mở vị thế khi giá nằm trong phạm vi đã chọn yêu cầu thanthanh khoảy trên cả hai phía.
Bước 1 — config.ts
Lưu dưới dạng config.ts. Hình dạng này giống với tệp src/config.ts.template của kho demo — disableFeatureCheck được buộc phải là true (được khuyến nghị cho bất kỳ tích hợp phi tầm thường nào để SDK không bị chặn bởi lệnh gọi phát hiện tính năng khởi động của nó):
Bước 2 — createPool.ts
Lưu cùng với config.ts. Nguồn: src/clmm/createPool.ts.
Bước 3 — createPosition.ts
Nguồn: src/clmm/createPosition.ts.
Bước 4 — utils.ts
Nguồn: src/clmm/utils.ts.
Chạy thử
Vừa xảy ra điều gì
Transaction 1 —raydium.clmm.createPool đã khởi tạo:
- trạng thái pool tại PDA chính tắc cho
(mint1, mint2, ammConfig), token_0_vaultvàtoken_1_vault(được sắp xếp theo thứ tự byte của mint),- vòng đệm
observation, - bitmap mảng tick nội tuyến,
sqrt_price_x64 ban đầu từ initialPrice của bạn.
Transaction 2 — raydium.clmm.openPositionFromBase đã mở vị thế tập trung:
- đã mint NFT vị thế vào ví của bạn (NFT là vị thế; chuyển nhượng nó có nghĩa là chuyển nhượng vị thế),
- đã phân bổ mảng tick tại các cận dưới và trên (phí thuê một lần nếu là vị thế đầu tiên trong các phạm vi đó; các mảng tick không bao giờ được đóng bởi chương trình, vì vậy các vị thế tiếp theo trong các mảng giống nhau không có chi phí thuê thêm),
- đã gửi
inputAmountcủamint1và lượng cặp phù hợp củamint2(được tính bằngPoolUtils.getLiquidityAmountOutFromAmountIn), - đã ghi công vị thế với thanhanh khoảy tỷ lệ với độ rộng của phạm vi.
[0.000001, 100000]) là toàn phạm vi hiệu quả; thu hẹp nó để tập trung phí gần giá spot hiện tại.
Chọn mức phí
clmmConfigs[0] là mức phí thấp nhất. Bộ đầy đủ được công bố tại GET https://api-v3.raydium.io/main/clmm-config:
| Chỉ số | tradeFeeRate | Khoảng cách tick | Sử dụng khi |
|---|---|---|---|
| 0 | 100 (1bp) | 1 | Stablecoin / stablecoin, dự kiến tổn thất vô thường rất thấp |
| 1 | 500 (5bp) | 10 | Tài sản tương quan cao (ví dụ: liquid-staked so với cơ sở) |
| 2 | 2_500 (25bp) | 60 | Cặp token tiêu chuẩn, blue-chip + stablecoin |
| 3 | 10_000 (1.00%) | 120 | Cặp dễ bay hơi hoặc mỏng nơi rủi ro IL cao |
user-flows/choosing-a-pool-type để có ma trận quyết định đầy đủ.
Lỗi phổ biến
Pool already exists for this config— Pool CLMM đã tồn tại cho bộ ba(mint1, mint2, ammConfig)này. Tra cứu ID pool hiện có và bỏ qua Bước 2.Insufficient funds for amount B— Ví của bạn có lượngmintAđược yêu cầu nhưng không cómintBtương ứng. Mở vị thế khi giá nằm trong phạm vi yêu cầu thanhanh khoảy trên cả hai phía.Tick out of range—lowerPricehoặcupperPricecủa bạn nằm ngoài phạm vi giá có thể biểu diễn được. Sử dụng phạm vi hợp lý hơn so với giá hiện tại.- Giá bị lỗi thời — Báo giá từ API có thể bị lỗi thời 5–60 giây. Nếu
executePositionkhông thành công do slippage, hãy bỏ comment khốigetRpcClmmPoolInfotrongcreatePosition.tsđể lấy lại giá trực tiếp ngay trước khi ký.
Cảnh báo
- Position NFT là cách truy cập duy nhất của bạn. Mất NFT hoặc chuyển nhượng nó, mất quyền truy cập vào vị thế. Hãy coi nó như một chìa khóa.
- Vị thế ngoài phạm vi không kiếm được phí. Nếu giá di chuyển ra ngoài
[lowerPrice, upperPrice], vị thế của bạn được đỗ hoàn toàn ở một tài sản và không kiếm được gì cho đến khi bạn cân bằng lại. - Phí thuê mảng tick là một chiều. Vị thế đầu tiên chạm vào mảng tick chưa được khởi tạo sẽ trả phí thuê của nó; chương trình không cung cấp đường dẫn để đóng mảng tick, vì vậy phí thuê đó là vĩnh viễn. Các vị thế tiếp theo trong cùng mảng là miễn phí.
Tiếp theo
products/clmm/overview— cơ học CLMM đầy đủ.products/clmm/ticks-and-positions— toán học đằng sau các tick.algorithms/impermanent-loss— định lượng khuếch đại IL CLMM.user-flows/create-clmm-pool— quy trình tương tự thông qua Giao diện người dùng Raydium.

