Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
O LaunchLab expõe um conjunto compacto de instruções: seis chamadas voltadas ao usuário mais alguns primitivos de administração. O SDK envolve todas elas; esta página documenta a superfície bruta para agregadores, ferramentas de monitoramento e programas que precisam de CPI.
Inventário de instruções
A divisão “ExactIn/ExactOut” espelha
SwapBaseInput / SwapBaseOutput do CPMM — na cadeia são discriminadores de instrução separados com arredondamento ligeiramente diferente.
Seleção de caminho de graduação. Cada chamada Initialize, InitializeV2 e InitializeWithToken2022 deve definir migrate_type = 1 (CPSWAP). Qualquer tentativa de inicializar um novo pool vinculado a AMM v4 retorna MigrateTypeNotMatch. amm_creator_fee_on apenas seleciona se a taxa de criador CPMM resultante se aplica ao token de cotação ou a ambos os tokens; não seleciona o programa de destino.
MigrateToAmm permanece chamável para um PoolState existente que foi inicializado com migrate_type = 0 antes dessa restrição. A versão não reescreve o estado do pool existente ou remove a instrução legada.
Initialize
Criar um novo lançamento.
Argumentos
Pré-condições
quote_mint ∈ launch_config.allowed_quote_mints.base_supply_graduation ≤ base_supply_max.- Parâmetros de taxa passam nas verificações
launch_config.max_*_fee_rate. open_time ≥ now − slop(SDK impõe≥ now; programa tolera backdating leve).curve_typeé reconhecido.
base_minttemsupply = base_supply_max, tudo embase_vault.base_mint.mint_authority = launch_authority,freeze_authority = None.LaunchStateinicializado comstatus = Active,base_sold = 0,quote_reserve_real = 0.quote_reserve_targetcomputado a partir de parâmetros de curva +base_supply_graduation+buy_numerator(aproximadamente).
InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (variante canônica: BuyExactIn)
Usuário fornece um quote_in fixo; a curva computa base_out.
Argumentos
Pré-condições
launch_state.status == Active.now ≥ open_time.user_quote_ata.balance ≥ quote_in.quote_in > 0.
- Dividir
quote_inemquote_in_after_feee as partes de taxa. - Resolver Newton a curva para
base_outdado o quote pós-taxa. require(base_out ≥ minimum_base_out)senão reverterExceededSlippage.- Mover
quote_inusuário → cofre. Moverbase_outcofre → usuário. - Atualizar
base_sold += base_out,quote_reserve_real += quote_in_after_fee × (lp_share / total_share). - Atualizar contadores de taxa (
protocol_fees_quote,creator_fees_quote). state_data.num_buys += 1.- Se
quote_reserve_real ≥ quote_reserve_targetapós a atualização, o SDK tipicamente encadeia uma ixGraduatena mesma transação. O programa não auto-gradua dentro deBuy— umGraduatesubsequente é necessário.
BuyExactOut
Usuário especifica o base_out exato; programa computa quote_in.
Argumentos
BuyExactIn. Usa a integral quadrática de forma fechada (ou inverso CPMM, para curve_type 1) em vez de iteração Newton.
Sell / SellExactIn / SellExactOut
Espelho de Buy. Usuário retorna base_in à curva e recebe quote_out. A taxa é deduzida de quote_out, então o usuário recebe menos que os rendimentos integrados brutos.
Pré-condições —
user_base_ata.balance ≥ base_in.- Vender não pode empurrar
base_soldabaixo de 0 (redundante com o acima dado que a contabilidade é consistente). - Lançamento é
Active.
Buy. base_sold diminui, quote_reserve_real diminui. Taxas ainda acumulam.
MigrateToAmm / MigrateToCpswap
Graduar um lançamento em um pool negociável uma vez que a curva atingiu total_quote_fund_raising. Novos lançamentos são apenas CPMM. MigrateToAmm é retido para pools existentes cujo migrate_type armazenado é 0.
Quem assina
MigrateToAmm— amigrate_to_amm_walletregistrada naGlobalConfigvinculada.MigrateToCpswap— amigrate_to_cpswap_walletregistrada naGlobalConfigvinculada.
MigrateToAmm leva três (principalmente parâmetros de mercado OpenBook que o programa encaminha para AMM v4):
MigrateToCpswap não leva nenhum.
Efeito (comum a ambos)
- Verificar
pool_state.status == Migrate(ou seja,quote_reserve_targetfoi atingido). Caso contrário, reverter comPoolMigrated(status já eraMigrated) ouPoolFunding(ainda em financiamento). - Verificar
pool_state.migrate_typecorresponde à instrução (0para AMM,1para CPMM). Caso contrário, reverter comMigrateTypeNotMatch. - Computar as reservas pós-graduação:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI no programa de destino (
AMM v4 Initialize2ouCPMM InitializeWithPermission) com essas reservas para criar o pool pós-graduação. - Para migrações CPMM executadas após a atualização de 2026-08-17, combinar
platform_scale + creator_scaleem uma participação de LP bloqueada de propriedade da plataforma e cunhar no máximo um NFT de Chave de Taxa paraplatform_nft_wallet. Queimar o restanteburn_scale. Antes da atualização,creator_scaleera bloqueado separadamente e sua Chave de Taxa ia para o criador do token. Migrações históricas concluídas não são modificadas. Para graduação legada AMM v4, a disposição de LP segue o fluxo existente dessa instrução. - Revogar
base_mint.mint_authority(definir comoNone). - Virar
pool_state.status = Migrated, definirvesting_schedule.start_time = block_time + cliff_period.
BuyExactIn, BuyExactOut, SellExactIn, SellExactOut rejeitarão a partir deste ponto com PoolMigrated. O pool AMM resultante é canônico e negocia como qualquer outro pool AMM v4 / CPMM.
Erros comuns — PoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.
Contas restantes de migração CPMM
Clientes construindoMigrateToCpswap devem usar estes índices remaining_accounts fixos:
A instrução requer pelo menos dez contas restantes no caminho atualizado. As contas de mint de suporte são entradas CPI somente leitura. Derive ambos os endereços mesmo quando o mint não tem registro de suporte inicializado. Construtores mais antigos que ainda anexam contas de bloqueio de criador ou omitem índices 8–9 devem ser atualizados.
Lista de permissões GlobalConfig de plataforma
PlatformConfig.restrict_global_config controla a verificação:
0: a plataforma aceita qualquerGlobalConfigválido; nenhuma conta de permissão é necessária.1:Initialize,InitializeV2eInitializeWithToken2022devem incluir oPlatformAllowConfigcorrespondente em qualquer lugar emremaining_accounts.
CreatePlatformAllowConfig e ClosePlatformAllowConfig. Suas sementes são [b"platform_allow_config", platform_config, global_config]. As instruções PlatformGlobalAccess gerenciadas por admin anterior e PDA estão aposentadas.
CollectFee
Varredura de admin das taxas de negociação acumuladas do protocolo em um único lançamento.
Argumentos — nenhum.
Contas
Efeito — transferir
pool_state.quote_protocol_fee de quote_vault para recipient_token_account, depois zerar o contador. Chamável a qualquer momento após a primeira compra.
CollectMigrateFee
Varredura de admin da taxa de migração acumulada na graduação. Mesma forma de conta que CollectFee com migrate_fee_owner como signatário (em vez de protocol_fee_owner) e pool_state.migrate_fee como contador drenado.
ClaimCreatorFee
Varredura por criador de taxas de criador acumuladas em cada lançamento que o criador possui que usa o mesmo mint de cotação. Drena o cofre de taxa por criador, não o por pool.
Argumentos — nenhum.
Contas
Efeito — transferir o saldo inteiro de
creator_fee_vault para recipient_token_account. Reverte com uma verificação require-maior-que-zero se o cofre estiver vazio.
ClaimPlatformFee
Varredura por plataforma que drena o cofre de cotação de um lançamento diretamente. Use isso quando uma plataforma quer reivindicar sua fatia para um lançamento específico sem passar pelo cofre de plataforma agregado.
Argumentos — nenhum.
Contas
Efeito — transferir
pool_state.platform_fee de quote_vault para recipient_token_account, zerar o contador.
ClaimPlatformFeeFromVault
Varredura agregada por plataforma. Drena o cofre de taxa por mint de cotação da plataforma que acumula taxas de cada lançamento roteado através da plataforma.
Argumentos — nenhum.
Contas
Efeito — transferir o saldo completo de
platform_fee_vault para recipient_token_account. Reverte se o cofre estiver vazio.
Instruções de vesting e configuração de plataforma
Estas são documentadas em páginas dedicadas porque cada uma tem seu próprio modelo de estado:CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,UpdatePlatformCurveParam,RemovePlatformCurveParam,CreatePlatformAllowConfig,ClosePlatformAllowConfigCreateConfig,UpdateConfig
Matriz de mudança de estado
Próximos passos
products/launchlab/code-demos— exemplos TypeScript para cada instrução.products/launchlab/accounts— forma de estado completo.reference/error-codes— enum de erro do LaunchLab.
- Módulo
LaunchLabdo Raydium SDK v2 - Fonte do programa Raydium LaunchLab

