Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →
InitializeWithToken2022 có thể mang TransferFeeConfig. Extension này có hai quyền: transfer_fee_config_authority, thay đổi tỷ lệ phí và phí tối đa, và withdraw_withheld_authority, rút các khoản phí mà Token-2022 giữ lại trên các tài khoản token.
Cho đến phiên bản này, chương trình đặt launch authority PDA trên cả hai quyền khi tạo mint và chuyển cả hai cho PlatformConfig.transfer_fee_extension_auth khi graduation. Chương trình launchpad không có instruction withdraw-withheld hay harvest, vì vậy trong toàn bộ giai đoạn bonding-curve, không ai có thể rút số dư bị giữ lại — khóa duy nhất có thể làm được là PDA mà không có instruction để ký với nó.
Phiên bản này ghi transfer_fee_extension_auth trực tiếp vào withdraw_withheld_authority khi tạo mint, để nền tảng có thể thu hồi phí bị giữ lại từ giao dịch đầu tiên. MigrateToCpswap có thêm một guard để chỉ gán lại quyền đó khi PDA vẫn là người giữ nó, điều này giữ cho graduation hoạt động cho mint từ cả hai thế hệ.
Không có gì khác thay đổi. Không tài khoản nào phát triển hay co lại, không instruction nào mất hoặc nhận tài khoản, không đối số nào thay đổi, và không mã lỗi nào di chuyển.
TL;DR cho các nhà tích hợp
- Phí chuyển bị giữ lại có thể rút được trong quá trình launch. Trên một launch Token-2022 mới có nền tảng đặt
transfer_fee_extension_auth, khóa đó làwithdraw_withheld_authoritycủa mint từ lúc tạo. Gọi trực tiếpWithdrawWithheldTokensFromAccounts/WithdrawWithheldTokensFromMintcủa Token-2022; LaunchLab không có instruction cho việc này và chưa bao giờ có. - Thời gian
transfer_fee_config_authoritykhông thay đổi. Nó vẫn là launchauthorityPDA cho đến graduation, và vẫn chuyển sangtransfer_fee_extension_authtrongMigrateToCpswap. Tỷ lệ phí không thể thay đổi giữa launch. - Đặt
transfer_fee_extension_authtrước khi launch. Khi nó làPubkey::default()khi tạo mint, quyền rút sẽ quay trở lạiauthorityPDA — hành vi cũ. Đặt trường này sau vẫn khôi phục quyền khi graduation, nhưng số dư bị giữ lại sẽ bị mắc kẹt cho đến lúc đó. - Không xoay trường giữa launch. Hai quyền được đọc tại hai thời điểm khác nhau, vì vậy giá trị thay đổi giữa chúng sẽ để chúng trên các khóa khác nhau. Chi tiết trong Rotation splits the two authorities.
MigrateToCpswapkhông thay đổi cho người gọi. Cùng tài khoản, cùng đối số, cùng lỗi. Guard mới là nội bộ; nếu không có nó, migration của mint thế hệ mới sẽ revert bên trong Token-2022 vì PDA không còn có thể ký để từ bỏ quyền mà nó không giữ.- Các launch hiện có không bị ảnh hưởng. Mint đã trên chuỗi giữ PDA trên cả hai quyền và vẫn nhận cả hai khi graduation.
- Không cần làm mới IDL. Không layout, tài khoản, đối số hay mã lỗi nào thay đổi.
Ai giữ cái gì, và khi nào
Cả hai bàn giao vẫn nằm phía sau cùng một điều kiện bên ngoài mà chúng luôn có: mint cơ sở phải mang
TransferFeeConfig và transfer_fee_extension_auth phải không phải mặc định. Nền tảng không bao giờ đặt trường này giữ cả hai quyền trên authority PDA mãi mãi — tỷ lệ phí không bao giờ có thể thay đổi và số dư bị giữ lại không bao giờ có thể rút được.
Rotation chia tách hai quyền
transfer_fee_extension_auth được đọc hai lần mỗi launch, tại hai thời điểm có thể cách nhau nhiều ngày:
- Tại
InitializeWithToken2022, chowithdraw_withheld_authority. - Tại
MigrateToCpswap, chotransfer_fee_config_authority— và chowithdraw_withheld_authoritychỉ khi PDA vẫn giữ nó.
UpdatePlatformConfig giữa chúng và hai quyền sẽ nằm trên các khóa khác nhau: phía rút giữ khóa được cấu hình khi tạo, vì PDA không còn giữ nó và migration bỏ qua bàn giao đó, trong khi phía cấu hình phí đi đến khóa mới. Cả hai lệnh gọi không thất bại; sự chia tách là im lặng. Xoay giữa các launch, hoặc hòa giải các khóa sau đó trực tiếp thông qua Token-2022 với khóa cũ ký.
Tại sao guard là cần thiết, không chỉ là phòng chống
SetAuthority của Token-2022 yêu cầu quyền hiện tại phải ký. Theo quy tắc tạo mới, launch authority PDA không phải là withdraw-withheld authority trên mint mới, vì vậy CPI vô điều kiện mà chương trình từng thực hiện sẽ thất bại — và vì nó nằm bên trong MigrateToCpswap, thất bại đó sẽ chặn graduation cho mọi Token-2022 launch có phí chuyển trên nền tảng đã cấu hình trường. Hai thay đổi chỉ hoạt động như một cặp.
Cái gì không thay đổi
- Toán học và kế toán phí chuyển.
MAX_TRANSFER_FEE_RATEvẫn là500(5%, mẫu số10_000), phí vẫn được định giá vào curve cùng cách, và số dư bị giữ lại vẫn tích lũy trên các tài khoản token mà Token-2022 đặt nó. - Giao diện của
MigrateToCpswap. Cùng danh sách tài khoản, cùng chỉ sốremaining_accounts, cùng hai chương trình token, không đối số. - Giao diện của
InitializeWithToken2022. Cùng tài khoản, cùngTransferFeeExtensionParams, cùng từ chốiNoSupportExtensioncho bất cứ thứ gì ngoàiMetadataPointervàTransferFeeConfig. - Xử lý Token-2022 phía quote. Không thay đổi từ 2026-08-24.
- Mã lỗi.
6000–6023không thay đổi; phiên bản này không thêm cái nào. - Layout tài khoản và IDL. Không thay đổi.
PlatformConfig.transfer_fee_extension_authgiữ offset và kiểu của nó; chỉ khi chương trình đọc nó thay đổi.
Trang được cập nhật
products/launchlab/platform-config— phần “Token-2022 transfer-fee authorities” mới bao gồm cả hai quyền, cả hai điểm bàn giao, và bẫy rotation; bình luận layout và danh sách pitfalls được sửa.products/launchlab/instructions—MigrateToCpswapcó thêm khối “Token-2022 transfer-fee authority handover”; postconditions củaInitializeghi lại các quyền tạo mint mới.products/launchlab/accounts— danh sách vai trò authority-PDA và phần mint cơ sở ghi chú PDA thực sự giữ quyền transfer-fee nào.reference/token-2022-support— mục mint cơ sở LaunchLab nêu ai giữ các quyền transfer-fee và khi nào.

