이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
이 항목은 예정된 LaunchLab 프로그램 업데이트를 다룹니다. 배포 전 로컬 릴리스 브랜치에 대해 검증되었습니다. 졸업 전 withheld 수수료 인출에 의존하기 전에 배포된 프로그램을 확인하세요.
InitializeWithToken2022로 생성된 Token-2022 base 민트는 TransferFeeConfig 확장을 가질 수 있습니다. 이 확장에는 두 가지 권한이 있습니다: 수수료율과 최대 수수료를 변경하는 transfer_fee_config_authority, 그리고 Token-2022가 토큰 계정에서 보유하는 수수료를 인출하는 withdraw_withheld_authority.
이 릴리스 이전에는 프로그램이 민트 생성 시 두 권한 모두에 launch authority PDA를 배치하고 졸업 시 둘 다 PlatformConfig.transfer_fee_extension_auth에 넘겼습니다. 런치패드 프로그램에는 withdraw-withheld 또는 harvest 명령어가 없으므로, 전체 보닝 곡선 단계 동안 아무도 withheld 잔액을 인출할 수 없었습니다. 인출할 수 있는 유일한 키는 서명할 명령어가 없는 PDA였습니다.
이 릴리스는 민트 생성 시 transfer_fee_extension_auth를 withdraw_withheld_authority에 직접 기록하므로, 플랫폼은 첫 거래부터 withheld 수수료를 회수할 수 있습니다. MigrateToCpswap은 PDA가 여전히 권한을 보유할 때만 그 권한을 재할당하는 가드를 추가하여, 두 세대의 민트 모두에서 졸업이 작동하도록 유지합니다.
다른 것은 변경되지 않았습니다. 계정이 커지거나 줄어들지 않았고, 명령어가 계정을 얻거나 잃지 않았으며, 인수가 변경되지 않았고, 오류 코드가 이동하지 않았습니다.
통합자를 위한 요약
- Withheld 전송 수수료는 런칭 중에 인출 가능합니다.
transfer_fee_extension_auth가 설정된 플랫폼의 새로운 Token-2022 런칭에서, 그 키는 생성 시점부터 민트의withdraw_withheld_authority입니다. Token-2022의WithdrawWithheldTokensFromAccounts/WithdrawWithheldTokensFromMint를 직접 호출하세요. LaunchLab에는 이를 위한 명령어가 없으며 처음부터 없었습니다. transfer_fee_config_authority타이밍은 변경되지 않았습니다. 졸업까지 여전히 launchauthorityPDA이며,MigrateToCpswap에서 여전히transfer_fee_extension_auth로 이동합니다. 런칭 중에는 수수료율을 변경할 수 없습니다.- 런칭 전에
transfer_fee_extension_auth를 설정하세요. 민트 생성 시Pubkey::default()일 때, withdraw 권한은authorityPDA로 폴백됩니다 — 이전 동작입니다. 나중에 필드를 설정하면 졸업 시 권한을 복구할 수 있지만, withheld 잔액은 그때까지 고립됩니다. - 런칭 중에 필드를 회전하지 마세요. 두 권한은 두 가지 다른 시점에 읽혀지므로, 그 사이에 변경되는 값은 다른 키에 남겨집니다. 자세한 내용은 회전이 두 권한을 분리합니다를 참조하세요.
- 호출자에게
MigrateToCpswap은 변경되지 않았습니다. 동일한 계정, 동일한 인수, 동일한 오류입니다. 새로운 가드는 내부적입니다. 없으면 새 세대 민트의 마이그레이션이 Token-2022 내부에서 되돌려질 것입니다. PDA가 더 이상 보유하지 않는 권한을 서명할 수 없기 때문입니다. - 기존 런칭은 영향을 받지 않습니다. 이미 온체인에 있는 민트는 두 권한 모두에 PDA를 유지하고 졸업 시 둘 다 넘겨받습니다.
- IDL 새로고침이 필요하지 않습니다. 레이아웃, 계정, 인수, 또는 오류 코드가 변경되지 않았습니다.
누가 무엇을 보유하고 언제인가
두 인수 모두 여전히 항상 그랬던 동일한 외부 조건 뒤에 있습니다: base 민트는
TransferFeeConfig를 그리고 transfer_fee_extension_auth는 기본값이 아니어야 합니다. 필드를 설정하지 않는 플랫폼은 두 권한을 authority PDA에 영구적으로 유지합니다 — 수수료율을 변경할 수 없고 withheld 잔액을 인출할 수 없습니다.
회전이 두 권한을 분리합니다
transfer_fee_extension_auth는 런칭당 두 번, 며칠 떨어진 두 시점에 읽혀집니다:
InitializeWithToken2022에서,withdraw_withheld_authority를 위해.MigrateToCpswap에서,transfer_fee_config_authority를 위해 — 그리고 PDA가 여전히 보유할 때만withdraw_withheld_authority를 위해.
UpdatePlatformConfig를 통해 필드를 회전하면 두 권한이 다른 키에 착지합니다: withdraw 측은 생성 시 구성된 키를 유지합니다. PDA가 더 이상 보유하지 않고 마이그레이션이 그 인수를 건너뛰기 때문입니다. 반면 수수료 구성 측은 새 키로 이동합니다. 어느 호출도 실패하지 않습니다. 분리는 조용합니다. 런칭 사이에 회전하거나, 나중에 Token-2022를 통해 직접 이전 키로 서명하여 키를 조정하세요.
가드가 필요한 이유, 단순히 방어적이지 않은 이유
Token-2022의SetAuthority는 현재 권한이 서명해야 합니다. 새로운 생성 규칙에서 launch authority PDA는 새 민트의 withdraw-withheld 권한이 아니므로, 프로그램이 만들던 무조건적 CPI는 실패할 것입니다 — 그리고 MigrateToCpswap 내부에 있기 때문에, 그 실패는 전송 수수료가 있는 모든 Token-2022 런칭의 졸업을 차단했을 것입니다. 필드를 구성한 플랫폼에서. 두 변경은 쌍으로만 작동합니다.
변경되지 않은 것
- 전송 수수료 수학 및 회계.
MAX_TRANSFER_FEE_RATE는 여전히500(5%, 분모10_000), 수수료는 여전히 곡선에 동일한 방식으로 가격이 책정되며, withheld 잔액은 여전히 Token-2022가 배치하는 토큰 계정에 누적됩니다. MigrateToCpswap의 인터페이스. 동일한 계정 목록, 동일한remaining_accounts인덱스, 동일한 두 토큰 프로그램, 인수 없음.InitializeWithToken2022의 인터페이스. 동일한 계정, 동일한TransferFeeExtensionParams,MetadataPointer와TransferFeeConfig외의 모든 것에 대한 동일한NoSupportExtension거부.- Quote 측 Token-2022 처리. 2026-08-24에서 변경되지 않음.
- 오류 코드.
6000–6023은 변경되지 않았습니다. 이 릴리스는 추가하지 않습니다. - 계정 레이아웃 및 IDL. 변경되지 않음.
PlatformConfig.transfer_fee_extension_auth는 오프셋과 타입을 유지합니다. 프로그램이 읽는 방식만 변경되었습니다.
업데이트된 페이지
products/launchlab/platform-config— 두 권한, 두 인수 지점, 회전 함정을 다루는 새로운 “Token-2022 전송 수수료 권한” 섹션; 레이아웃 주석 및 함정 목록 수정.products/launchlab/instructions—MigrateToCpswap은 “Token-2022 전송 수수료 권한 인수” 블록을 추가합니다.Initialize사후 조건은 새 민트 생성 권한을 기록합니다.products/launchlab/accounts— authority-PDA 역할 목록 및 base-mint 섹션은 PDA가 실제로 보유하는 전송 수수료 권한을 기록합니다.reference/token-2022-support— LaunchLab base-mint 항목은 전송 수수료 권한을 보유하는 사람과 시기를 명시합니다.

