이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
LaunchLab은 간결한 명령어 집합을 제공합니다: 사용자 대면 6개 호출과 소수의 관리 기본 명령어들입니다. SDK가 모두 래핑하고 있으며, 이 페이지는 애그리게이터, 모니터링 도구, CPI가 필요한 프로그램을 위한 원본 인터페이스를 문서화합니다.
명령어 목록
“ExactIn/ExactOut” 분할은 CPMM의
SwapBaseInput / SwapBaseOutput을 반영합니다 — 온체인에서는 약간 다른 반올림을 가진 별도 명령어 판별자입니다.
졸업 경로 선택. migrate_type은 Initialize{V2,WithToken2022} 시점에 PoolState에 기록되며 실행 가능한 두 졸업 명령어 중 하나를 결정합니다. Token-2022 출시는 항상 CPMM으로 마이그레이션합니다. SPL Token 출시는 amm_creator_fee_on 설정에 따라 AMM v4 또는 CPMM으로 마이그레이션합니다:
BothToken→MigrateToAmm→ AMM v4 풀 (생성자 수수료를 양쪽에서 수집할 수 있음; AMM v4는 네이티브 생성자 수수료 필드가 없으므로 생성자 수수료는 LP 잠금 NFT 메커니즘으로 대신 취함).QuoteToken→MigrateToCpswap→creator_fee_on = OnlyQuoteToken을 가진 CPMM 풀 (생성자는 LaunchLab 수수료 키 NFT를 통해 CPMM 풀에서 계속 수수료를 얻습니다 —products/launchlab/creator-fees참조).
Initialize
새 출시를 생성합니다.
인수
사전 조건
quote_mint ∈ launch_config.allowed_quote_mints.base_supply_graduation ≤ base_supply_max.- 수수료 파라미터가
launch_config.max_*_fee_rate검사를 통과합니다. open_time ≥ now − slop(SDK는≥ now를 강제; 프로그램은 약간의 과거 날짜를 허용).curve_type이 인식됩니다.
base_mint는supply = base_supply_max, 모두base_vault에 있습니다.base_mint.mint_authority = launch_authority,freeze_authority = None.LaunchState는status = Active,base_sold = 0,quote_reserve_real = 0으로 초기화됩니다.quote_reserve_target은 곡선 파라미터 +base_supply_graduation+buy_numerator에서 계산됩니다 (대략적으로).
InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (표준 변형: BuyExactIn)
사용자가 고정 quote_in을 제공하고 곡선이 base_out을 계산합니다.
인수
사전 조건
launch_state.status == Active.now ≥ open_time.user_quote_ata.balance ≥ quote_in.quote_in > 0.
quote_in을quote_in_after_fee와 수수료 부분으로 분할합니다.- 포스트 수수료 견적에 주어진
base_out에 대해 곡선을 Newton 풀이합니다. require(base_out ≥ minimum_base_out)아니면ExceededSlippage로 되돌립니다.quote_in을 사용자 → 볼트로 이동합니다.base_out을 볼트 → 사용자로 이동합니다.base_sold += base_out,quote_reserve_real += quote_in_after_fee × (lp_share / total_share)을 업데이트합니다.- 수수료 카운터 (
protocol_fees_quote,creator_fees_quote)를 업데이트합니다. state_data.num_buys += 1.- 업데이트 후
quote_reserve_real ≥ quote_reserve_target이면, SDK는 일반적으로 같은 거래에서Graduateix를 연결합니다. 프로그램은Buy내에서 자동 졸업하지 않습니다 — 후속Graduate이 필요합니다.
BuyExactOut
사용자가 정확한 base_out을 지정하고 프로그램이 quote_in을 계산합니다.
인수
BuyExactIn과 동일한 계정. Newton 반복 대신 폐쇄형 이차 적분 (또는 curve_type 1에 대한 CPMM 역함수)을 사용합니다.
Sell / SellExactIn / SellExactOut
Buy의 미러. 사용자가 base_in을 곡선에 반환하고 quote_out을 받습니다. 수수료는 quote_out에서 차감되므로 사용자는 원본 통합 수익보다 적게 받습니다.
사전 조건 —
user_base_ata.balance ≥ base_in.- 매도는
base_sold를 0 이하로 밀어낼 수 없습니다 (위의 것과 중복이며 회계가 일관성이 있음). - 출시는
Active입니다.
Buy와 대칭입니다. base_sold는 감소하고, quote_reserve_real은 감소합니다. 수수료는 여전히 누적됩니다.
MigrateToAmm / MigrateToCpswap
곡선이 total_quote_fund_raising에 도달하면 출시를 거래 가능한 AMM 풀로 졸업합니다. 두 명령어는 두 졸업 대상 — AMM v4 및 CPMM —에 해당하며 임의의 주어진 출시에 대해 하나만 유효하며, pool_state.migrate_type에 의해 결정됩니다 (Initialize 시점에 설정).
서명자
MigrateToAmm— 바인딩GlobalConfig에 기록된migrate_to_amm_wallet.MigrateToCpswap— 바인딩GlobalConfig에 기록된migrate_to_cpswap_wallet.
MigrateToAmm은 3개를 취합니다 (주로 프로그램이 AMM v4로 전달하는 OpenBook 마켓 파라미터):
MigrateToCpswap은 없습니다.
효과 (둘 다에 공통)
pool_state.status == Migrate확인 (즉,quote_reserve_target에 도달함). 아니면PoolMigrated(상태는 이미Migrated) 또는PoolFunding(여전히 자금 조성 중)으로 되돌립니다.pool_state.migrate_type이 명령어와 일치하는지 확인 (0AMM,1CPMM). 아니면MigrateTypeNotMatch로 되돌립니다.- 졸업 후 예비금을 계산합니다:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- 대상 프로그램 (
AMM v4 Initialize2또는CPMM InitializeWithPermission)으로 CPI하고 졸업 후 풀을 생성합니다. - 결과 LP를 바인딩
PlatformConfig.{platform_scale, creator_scale, burn_scale}(CPMM만)에 따라 분할합니다 — 한 조각은platform_nft_wallet로 발행되고, 하나는 LP 잠금 프로그램으로 래핑된 생성자 NFT로, 하나는 Burn & Earn으로 소각됩니다. AMM v4 졸업의 경우, LP 배치는 AMM v4의 자체 초기화 파라미터에 의해 관리됩니다. base_mint.mint_authority취소 (None으로 설정).pool_state.status = Migrated로 전환,vesting_schedule.start_time = block_time + cliff_period설정.
BuyExactIn, BuyExactOut, SellExactIn, SellExactOut은 이 시점부터 PoolMigrated로 거부합니다. 결과 AMM 풀은 표준이며 다른 AMM v4 / CPMM 풀처럼 거래됩니다.
일반적 오류 — PoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.
CollectFee
단일 출시에서 프로토콜의 누적 거래 수수료에 대한 관리자 수집.
인수 — 없음.
계정
효과 —
quote_vault에서 recipient_token_account로 pool_state.quote_protocol_fee를 이전한 다음 카운터를 0으로 설정합니다. 첫 매수 후 언제든지 호출 가능합니다.
CollectMigrateFee
졸업 시 누적된 마이그레이션 수수료의 관리자 수집. CollectFee와 동일한 계정 형태이지만 protocol_fee_owner 대신 서명자로 migrate_fee_owner를 사용하고 pool_state.migrate_fee를 드레인 카운터로 사용합니다.
ClaimCreatorFee
생성자가 소유한 동일한 견적 민트를 사용하는 모든 출시에 걸쳐 누적된 생성자 수수료의 생성자별 수집. 풀별 항목이 아닌 생성자별 수수료 볼트를 드레인합니다.
인수 — 없음.
계정
효과 —
creator_fee_vault의 전체 잔액을 recipient_token_account로 이전합니다. 볼트가 비어 있으면 0보다 큼 검사로 되돌립니다.
ClaimPlatformFee
출시의 견적 볼트를 직접 드레인하는 플랫폼별 수집. 집계된 플랫폼 볼트를 거치지 않고 플랫폼이 특정 출시에 대한 조각을 청구하려고 할 때 사용합니다.
인수 — 없음.
계정
효과 —
quote_vault에서 recipient_token_account로 pool_state.platform_fee를 이전하고 카운터를 0으로 설정합니다.
ClaimPlatformFeeFromVault
플랫폼별 집계 수집. 플랫폼을 통해 라우팅된 모든 출시에서 수수료가 누적되는 견적 민트당 플랫폼 수수료 볼트를 드레인합니다.
인수 — 없음.
계정
효과 —
platform_fee_vault의 전체 잔액을 recipient_token_account로 이전합니다. 볼트가 비어 있으면 되돌립니다.
베스팅 및 플랫폼 설정 명령어
이들은 전용 페이지에 문서화되어 있습니다. 각각 자체 상태 모델을 가지고 있기 때문입니다:CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,UpdatePlatformCurveParam,RemovePlatformCurveParam,CreatePlatformGlobalAccess,ClosePlatformGlobalAccessCreateConfig,UpdateConfig
상태 변화 행렬
다음 단계
products/launchlab/code-demos— 각 명령어에 대한 TypeScript 예제.products/launchlab/accounts— 전체 상태 형태.reference/error-codes— LaunchLab 오류 열거형.
- Raydium SDK v2
LaunchLab모듈 - Raydium LaunchLab 프로그램 소스

