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 — indexadas por (curve_type, index) — e cada lançamento escolhe exatamente uma no momento de Initialize. Os valores no GlobalConfig escolhido então se tornam limites rígidos para os parâmetros daquele lançamento. Para personalização no nível da plataforma (taxa de taxa 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 no nível do protocolo que todo lançamento deve obedecer:
- O tipo de curva de ligação permitida (
curve_type). - A taxa de negociação que a curva cobra em cada compra e venda.
- A taxa 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 (tipicamente SOL envolvido ou USDC) — o ativo com o qual os usuários compram.
- Quatro carteiras no nível do protocolo: o proprietário da taxa de protocolo, o proprietário da taxa 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 campos indexam 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 taxa 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_ownerreivindica 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. Reivindicada pormigrate_fee_ownerviaCollectMigrateFee.max_share_fee_rate— inicializada para10_000(100 bps). Limita a taxa de taxa de compartilhamento da plataforma doPlatformConfigvinculante (consulteplatform-config). O programa garantetrade_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 qualquer um 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 de protocolo
quote_mint— o ativo com o qual os usuários compram. A maioria dos lançamentos usa SOL envolvido (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.protocol_fee_owner— chave pública que assinaCollectFeee reivindica as taxas de 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.
Carteiras de migração
As duas carteiras de graduação armazenadas requerem 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 no nível da plataforma
GlobalConfig não tem mais requires_platform_auth. Seu byte anterior é preenchimento, portanto 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 de 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, portanto a vinculação é permanente.
Caminho de atualização
UpdateConfig é apenas para administrador e recebe 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) recebem uma forma de argumento Pubkey separada; consulte a fonte update_config para a tabela de dispatch exata antes de compor uma transação de administrador.
O seletor anterior UpdateConfig 12 para autorização de plataforma foi removido. 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 completo de contas para um lançamento.products/launchlab/instructions— instruçõesInitializee de 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.

