Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
GlobalConfig é a conta de configuração no nível do protocolo. Pode haver muitas delas — identificadas por (curve_type, index) — e cada lançamento escolhe exatamente uma no momento de Initialize. Os valores no GlobalConfig escolhido tornam-se limites rígidos para os parâmetros daquele lançamento. Para personalização no nível da plataforma (taxa de comissão por plataforma, formas de curva permitidas, divisões de NFT na graduação), consulte products/launchlab/platform-config.O que é
UmGlobalConfig é um PDA singleton-por-(curve_type, index) que fixa as regras do lado do protocolo que todo lançamento deve obedecer:
- O tipo de curva de ligação permitida (
curve_type). - A taxa de comissão comercial que a curva cobra em cada compra e venda.
- A comissão de migração cobrada na graduação.
- Pisos em fornecimento, taxa de bloqueio, taxa de venda e taxa de migração.
- O mint de cotação (normalmente SOL encapsulado ou USDC) — o ativo com o qual os usuários compram.
- Quatro carteiras do lado do protocolo: o proprietário da comissão do protocolo, o proprietário da comissão de migração e as duas carteiras de controle de migração retidas para graduação CPMM e AMM v4 legado.
GlobalConfig podem ser criadas pelo administrador do programa LaunchLab ou pela autoridade delegada de criação de configuração. Apenas o administrador atualiza configurações existentes. Consulte reference/program-addresses para as autoridades canônicas.
Layout
create_config do programa é a fonte da verdade.)
Semântica dos campos
curve_type e index
Juntos, esses identificam um GlobalConfig de forma única. Há um GlobalConfig por par (curve_type, index):
curve_type = 0— Curva de reserva virtual de produto constante. Padrão e mais usado.curve_type = 1— Curva de preço fixo.curve_type = 2— Curva de preço linear.
index é um u16 que permite ao administrador publicar múltiplas configurações por tipo de curva (por exemplo, uma com uma comissão mais apertada, outra com um mínimo de arrecadação de cotação mais alto). Em Initialize, o lançamento fornece um par (curve_type, index) e o programa carrega o GlobalConfig correspondente.
Taxas
trade_fee_rate— denominada em1/1_000_000do volume de negociação. Aplicada a cada compra e venda na curva. Oprotocol_fee_ownerreclama sua parte viaCollectFee.migrate_fee— uma taxa fixa em lamports (ou unidades de cotação, dependendo da configuração) cobrada uma vez na graduação. Reclamada pormigrate_fee_ownerviaCollectMigrateFee.max_share_fee_rate— inicializada para10_000(100 bps). Limita o argumentoshare_fee_ratequeBuyExactIn,BuyExactOut,SellExactIneSellExactOutaceitam — a taxa de referência paga diretamente ao receptor de compartilhamento durante a negociação. Ela não limitaPlatformConfig.fee_rate; essa taxa tem seus próprios limites, descritos emplatform-config. TantoCreateConfigquantoUpdateConfigaplicamtrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
Pisos de fornecimento e taxa
Esses pisos limitam quais parâmetros de forma de curva um lançamento pode escolher emInitialize. Se o CurveParams do criador violar algum deles, Initialize reverte com InvalidInput.
min_base_supply— o mínimosupply(sem decimais) que a curva pode declarar. Padrão é10_000_000.max_lock_rate— denominada em1/1_000_000; padrão300_000(30%). Limita vesting viatotal_locked_amount <= supply * max_lock_rate / 1_000_000.min_base_sell_rate— denominada em1/1_000_000; padrão200_000(20%). Limitabase_supply_graduation / supplypor baixo.min_base_migrate_rate— denominada em1/1_000_000; padrão200_000(20%). Limita o número de tokens deixados para semear o pool pós-graduação.min_quote_fund_raising— mínimoquote_reserve_targetque um lançamento pode declarar (com decimais). Padrão é30_000_000_000unidades do mint de cotação.
Mint de cotação e carteiras do protocolo
quote_mint— o ativo com o qual os usuários compram. A maioria dos lançamentos usa SOL encapsulado (So111…112) ou USDC (EPjF…Dt1v). UmGlobalConfigestá vinculado a um mint de cotação; lançamentos que precisam de um alvo de cotação diferente visam um(curve_type, index)diferente. O mint pode ser possuído pelo programa SPL Token ou Token-2022 — veja abaixo.protocol_fee_owner— chave pública que assinaCollectFeee reclama as comissões do protocolo acumuladas em cada lançamento vinculado a essa configuração. Armazenada on-chain; o administrador pode rotacioná-la viaUpdateConfig.migrate_fee_owner— chave pública que assinaCollectMigrateFee.
Mints de cotação Token-2022
CreateConfig aceita um quote_mint Token-2022, e pools vinculados a essa configuração o carregam de ponta a ponta: o cofre de cotação, ambos os cofres de comissão e a conta de token do receptor de comissão de compartilhamento são todos criados em Token-2022, e as instruções de swap contabilizam um TransferFeeConfig no lado da cotação. O bit1 de PoolState.token_program_flag registra a escolha por lançamento.
Duas restrições valem a pena conhecer antes de confiar em uma:
- O
Initializedescontinuado não pode lançar contra ele. ApenasInitializeV2eInitializeWithToken2022aceitam um programa de cotação Token-2022. Consulteinstructions. - Nenhuma lista de permissão de extensão é aplicada. Diferentemente de CPMM e CLMM, LaunchLab não verifica as extensões de um mint de cotação —
CreateConfigtoma o mint como dado, então o único portão é a discrição do administrador sobre quais mints são vinculados a uma configuração. A verificaçãoNoSupportExtensiondo programa cobre apenas mints base Token-2022 que o LaunchLab cria por si mesmo. Trate a vinculação de um como uma ação de alta confiança; consultereference/token-2022-support.
Carteiras de migração
As duas carteiras de graduação armazenadas exigem signatários diferentes:migrate_to_amm_wallet— assinaMigrateToAmmpara um lançamento legado existente cujomigrate_type = 0armazenado.migrate_to_cpswap_wallet— assinaMigrateToCpswap. Todo lançamento recém-inicializado usa esse caminho.
Listas de permissão do lado da plataforma
GlobalConfig não tem mais requires_platform_auth. Seu byte anterior é preenchimento, então o tamanho da conta não muda. O acesso agora é controlado por PlatformConfig.restrict_global_config e contas PlatformAllowConfig criadas pelo administrador dessa plataforma. Consulte platform-config.
Padrões na inicialização
QuandoCreateConfig é chamado, o programa semeia muitos campos com padrões codificados:
curve_type, index, migrate_fee, trade_fee_rate, quote_mint e as quatro chaves públicas da carteira explicitamente no momento da criação; valores subsequentes podem ser ajustados via UpdateConfig.
Como um lançamento escolhe um GlobalConfig
Em Initialize, o criador passa:
(curve_type, index)para selecionar qual PDAGlobalConfigcarregar.CurveParamsdescrevendo a forma da curva (supply,total_base_sell,total_quote_fund_raising,migrate_type).VestingParamsdescrevendo fornecimento bloqueado.MintParamspara o mint base.
curve_typecorresponde aglobal_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— ou seja, tokens suficientes deixados para semear o pool pós-graduação.total_quote_fund_raising >= min_quote_fund_raising.migrate_type == 1(CPSWAP).- Se a plataforma selecionada tem
restrict_global_config == 1, oPlatformAllowConfigcorrespondente é incluído.
Initialize, o PoolState do lançamento armazena a chave pública global_config diretamente, então a vinculação é permanente.
Caminho de atualização
UpdateConfig é apenas para administrador e leva um par (param: u8, value: u64). Cada valor param seleciona qual campo mutar:
Rotações de carteira (
protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) levam uma forma de argumento Pubkey separada; verifique a fonte de update_config para a tabela de despacho exata antes de compor uma transação de administrador.
O seletor anterior de UpdateConfig 12 para autorização de plataforma foi removido. Os administradores de plataforma agora gerenciam suas próprias listas de permissão.
Lendo um GlobalConfig de um cliente
getAllGlobalConfigs do SDK ou consulte o endpoint da API LaunchLab que as espelha; a contagem de contas on-chain é pequena (alguns dígitos na prática).
Referências
products/launchlab/platform-config— sobreposição por plataforma que restringe ainda mais a forma da curva.products/launchlab/accounts— gráfico de conta completo para um lançamento.products/launchlab/instructions— instruçõesInitializee atualização.reference/program-addresses— chave pública do administrador, ID do programa, autoridades compartilhadas.
raydium-launch/programs/launchpad/src/states/config.rs— structGlobalConfigeinitialize.raydium-launch/programs/launchpad/src/lib.rs—create_config,update_config.

