Skip to main content
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
このスクリプトの役割。 指定した 2 つのミント用に新しい CPMM プールを作成し、0.25% フィー層を選択し、シード量で示唆される価格で初期流動性をシードし、新しいプール ID とトランザクション署名を出力します。

セットアップ

クイックスタートの前提条件を読んで、RPC_URLKEYPAIR、および依存関係がインストールされていることを確認してください。 また、両方のミントのシード量でウォレットに資金を供給し、ワンタイムのプール作成フィーとアカウント家賃をカバーするのに十分な SOL を用意する必要があります(メインネットで合計約 0.19 SOL — 家賃/フィーの内訳は reference/fee-comparison を参照するか、フィーのみについては ray/protocol-fees を参照してください)。 devnet で実行する場合。 cluster"devnet" に切り替えるだけでは不十分です。このスクリプトは cluster に従わない 2 つの名前付きインポートをピン留めしています:programId: CREATE_CPMM_POOL_PROGRAMpoolFeeAccount: CREATE_CPMM_POOL_FEE_ACC はどちらもメインネット定数です。SDK から DEVNET_PROGRAM_ID をインポートし、代わりに DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_PROGRAMDEVNET_PROGRAM_ID.CREATE_CPMM_POOL_FEE_ACC を使用してください — CLMM スクリプトが使用するのと同じパターンです。

スクリプト

create-cpmm.mjs として保存します:
create-cpmm.mjs

実行する

例:1 SOL と 160 USDC のシードで SOL/USDC プールを作成します:
期待される出力:

何が起こったのか

  1. getCpmmConfigsapi-v3.raydium.io からライブフィー層リストを取得し、インデックス 0(0.25% 層 — 完全なセットについては reference/fee-comparison を参照)を選択しました。
  2. getTokenInfo は各ミントのメタデータを解決しました。これには、どのトークンプログラムがそれを所有しているかが含まれます。CPMM は SPL Token と Token-2022 ミントの両方を受け入れます。SDK は自動的にルーティングします。
  3. createPool は以下を実行する 1 つのトランザクションを構築しました:
    • ミントを正規順序にソートする、
    • プール PDA、ボールト、LP ミント、および権限を導出する、
    • ワンタイムの create_pool_feeCREATE_CPMM_POOL_FEE_ACC に支払う、
    • 呼び出し元の ATA が不足している場合は作成する、
    • ボールトを AMOUNT_AAMOUNT_B でシードする。
  4. 初期価格はシード比率で設定されます:小数調整後 price = AMOUNT_B / AMOUNT_A。これは慎重に選択してください — ボットはプールが開くと数秒以内に誤った価格設定を裁定します。
  5. startTime: new BN(0) はトレーディングを即座に開きます。公開前に流動性をステージングするには、将来の Unix タイムスタンプを設定します。

一般的なエラー

  • pool already exists — このミントペアのこのフィー層に対してプールが既に存在します。作成する前に検索してください。
  • insufficient funds — ウォレットに MINT_AMINT_B、または SOL(プール作成フィー + 家賃用)の十分な量がありません。
  • Token-2022 extension not supported — ミントの 1 つが CPMM が受け入れない拡張機能を使用しています。reference/token-2022-support を参照してください。

デプロイ後

新しいプールに対して即座にスワップできます — CLI からスワップするスクリプトは新しい POOL_ID を直接受け入れます。アグリゲーター(Jupiter など)は数分以内に新しいプールをインデックスします。

次のステップ