Skip to main content
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
GlobalConfigプロトコルレベルの設定アカウントです。複数存在でき、(curve_type, index) でキーイングされます。すべてのローンチは Initialize 時に正確に 1 つを選択します。選択された GlobalConfig の値は、そのローンチのパラメータに対するハードリミットになります。プラットフォームレベルのカスタマイズ(プラットフォームごとのフィーレート、許可されるカーブ形状、卒業時の NFT 分割)については、products/launchlab/platform-config を参照してください。

概要

GlobalConfig(curve_type, index) ごとのシングルトン PDA で、すべてのローンチが従わなければならないプロトコル側のルールを固定します:
  • 許可されるボンディングカーブの種類(curve_type)。
  • カーブが買いと売りのすべてのトレードに課すトレードフィーレート。
  • 卒業時に課される移行フィー。
  • 供給量、ロック率、売却率、移行率の下限。
  • クォートミント(通常はラップド SOL または USDC)— ユーザーが購入する資産。
  • 4 つのプロトコル側ウォレット:プロトコルフィーオーナー、移行フィーオーナー、CPMM とレガシー AMM v4 卒業用に保持される 2 つの移行制御ウォレット。
GlobalConfig アカウントは LaunchLab プログラム管理者または委任された設定作成権限によって作成できます。既存の設定を更新できるのは管理者のみです。正規の権限については reference/program-addresses を参照してください。

レイアウト

PDA 導出:
(署名前に、オンチェーンアカウントから正確なシード順序を確認してください — プログラムの create_config 命令が信頼できる情報源です。)

フィールドのセマンティクス

curve_typeindex

これらは GlobalConfig を一意にキーイングします。(curve_type, index) ペアごとに 1 つの GlobalConfig が存在します:
  • curve_type = 0 — 定積仮想リザーブカーブ。デフォルトで最も使用されます。
  • curve_type = 1 — 固定価格カーブ。
  • curve_type = 2 — 線形価格カーブ。
indexu16 で、管理者がカーブタイプごとに複数の設定を公開できます(例:より厳しいフィーを持つもの、より高い最小クォート調達を持つもの)。Initialize 時にローンチは (curve_type, index) ペアを提供し、プログラムは一致する GlobalConfig をロードします。

フィー

  • trade_fee_rate — トレード量の 1/1_000_000 で表示されます。カーブ上のすべての買いと売りに適用されます。protocol_fee_ownerCollectFee 経由でその分を請求します。
  • migrate_fee — 卒業時に 1 回だけ課される固定フィー(ラムポート、または設定に応じてクォート単位)。migrate_fee_ownerCollectMigrateFee 経由で請求します。
  • max_share_fee_rate10_000(100 bps)に初期化されます。バインディング PlatformConfig からのプラットフォームシェアフィーレートを上限とします(platform-config を参照)。プログラムは trade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE を強制します。

供給量とレートの下限

これらの下限は、ローンチが Initialize で選択できるカーブ形状パラメータを制限します。クリエイターの CurveParams がいずれかに違反する場合、InitializeInvalidInput で戻ります。
  • min_base_supply — カーブが宣言できる最小 supply(小数なし)。デフォルトは 10_000_000
  • max_lock_rate1/1_000_000 で表示;デフォルト 300_000(30%)。total_locked_amount <= supply * max_lock_rate / 1_000_000 経由でベスティングを制限します。
  • min_base_sell_rate1/1_000_000 で表示;デフォルト 200_000(20%)。base_supply_graduation / supply を下から制限します。
  • min_base_migrate_rate1/1_000_000 で表示;デフォルト 200_000(20%)。卒業後プールをシードするために残されるトークン数を制限します。
  • min_quote_fund_raising — ローンチが宣言できる最小 quote_reserve_target(小数付き)。デフォルトはクォートミントの 30_000_000_000 ユニット。

