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 →
GlobalConfig là tài khoản cấu hình ở cấp độ giao thức. Có thể có nhiều tài khoản — được khóa bằng (curve_type, index) — và mỗi lần phát hành chọn chính xác một tài khoản tại thời điểm Initialize. Các giá trị trên GlobalConfig được chọn sau đó trở thành giới hạn cứng cho các tham số của lần phát hành đó. Để tùy chỉnh ở cấp độ nền tảng (tỷ lệ phí cho mỗi nền tảng, hình dạng đường cong được phép, chia tách NFT tại tốt nghiệp), xem products/launchlab/platform-config.Nó là gì
GlobalConfig là một PDA singleton-per-(curve_type, index) xác định các quy tắc ở cấp độ giao thức mà mọi lần phát hành phải tuân theo:
- Loại bonding curve được phép (
curve_type). - Tỷ lệ phí giao dịch mà đường cong tính cho mỗi lần mua và bán.
- Phí di chuyển được tính tại tốt nghiệp.
- Giới hạn dưới về cung cấp, tỷ lệ khóa, tỷ lệ bán và tỷ lệ di chuyển.
- Mint báo giá (thường là SOL được bao bọc hoặc USDC) — tài sản mà người dùng mua.
- Bốn ví ở cấp độ giao thức: chủ sở hữu phí giao thức, chủ sở hữu phí di chuyển, và hai ví kiểm soát di chuyển được giữ lại cho tốt nghiệp CPMM và AMM v4 cũ.
GlobalConfig có thể được tạo bởi quản trị viên chương trình LaunchLab hoặc cơ quan tạo cấu hình được ủy quyền. Chỉ quản trị viên cập nhật các cấu hình hiện có. Xem reference/program-addresses để biết các cơ quan có thẩm quyền chính thức.
Bố cục
create_config của chương trình là nguồn sự thật.)
Ngữ nghĩa trường
curve_type và index
Cùng nhau, chúng khóa một GlobalConfig một cách duy nhất. Có một GlobalConfig cho mỗi cặp (curve_type, index):
curve_type = 0— Đường cong dự trữ ảo sản phẩm hằng số. Mặc định và được sử dụng nhiều nhất.curve_type = 1— Đường cong giá cố định.curve_type = 2— Đường cong giá tuyến tính.
index là một u16 cho phép quản trị viên xuất bản nhiều cấu hình cho mỗi loại đường cong (ví dụ: một với phí chặt hơn, một với mức tối thiểu báo giá cao hơn). Tại Initialize, lần phát hành cung cấp cặp (curve_type, index) và chương trình tải GlobalConfig phù hợp.
Phí
trade_fee_rate— được tính bằng1/1_000_000của khối lượng giao dịch. Được áp dụng cho mỗi lần mua và bán trên đường cong.protocol_fee_owneryêu cầu phần của nó thông quaCollectFee.migrate_fee— một khoản phí cố định tính bằng lamports (hoặc đơn vị báo giá, tùy thuộc vào cấu hình) được tính một lần tại tốt nghiệp. Được yêu cầu bởimigrate_fee_ownerthông quaCollectMigrateFee.max_share_fee_rate— được khởi tạo thành10_000(100 bps). Giới hạn đối sốshare_fee_ratemàBuyExactIn,BuyExactOut,SellExactIn, vàSellExactOutchấp nhận — phí giới thiệu được trả trực tiếp cho người nhận chia sẻ trong quá trình giao dịch. Nó không giới hạnPlatformConfig.fee_rate; tỷ lệ đó có các giới hạn riêng của nó, được mô tả trongplatform-config. CảCreateConfigvàUpdateConfigđều thực thitrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
Giới hạn dưới về cung cấp và tỷ lệ
Những giới hạn này ràng buộc những tham số hình dạng đường cong mà lần phát hành có thể chọn tạiInitialize. Nếu CurveParams của người tạo vi phạm bất kỳ giới hạn nào, Initialize sẽ hoàn nguyên với InvalidInput.
min_base_supply—supplytối thiểu (không có số thập phân) mà đường cong có thể khai báo. Mặc định là10_000_000.max_lock_rate— được tính bằng1/1_000_000; mặc định300_000(30%). Giới hạn vesting thông quatotal_locked_amount <= supply * max_lock_rate / 1_000_000.min_base_sell_rate— được tính bằng1/1_000_000; mặc định200_000(20%). Giới hạnbase_supply_graduation / supplytừ dưới.min_base_migrate_rate— được tính bằng1/1_000_000; mặc định200_000(20%). Giới hạn số lượng token còn lại để hạt giống nhân của pool sau tốt nghiệp.min_quote_fund_raising—quote_reserve_targettối thiểu mà lần phát hành có thể khai báo (với số thập phân). Mặc định là30_000_000_000đơn vị của mint báo giá.
Mint báo giá và ví giao thức
quote_mint— tài sản mà người dùng mua. Hầu hết các lần phát hành sử dụng SOL được bao bọc (So111…112) hoặc USDC (EPjF…Dt1v). MộtGlobalConfigđược liên kết với một mint báo giá; các lần phát hành cần một mục tiêu báo giá khác nhắm mục tiêu một(curve_type, index)khác. Mint có thể được sở hữu bởi chương trình SPL Token hoặc Token-2022 — xem bên dưới.protocol_fee_owner— pubkey kýCollectFeevà yêu cầu các phí giao thức tích lũy trên mỗi lần phát hành được liên kết với cấu hình này. Được lưu trữ trên chuỗi; quản trị viên có thể xoay nó thông quaUpdateConfig.migrate_fee_owner— pubkey kýCollectMigrateFee.
Mint báo giá Token-2022
CreateConfig chấp nhận một quote_mint Token-2022, và các pool được liên kết với cấu hình như vậy mang nó từ đầu đến cuối: kho báo giá, cả hai kho phí, và tài khoản token của người nhận phí chia sẻ đều được tạo trên Token-2022, và các lệnh swap tính toán TransferFeeConfig ở phía báo giá. Bit1 PoolState.token_program_flag ghi lại lựa chọn cho mỗi lần phát hành.
Hai ràng buộc đáng biết trước khi bạn dựa vào một:
Initializekhông dùng nữa không thể phát hành chống lại nó. ChỉInitializeV2vàInitializeWithToken2022chấp nhận chương trình báo giá Token-2022. Xeminstructions.- Không có danh sách cho phép tiện ích nào được áp dụng. Không giống như CPMM và CLMM, LaunchLab không sàng lọc các tiện ích của mint báo giá —
CreateConfiglấy mint như đã cho, vì vậy cổng duy nhất là quyết định của quản trị viên về những mint nào được liên kết với cấu hình. Kiểm traNoSupportExtensioncủa chương trình chỉ bao gồm các mint cơ sở Token-2022 mà LaunchLab tự tạo. Coi việc liên kết một mint là một hành động đáng tin cậy cao; xemreference/token-2022-support.
Ví di chuyển
Hai ví tốt nghiệp được lưu trữ yêu cầu những người ký khác nhau:migrate_to_amm_wallet— kýMigrateToAmmcho một lần phát hành cũ hiện có cómigrate_type = 0được lưu trữ.migrate_to_cpswap_wallet— kýMigrateToCpswap. Mỗi lần phát hành mới được khởi tạo sử dụng đường dẫn này.
Danh sách cho phép ở cấp độ nền tảng
GlobalConfig không còn có requires_platform_auth. Byte cũ của nó là padding, vì vậy kích thước tài khoản không thay đổi. Quyền truy cập hiện được kiểm soát bởi PlatformConfig.restrict_global_config và các tài khoản PlatformAllowConfig được tạo bởi quản trị viên nền tảng đó. Xem platform-config.
Giá trị mặc định tại khởi tạo
KhiCreateConfig được gọi, chương trình hạt giống nhiều trường với các giá trị mặc định được mã hóa cứng:
curve_type, index, migrate_fee, trade_fee_rate, quote_mint, và bốn pubkey ví một cách rõ ràng tại thời điểm tạo; các giá trị tiếp theo có thể được điều chỉnh thông qua UpdateConfig.
Cách lần phát hành chọn một GlobalConfig
Tại Initialize, người tạo truyền:
(curve_type, index)để chọn PDAGlobalConfignào để tải.CurveParamsmô tả hình dạng đường cong (supply,total_base_sell,total_quote_fund_raising,migrate_type).VestingParamsmô tả cung cấp bị khóa.MintParamscho mint cơ sở.
curve_typekhớp vớiglobal_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— tức là, đủ token còn lại để hạt giống nhân của pool sau tốt nghiệp.total_quote_fund_raising >= min_quote_fund_raising.migrate_type == 1(CPSWAP).- Nếu nền tảng được chọn có
restrict_global_config == 1,PlatformAllowConfigphù hợp được bao gồm.
Initialize, PoolState của lần phát hành lưu trữ pubkey global_config trực tiếp, vì vậy liên kết là vĩnh viễn.
Đường dẫn cập nhật
UpdateConfig chỉ dành cho quản trị viên và lấy cặp (param: u8, value: u64). Mỗi giá trị param chọn trường nào để thay đổi:
Xoay ví (
protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) lấy một hình dạng đối số Pubkey riêng biệt; kiểm tra nguồn update_config để biết bảng điều phối chính xác trước khi soạn giao dịch quản trị viên.
Bộ chọn UpdateConfig cũ 12 cho phép xác thực nền tảng bị xóa. Quản trị viên nền tảng hiện quản lý danh sách cho phép của riêng họ.
Đọc GlobalConfig từ máy khách
getAllGlobalConfigs của SDK hoặc truy vấn điểm cuối API LaunchLab phản ánh chúng; số lượng tài khoản trên chuỗi rất nhỏ (một chữ số trong thực tế).
Con trỏ
products/launchlab/platform-config— lớp phủ cho mỗi nền tảng ràng buộc hình dạng đường cong thêm.products/launchlab/accounts— biểu đồ tài khoản đầy đủ cho một lần phát hành.products/launchlab/instructions—Initializevà hướng dẫn cập nhật.reference/program-addresses— pubkey quản trị viên, ID chương trình, cơ quan chung.
raydium-launch/programs/launchpad/src/states/config.rs— structGlobalConfigvàinitialize.raydium-launch/programs/launchpad/src/lib.rs—create_config,update_config.

