Skip to main content
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ũ.
Các tài khoản 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

Dẫn xuất PDA:
(Xác minh thứ tự seed chính xác từ tài khoản trên chuỗi trước khi ký — lệnh create_config của chương trình là nguồn sự thật.)

Ngữ nghĩa trường

curve_typeindex

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ằng 1/1_000_000 củ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_owner yêu cầu phần của nó thông qua CollectFee.
  • 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ởi migrate_fee_owner thông qua CollectMigrateFee.
  • max_share_fee_rate — được khởi tạo thành 10_000 (100 bps). Giới hạn đối số share_fee_rateBuyExactIn, BuyExactOut, SellExactIn, và SellExactOut chấ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ạn PlatformConfig.fee_rate; tỷ lệ đó có các giới hạn riêng của nó, được mô tả trong platform-config. Cả CreateConfigUpdateConfig đều thực thi trade_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ại Initialize. 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_supplysupply tố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ằng 1/1_000_000; mặc định 300_000 (30%). Giới hạn vesting thông qua total_locked_amount <= supply * max_lock_rate / 1_000_000.
  • min_base_sell_rate — được tính bằng 1/1_000_000; mặc định 200_000 (20%). Giới hạn base_supply_graduation / supply từ dưới.
  • min_base_migrate_rate — được tính bằng 1/1_000_000; mặc định 200_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_raisingquote_reserve_target tố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ột GlobalConfig đượ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ý CollectFee và 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 qua UpdateConfig.
  • 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:
  • Initialize không dùng nữa không thể phát hành chống lại nó. Chỉ InitializeV2InitializeWithToken2022 chấp nhận chương trình báo giá Token-2022. Xem instructions.
  • 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á — CreateConfig lấ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 tra NoSupportExtension củ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; xem reference/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ý MigrateToAmm cho 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.
Những ví này thường được giữ bởi crank tốt nghiệp do Raydium vận hành, vì vậy tốt nghiệp diễn ra ngay sau khi đường cong chạm ngưỡng thay vì chờ người tạo gọi nó.

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

Khi CreateConfig đượ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:
Quản trị viên đặt 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 PDA GlobalConfig nào để tải.
  • CurveParams mô tả hình dạng đường cong (supply, total_base_sell, total_quote_fund_raising, migrate_type).
  • VestingParams mô tả cung cấp bị khóa.
  • MintParams cho mint cơ sở.
Chương trình thực thi:
  • curve_type khớp với global_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, PlatformAllowConfig phù hợp được bao gồm.
Sau 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 UpdateConfig12 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

Đối với giao diện người dùng liệt kê tất cả các cấu hình có sẵn, hãy duyệt trình trợ giúp 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ỏ

Nguồn:
  • raydium-launch/programs/launchpad/src/states/config.rs — struct GlobalConfiginitialize.
  • raydium-launch/programs/launchpad/src/lib.rscreate_config, update_config.