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 →
Ba chương trình, ba schema. Farm v3, v5, và v6 là những chương trình riêng biệt với bố cục state riêng biệt. Trang này trình bày từng phiên bản cạnh nhau. Trong thực tế, hầu hết các tích hợp mới nhắm tới v6; v3 và v5 là chỉ-đọc cho hầu hết các nhà tích hợp (staking đã xảy ra ở đó từ lâu và các pool đang trong giai đoạn kết thúc).

Danh sách tài khoản (mỗi farm, bất kỳ phiên bản)

SDK trả về toàn bộ tập hợp trên raydium.farm.getFarmById. Đối với các farm của bên thứ ba tùy ý, endpoint API GET https://api-v3.raydium.io/main/farms/info?ids=<FARM_ID> cũng trả về chúng.

Bố cục FarmState — v6

v6 là phiên bản hiện tại. Cấu trúc tài khoản của nó là chung nhất.
Các trường hướng tới nhà tích hợp:
  • staking_mint, staking_vault — những gì được stake và nơi nó được đặt.
  • total_staked — tổng hiện tại. Cần thiết để tính APR: reward_per_second × 86400 / total_staked.
  • reward_infos[i].emission_per_second_x64 — tỷ lệ Q64.64. Chia cho 2^64 để có số token thực trên giây.
  • reward_infos[i].open_time / end_time — cho hiển thị UI “X ngày còn lại”.
  • reward_infos[i].reward_per_share_x64 — bộ đếm mà UserLedger dư nợ.

Bố cục FarmState — v5

Sự khác biệt so với v6:
  • Mỗi slot, không phải mỗi giây. Vòng lặp cập nhật của v5 chạy trên các slot thay vì đồng hồ treo tường. SDK chuẩn hóa điều này thành “mỗi giây” cho UI nhưng trên chuỗi đơn vị là slots.
  • Tỷ lệ emission nguyên. reward_per_secondu64. Điều này giới hạn tỷ lệ tối thiểu biểu thị được ở 1 đơn vị mỗi giây, quá thô cho các dòng phát hành thấp trên mint 9-chữ số. v6 đã sửa điều này bằng tỷ lệ Q64.64.
  • Không reward_sender. Trên v5, chủ sở hữu là người gửi ngầm; chỉ owner có thể bổ sung.

Bố cục FarmState — v3

Phần thưởng đơn. Dựa trên slot. Thế hệ chương trình lâu nhất, được giữ cho các farm RAY-USDC và SOL-USDC có trước v5.

UserLedger (v6) / UserStake (v5/v3)

State cho mỗi người dùng, một tài khoản cho mỗi cặp (farm, user). PDA seed:
(Chuỗi seed là những giá trị thực sự được SDK sử dụng; các phiên bản chương trình trong lịch sử đã thay đổi chúng. Xác minh so với nguồn v6 cho bất kỳ điều gì quan trọng về bảo mật.)
Dư nợ mỗi dòng là bù toán kế toán được mô tả trong tổng quan:
Sau mỗi Deposit, Withdraw, hoặc Harvest, dư nợ được đặt lại thành deposited × reward_per_share_x64[i] / 2^64 hiện tại.

PDA quyền hạn

Cả ba phiên bản đều suy ra quyền hạn farm mỗi farm với một seed duy nhất. PDA này là quyền hạn trên vault staking và trên mỗi vault phần thưởng. Nó ký tất cả các lần chuyển mà farm thực hiện.

Vault

Vault staking và phần thưởng là các tài khoản SPL Token tiêu chuẩn có owner là PDA quyền hạn farm. Các địa chỉ được lưu trữ trên FarmState — không tái tạo; đọc từ state. Các quyền hạn đóng băng phải bị vô hiệu hóa trên mint staking cho v5/v6 (chương trình kiểm tra). Ghi chú Token-2022:
  • v3: Chỉ SPL Token.
  • v5: Chỉ SPL Token.
  • v6: Hỗ trợ Token-2022 trên cả mint staking và mint phần thưởng, gated trên các trường staking_token_program / reward_token_program. Phí chuyển trên mint phần thưởng Token-2022 được tính trên emit (vault → user).

Quan sát và APR

Farm không lưu trữ APR trên chuỗi. Để tính toán:
Người tiêu dùng thường lấy staking_mint_usd_price từ pool mà LP thuộc về (qua api-v3.raydium.io/pools/info/ids) và reward_usd_price từ bất kỳ oracle giá nào.

Bước tiếp theo

Nguồn: