Skip to main content
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Cette page documente le graphe de comptes par lancement : le PoolState (le compte d’état racine pour un lancement), ses deux coffres, le PDA d’autorité, et les références post-graduation qu’il acquiert quand le lancement se règle.Pour la config au niveau du protocole qui encadre chaque lancement, consultez products/launchlab/global-config. Pour la surcouche par plateforme, consultez products/launchlab/platform-config. Pour les comptes d’acquisition progressive (VestingSchedule sur PoolState, VestingRecord par bénéficiaire), consultez products/launchlab/vesting.

Inventaire des comptes

Le SDK retourne PoolState plus un drapeau indiquant si le lancement a gradué ; si c’est le cas, l’ID du pool post-migration est inclus.

PoolState

L’état racine par lancement. Les noms de champs ci-dessous correspondent à la struct Rust on-chain (states/pool.rs) ; certaines valeurs sont simplifiées pour la lisibilité — consultez la source pour la disposition exacte de la mémoire.
Valeurs de PoolStatus (depuis l’IDL Anchor) :
Champs accessibles aux intégrateurs :
  • status — trois valeurs, monotone (Funding → Migrate → Migrated). Les lectures sont toujours sûres ; les écritures sont contrôlées.
  • real_base, real_quote — état actuel de la courbe. Combinés avec virtual_base / virtual_quote, ils sont suffisants pour calculer le prix spot sans accéder aux coffres. Consultez bonding-curve.
  • total_base_sell vs real_base — ratio « progression vers la graduation » pour les interfaces utilisateur.
  • migrate_type — sélectionne si MigrateToAmm ou MigrateToCpswap est le chemin de graduation valide. Les lancements Token-2022 doivent utiliser CPMM.
  • amm_creator_fee_on — significatif uniquement lors de la graduation vers CPMM. Sélectionne creator_fee_on = OnlyQuoteToken (0) ou BothToken (1) sur le pool CPMM post-graduation. Malgré le nom, cet enum dirige effectivement aussi la cible de migration — BothToken est associé à MigrateToAmm dans la pratique opérationnelle actuelle ; QuoteToken avec MigrateToCpswap. Consultez creator-fees.
  • quote_protocol_fee / platform_fee / migrate_fee — trois compteurs de frais indépendants. Chacun a sa propre instruction de réclamation ; consultez instructions.
  • vesting_schedule — présent sur chaque PoolState mais inactif quand total_locked_amount == 0. Consultez vesting pour le cycle de vie complet.

Le PDA d’autorité

LaunchLab utilise un unique PDA d’autorité à travers tous les lancements, dérivé sans seed par lancement :
Ce PDA unique est :
  • L’autorité sur base_vault et quote_vault de chaque lancement.
  • La mint_authority sur base_mint de chaque lancement (avant la graduation).
  • Le signataire du CPI post-graduation vers AMM v4 / CPMM (MigrateTo*).
  • Le signataire sur les transferts ClaimVestedToken hors du coffre de base.
La mint_authority est révoquée immédiatement après MigrateToAmm / MigrateToCpswap afin que l’approvisionnement soit définitivement fixe. Deux PDAs supplémentaires contrôlent les coffres de frais :
Ils signent le transfert hors des coffres de frais correspondants durant ClaimCreatorFee et ClaimPlatformFeeFromVault.

Mint de base

Créé en ligne par Initialize avec :
  • mint_authority = authority (révoqué à la graduation).
  • freeze_authority = None.
  • supply = supply, entièrement frappé dans base_vault.
  • decimals choisis par le créateur à Initialize (généralement 6).
Parce que l’approvisionnement complet est pré-frappé, base_mint.supply est constant pour la durée du lancement. Les achats de courbe déplacent les jetons de base_vault vers l’acheteur, mais n’appellent pas mint_to. Initialize / InitializeV2 créent des lancements SPL Token. L’instruction dédiée InitializeWithToken2022 permet au mint de base d’être un mint Token-2022 (avec optionnellement TransferFeeConfig) ; le mint de devis reste SPL Token. Les lancements Token-2022 doivent se diplômer vers un pool CPMM car AMM v4 ne supporte que les coffres SPL Token.

Coffres

base_vault et quote_vault sont des comptes SPL Token standards possédés par le PDA authority de LaunchLab. Les adresses sont stockées sur PoolState et peuvent aussi être dérivées :
(Vérifiez les préfixes exactes des seeds depuis la struct des comptes Initialize de la source avant de compter sur une dérivation en production.)

Coffres de frais

Deux PDAs agrègent les frais à travers les lancements :
  • Coffre de frais de créateur — PDA avec seeds [creator, quote_mint]. Chaque lancement qui gagne les mêmes frais de créateur sur le même jeton de devis verse dans le même coffre. Le créateur le balaye via ClaimCreatorFee.
  • Coffre de frais de plateforme — PDA avec seeds [platform_config, quote_mint]. Chaque lancement acheminé par la même plateforme qui utilise le même jeton de devis verse dans le même coffre. Le platform_fee_wallet de la plateforme le balaye via ClaimPlatformFeeFromVault. Il existe aussi une variante de balayage par lancement (ClaimPlatformFee) qui tire directement du quote_vault du lancement sans passer par le coffre agrégé.
Le motif du coffre agrégé est ce qui permet à un créateur ou une plateforme à haut volume d’amortir le coût du loyer de l’accumulation de frais à travers de nombreux lancements.

Quote vault ↔ real_quote

quote_vault.balance et PoolState.real_quote doivent rester synchronisés. Ils peuvent dériver d’au maximum la somme des trois compteurs de frais en attente (quote_protocol_fee, platform_fee, migrate_fee), qui siègent dans le coffre mais appartiennent aux compteurs de frais et non à la réserve de courbe. Les mathématiques de courbe utilisent toujours real_quote, jamais le solde brut du coffre. Invariant pré-graduation :

Transitions de comptes du cycle de vie

Prochaines étapes

Sources :
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolState, PoolStatus, VestingSchedule, AmmCreatorFeeOn.
  • raydium-launch/programs/launchpad/src/lib.rs — constantes de seed PDA (AUTH_SEED, CREATOR_FEE_VAULT_AUTH_SEED, PLATFORM_FEE_VAULT_AUTH_SEED).
  • Module launchpad du SDK Raydium v2.