Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
PoolState (le compte d’état racine pour un lancement), ses deux coffres, l’autorité PDA, et les références post-graduation qu’il acquiert à la clôture du lancement.
Pour la configuration 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 de vesting (VestingSchedule sur PoolState, VestingRecord par bénéficiaire), consultez products/launchlab/vesting.
Inventaire des comptes
La méthode
raydium.launchpad.getLaunchById du SDK retourne PoolState plus un drapeau indiquant si le lancement a été diplômé ; 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 structure 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.
PoolStatus (depuis l’IDL Anchor) :
status— trois valeurs, monotones (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 avecvirtual_base/virtual_quote, ils suffisent pour calculer le prix spot sans accéder aux coffres. Consultezbonding-curve.total_base_sellvsreal_base— ratio « progression vers la graduation » pour les interfaces utilisateur.migrate_type— l’initialisation nouvelle nécessite1(CPSWAP). Un0stocké reste significatif uniquement pour un lancement existant créé avant l’application obligatoire de CPMM.amm_creator_fee_on— choisitcreator_fee_on = OnlyQuoteToken(0) ouBothToken(1) sur le pool CPMM post-graduation. Il ne choisit pas la cible de migration. Consultezcreator-fees.token_program_flag— un champ de bits, pas un booléen. Bit0 est le mint de base et bit1 est le mint de cotation, chacun0pour SPL Token et1pour Token-2022, donc l’octet prend quatre valeurs :0(les deux hérités),1(Token-2022 base),2(Token-2022 cotation),3(les deux Token-2022). Lisez un mint avec(token_program_flag >> bit) & 1. Comparer l’octet entier à0pour classer le mint de base résout2au mauvais programme. Bit1 était constant0jusqu’à ce que les mints de cotation Token-2022 soient supportés.quote_protocol_fee/platform_fee/migrate_fee— trois compteurs de frais indépendants. Chacun a sa propre instruction de réclamation ; consultezinstructions.vesting_schedule— présent sur chaquePoolStatemais inactif lorsquetotal_locked_amount == 0. Consultezvestingpour le cycle de vie complet.
L’autorité PDA
LaunchLab utilise une seule autorité PDA sur tous les lancements, dérivée sans graine par lancement :- L’autorité sur chaque
base_vaultetquote_vaultdu lancement. - La
mint_authoritysur lebase_mintde chaque lancement (pré-graduation). - Le signataire sur le CPI de graduation CPMM, et sur la graduation AMM v4 hérité pour l’état existant.
- Le signataire sur les transferts
ClaimVestedTokenhors du coffre de base. - La
transfer_fee_config_authoritysur laTransferFeeConfigd’un mint de base Token-2022, pour toute la phase pré-graduation — et sawithdraw_withheld_authorityaussi, mais uniquement lorsque la plateforme n’a pas définiPlatformConfig.transfer_fee_extension_auth.
mint_authority est révoquée immédiatement après un appel MigrateToCpswap ou un appel hérité MigrateToAmm, donc l’approvisionnement est définitivement fixé.
Deux PDAs supplémentaires contrôlent les coffres de frais :
ClaimCreatorFee et ClaimPlatformFeeFromVault.
Mint de base
Créé en ligne parInitialize avec :
mint_authority = authority(révoquée à la graduation).freeze_authority = None.supply = supply, entièrement frappé dansbase_vault.decimalschoisi par le créateur àInitialize(généralement 6).
base_mint.supply est constant pour la durée de vie 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 mints de base SPL Token. L’instruction dédiée InitializeWithToken2022 permet au mint de base d’être un mint Token-2022 (avec TransferFeeConfig optionnel). Les trois chemins d’initialisation nécessitent une graduation CPMM.
Lorsque InitializeWithToken2022 attache une TransferFeeConfig, le mint est créé avec transfer_fee_config_authority = authority et withdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth, revenant à authority lorsque la plateforme n’a pas défini ce champ. Les deux autorités sont réaffectées à la clé de plateforme à la graduation, le côté retrait uniquement si le PDA le détient toujours. Consultez platform-config.
Le mint de cotation est indépendant du mint de base et peut lui-même être un mint Token-2022 — InitializeV2 et InitializeWithToken2022 acceptent l’un ou l’autre programme dans leur slot de programme de cotation. Le Initialize déprécié ne le fait pas : son compte de programme de cotation est toujours typé pour SPL Token, donc une configuration dont le mint de cotation est Token-2022 ne peut être lancée que par les deux autres. Le mint de cotation n’est jamais créé par LaunchLab ; c’est ce que GlobalConfig.quote_mint nomme. Consultez global-config et reference/token-2022-support.
Coffres
base_vault et quote_vault sont tous deux des comptes de jetons possédés par le PDA LaunchLab authority, chacun créé sur le programme qui possède son propre mint — donc un lancement peut avoir un coffre de base hérité et un coffre de cotation Token-2022, ou toute autre combinaison. token_program_flag enregistre lequel est lequel. Les adresses sont stockées sur PoolState et peuvent également être dérivées :
Initialize de la source avant de vous fier à une dérivation en production.)
Coffres de frais
Deux PDAs agrègent les frais sur les lancements :- Coffre de frais de créateur — PDA aux graines
[creator, quote_mint]. Chaque lancement qui gagne les mêmes frais de créateur sur le même mint de cotation verse dans le même coffre. Le créateur le balaye viaClaimCreatorFee. - Coffre de frais de plateforme — PDA aux graines
[platform_config, quote_mint]. Chaque lancement acheminé par la même plateforme qui utilise le même mint de cotation verse dans le même coffre. Leplatform_fee_walletde la plateforme le balaye viaClaimPlatformFeeFromVault. Il y a aussi une variante de balayage par lancement (ClaimPlatformFee) qui tire directement duquote_vaultdu lancement sans passer par le coffre agrégé.
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 se trouvent 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 :
PlatformCurveRule
Un compte par paire (PlatformConfig, GlobalConfig), contenant les formes de lancement que cette plateforme permet sur cette configuration. Les graines PDA sont [b"platform_curve_rule", platform_config, global_config].
150 + Σ(14 + 18 × constraints) et les décodeurs ne doivent pas supposer une taille fixe. Les groupes sont ORés : un lancement est autorisé dès que les contraintes d’un groupe tiennent toutes. Zéro groupe signifie aucune restriction.
Lisez-le uniquement lorsque le PlatformConfig.restrict_curve_param propriétaire est 1 — à 0, le programme ignore le compte, et une règle obsolète peut bien être assise là. Les identifiants de champ, les opérateurs et les playbooks se trouvent dans products/launchlab/curve-rules.
Transitions de comptes du cycle de vie
Où aller ensuite
products/launchlab/bonding-curve— les mathématiques derrièrereal_base↔real_quote.products/launchlab/instructions— listes de comptes par instruction.products/launchlab/global-config— liaison au niveau du protocole.products/launchlab/platform-config— surcouche de plateforme.products/launchlab/vesting— mécaniques d’approvisionnement verrouillé.products/cpmm/accounts— à quoi ressemble lecpmm_pool_statepost-graduation.
raydium-launch/programs/launchpad/src/states/pool.rs—PoolState,PoolStatus,VestingSchedule,AmmCreatorFeeOn.raydium-launch/programs/launchpad/src/lib.rs— constantes de graine PDA (AUTH_SEED,CREATOR_FEE_VAULT_AUTH_SEED,PLATFORM_FEE_VAULT_AUTH_SEED).- Module
launchpaddu SDK Raydium v2.

