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 ở mức 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 ở mức nền tảng (tỷ lệ phí cho từng 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 ở mức giao thức mà mọi lần phát hành phải tuân theo:
  • Loại đường cong liên kết được phép (curve_type).
  • Tỷ lệ phí giao dịch mà đường cong tính trên 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í ở mức 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 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 nâng 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. Á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 tỷ lệ phí chia sẻ của nền tảng từ PlatformConfig ràng buộc (xem platform-config). Chương trình thực thi trade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.

Giới hạn dưới 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%). Ràng buộc 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%). Ràng buộc 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%). Ràng buộc số lượng token còn lại để hạt giống nhóm 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.
  • 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.

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 cái 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 ở mức 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 chuyể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óm 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à nhận một 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) nhận một hình dạng đối số Pubkey riêng; 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 sử dụng 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.