クォートミントとプロトコルウォレット

  • quote_mint — ユーザーが購入する資産。ほとんどのローンチはラップド SOL(So111…112)または USDC(EPjF…Dt1v)を使用します。1 つの GlobalConfig は 1 つのクォートミントにバインドされます。異なるクォートが必要なローンチは異なる (curve_type, index) をターゲットにします。
  • protocol_fee_ownerCollectFee に署名し、この設定にバインドされたすべてのローンチで発生したプロトコルフィーを請求する公開鍵。オンチェーンに保存;管理者は UpdateConfig 経由でローテーションできます。
  • migrate_fee_ownerCollectMigrateFee に署名する公開鍵。

移行ウォレット

2 つの保存された卒業ウォレットは異なる署名者を必要とします:
  • migrate_to_amm_wallet — 保存された migrate_type = 0 を持つ既存のレガシーローンチの MigrateToAmm に署名します。
  • migrate_to_cpswap_walletMigrateToCpswap に署名します。新しく初期化されたすべてのローンチはこのパスを使用します。
これらは通常 Raydium が運用する卒業クランクによって保持されるため、卒業はクリエイターが呼び出すのを待つのではなく、カーブがしきい値に達した直後に行われます。

プラットフォーム側のアロウリスト

GlobalConfig はもう requires_platform_auth を持ちません。その前のバイトはパディングなので、アカウントサイズは変わりません。アクセスは現在 PlatformConfig.restrict_global_config と、そのプラットフォームの管理者によって作成された PlatformAllowConfig アカウントによって制御されます。platform-config を参照してください。

初期化時のデフォルト

CreateConfig が呼び出されると、プログラムは多くのフィールドをハードコードされたデフォルトでシードします:
管理者は作成時に curve_typeindexmigrate_feetrade_fee_ratequote_mint、および 4 つのウォレット公開鍵を明示的に設定します。その後の値は UpdateConfig 経由で調整できます。

ローンチが GlobalConfig を選択する方法

Initialize で、クリエイターは以下を渡します:
  • (curve_type, index) — ロードする GlobalConfig PDA を選択します。
  • CurveParams — カーブ形状を説明します(supplytotal_base_selltotal_quote_fund_raisingmigrate_type)。
  • VestingParams — ロックされた供給量を説明します。
  • MintParams — ベースミント用。
プログラムは以下を強制します:
  • curve_typeglobal_config.curve_type と一致する。
  • supply >= global_config.min_base_supply
  • total_locked_amount <= supply * max_lock_rate / 1_000_000
  • total_base_sell >= supply * min_base_sell_rate / 1_000_000
  • (supply − total_base_sell − total_locked_amount) >= supply * min_base_migrate_rate / 1_000_000 — つまり、卒業後プールをシードするのに十分なトークンが残っている。
  • total_quote_fund_raising >= min_quote_fund_raising
  • migrate_type == 1CPSWAP)。
  • 選択されたプラットフォームが restrict_global_config == 1 を持つ場合、一致する PlatformAllowConfig が含まれます。
Initialize 後、ローンチの PoolStateglobal_config 公開鍵を直接保存するため、バインディングは永続的です。

更新パス

UpdateConfig は管理者のみで、(param: u8, value: u64) ペアを取ります。各 param 値は変更するフィールドを選択します: ウォレットローテーション(protocol_fee_ownermigrate_fee_ownermigrate_to_amm_walletmigrate_to_cpswap_wallet)は別の Pubkey 引数形状を取ります。管理者トランザクションを構成する前に update_config ソースで正確なディスパッチテーブルを確認してください。 プラットフォーム認可の前の UpdateConfig セレクタ 12 は削除されました。プラットフォーム管理者は現在、独自のアロウリストを管理します。

クライアントから GlobalConfig を読む

利用可能なすべての設定をリストアップする UI の場合、SDK の getAllGlobalConfigs ヘルパーをウォークするか、それらをミラーリングする LaunchLab API エンドポイントをクエリしてください。オンチェーンアカウント数は少ないです(実際には 1 桁)。

ポインタ

ソース:
  • raydium-launch/programs/launchpad/src/states/config.rsGlobalConfig 構造体と initialize
  • raydium-launch/programs/launchpad/src/lib.rscreate_configupdate_config