Skip to main content
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
LaunchLab은 간결한 명령어 집합을 제공합니다: 사용자 대면 호출 6개와 소수의 관리자 기본 명령어. SDK가 모두를 래핑하며, 이 페이지는 애그리게이터, 모니터링 도구, CPI가 필요한 프로그램을 위한 원본 인터페이스를 문서화합니다.

명령어 목록

“ExactIn/ExactOut” 분할은 CPMM의 SwapBaseInput / SwapBaseOutput을 반영합니다 — 온체인에서는 약간 다른 반올림을 가진 별도의 명령어 판별자입니다. 졸업 경로 선택. 모든 새로운 Initialize, InitializeV2, InitializeWithToken2022 호출은 migrate_type = 1 (CPSWAP)을 설정해야 합니다. 새로운 AMM v4 바운드 풀을 초기화하려는 시도는 MigrateTypeNotMatch를 반환합니다. amm_creator_fee_on은 결과 CPMM 생성자 수수료가 인용 토큰에 적용되는지 또는 두 토큰 모두에 적용되는지만 선택합니다. 대상 프로그램을 선택하지 않습니다. MigrateToAmm은 이 제한 전에 migrate_type = 0으로 초기화된 기존 PoolState에 대해 호출 가능하게 유지됩니다. 릴리스는 기존 풀 상태를 다시 쓰거나 레거시 명령어를 제거하지 않습니다.

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_mintsupply = base_supply_max, 모두 base_vault에 있음.
  • base_mint.mint_authority = launch_authority, freeze_authority = None.
  • LaunchStatestatus = 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.
효과
  1. quote_inquote_in_after_fee와 수수료 부분으로 분할.
  2. 사후 수수료 인용에 대해 base_out을 위해 곡선을 Newton 풀이.
  3. require(base_out ≥ minimum_base_out) 아니면 ExceededSlippage로 되돌림.
  4. quote_in 사용자 → 금고로 이동. base_out 금고 → 사용자로 이동.
  5. base_sold += base_out, quote_reserve_real += quote_in_after_fee × (lp_share / total_share) 업데이트.
  6. 수수료 카운터 업데이트 (protocol_fees_quote, creator_fees_quote).
  7. state_data.num_buys += 1.
  8. 업데이트 후 quote_reserve_real ≥ quote_reserve_target이면, SDK는 일반적으로 같은 트랜잭션에서 Graduate ix를 연결합니다. 프로그램은 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에 도달하면 런칭을 거래 가능한 풀로 졸업시킵니다. 새로운 런칭은 CPMM 전용입니다. MigrateToAmm은 저장된 migrate_type0인 기존 풀을 위해 유지됩니다. 서명자
  • MigrateToAmm — 바인딩 GlobalConfig에 기록된 migrate_to_amm_wallet.
  • MigrateToCpswap — 바인딩 GlobalConfig에 기록된 migrate_to_cpswap_wallet.
이 지갑은 일반적으로 Raydium 운영 졸업 크랭크에 의해 보유됩니다. 실제로 졸업은 최종 매수를 트리거한 사람과 관계없이 임계값이 넘은 후 몇 초 내에 발생합니다. 인자 MigrateToAmm은 3개를 취합니다 (주로 프로그램이 AMM v4로 전달하는 OpenBook 시장 매개변수):
MigrateToCpswap은 없습니다. 효과 (둘 다 공통)
  1. pool_state.status == Migrate 확인 (즉, quote_reserve_target에 도달). 아니면 PoolMigrated (상태가 이미 Migrated) 또는 PoolFunding (여전히 펀딩 중)으로 되돌림.
  2. pool_state.migrate_type이 명령어와 일치하는지 확인 (0 AMM, 1 CPMM). 아니면 MigrateTypeNotMatch로 되돌림.
  3. 사후 졸업 준비금 계산:
    • base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount
    • quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
  4. 대상 프로그램 (AMM v4 Initialize2 또는 CPMM InitializeWithPermission)으로 CPI하여 그 준비금으로 사후 졸업 풀 생성.
  5. 2026-08-17 업그레이드 후 실행된 CPMM 마이그레이션의 경우, platform_scale + creator_scale을 하나의 플랫폼 소유 잠긴 LP 공유로 결합하고 최대 하나의 Fee Key NFT를 platform_nft_wallet에 민트. burn_scale 나머지 소각. 업그레이드 전에는 creator_scale이 별도로 잠겼고 그 Fee Key는 토큰 생성자에게 갔습니다. 완료된 과거 마이그레이션은 수정되지 않습니다. 레거시 AMM v4 졸업의 경우, LP 처분은 그 명령어의 기존 흐름을 따릅니다.
  6. base_mint.mint_authority 취소 (None으로 설정).
  7. 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.

CPMM 마이그레이션 남은 계정

MigrateToCpswap을 구축하는 클라이언트는 이 고정 remaining_accounts 인덱스를 사용해야 합니다: 명령어는 업그레이드된 경로에서 최소 10개의 남은 계정이 필요합니다. 지원 민트 계정은 읽기 전용 CPI 입력입니다. 민트가 초기화된 지원 기록이 없을 때도 두 주소를 모두 파생시킵니다. 여전히 생성자 잠금 계정을 추가하거나 인덱스 8–9를 생략하는 이전 빌더는 업데이트해야 합니다.

플랫폼 GlobalConfig 허용 목록

PlatformConfig.restrict_global_config는 검사를 제어합니다:
  • 0: 플랫폼은 유효한 GlobalConfig를 수용합니다; 허용 계정이 필요하지 않습니다.
  • 1: Initialize, InitializeV2, InitializeWithToken2022remaining_accounts 어디든 일치하는 PlatformAllowConfig를 포함해야 합니다.
플랫폼 관리자는 CreatePlatformAllowConfigClosePlatformAllowConfig로 PDA를 생성하거나 닫습니다. 그 시드는 [b"platform_allow_config", platform_config, global_config]입니다. 이전 관리자 관리 PlatformGlobalAccess 명령어와 PDA는 폐기됩니다.

CollectFee

단일 런칭에서 프로토콜의 누적된 거래 수수료의 관리자 수거. 인자 — 없음. 계정 효과pool_state.quote_protocol_feequote_vault에서 recipient_token_account로 이전한 후 카운터를 0으로. 첫 매수 후 언제든 호출 가능.

CollectMigrateFee

졸업 시 누적된 마이그레이션 수수료의 관리자 수거. CollectFee와 동일한 계정 형태이지만 (protocol_fee_owner 대신) migrate_fee_owner를 서명자로 하고 pool_state.migrate_fee를 배수 카운터로.

ClaimCreatorFee

생성자가 소유한 모든 런칭에서 동일한 인용 민트를 사용하는 누적된 생성자 수수료의 생성자별 수거. 풀별 수수료 금고가 아닌 생성자별 수수료 금고를 배수. 인자 — 없음. 계정 효과creator_fee_vault의 전체 잔액을 recipient_token_account로 이전. 금고가 비어 있으면 0보다 큼 검사로 되돌림.

ClaimPlatformFee

런칭의 인용 금고를 직접 배수하는 플랫폼별 수거. 집계된 플랫폼 금고를 거치지 않고 플랫폼이 특정 런칭 하나에 대한 슬라이스를 청구하려 할 때 사용합니다. 인자 — 없음. 계정 효과pool_state.platform_feequote_vault에서 recipient_token_account로 이전, 카운터를 0으로.

ClaimPlatformFeeFromVault

플랫폼별 집계 수거. 플랫폼을 통해 라우팅된 모든 런칭에서 수수료를 누적하는 플랫폼의 인용 민트별 수수료 금고를 배수. 인자 — 없음. 계정 효과platform_fee_vault의 전체 잔액을 recipient_token_account로 이전. 금고가 비어 있으면 되돌림.

베스팅 및 플랫폼 설정 명령어

각각 자체 상태 모델을 가지므로 전용 페이지에 문서화됩니다:

상태 변경 매트릭스

다음 단계

출처: