Thêm hoặc xóa một đối tác. Chỉ có quản trị viên mới có thể gọi (quản trị).
Tham số:
Tham số
Loại
Mô tả
partner
địa chỉ
Địa chỉ đối tác (không thể là địa chỉ 0)
enabled
bool
true để thêm đối tác, false để xóa đối tác
Sự kiện Phát ra:
PartnerAdded phát ra khi một đối tác được thêm
PartnerRemoved phát ra khi một đối tác bị xóa
Đặt Phí Nền tảng (setPlatformFeeBps)
Đặt tỷ lệ phí nền tảng theo điểm cơ bản (bps). Chỉ có quản trị viên mới có thể gọi.
Tham số:
Tham số
Loại
Mô tả
bps
uint16
Tỷ lệ phí nền tảng (0 ~ 10.000)
Đặt Tỷ lệ Phạt Khi Người Tạo Vắng Mặt (setCreatorAbsentPartnerDepositSlashBps)
Đặt tỷ lệ phạt áp dụng lên tiền gửi của đối tác khi Người tạo vắng mặt (bps). Chỉ có quản trị viên mới có thể gọi.
Tham số:
Tham số
Loại
Mô tả
bps
uint16
Tỷ lệ phạt (0 ~ 10.000)
Tạo Phiên (createSession)
Tạo một phiên Commit-Reveal mới bởi một đối tác. Hàm xác thực tỷ lệ phí và số dư tiền gửi của đối tác, và khóa tiền gửi tương ứng trong Kho bạc.
Tham số:
partialConfig:
Mô tả các trường được chọn:
Trường
Loại
Mô tả
sessionCommitment
bytes32
Giá trị cam kết phiên (bắt buộc, không thể là 0)
paymentToken
địa chỉ
Địa chỉ token thanh toán; address(0) chỉ ra ETH
ticketPrice
uint256
Giá mỗi vé
totalTickets
uint256
Tổng số vé
commitDurationSeconds
uint256
Thời lượng giai đoạn Commit (tính theo giây)
revealDurationSeconds
uint256
Thời lượng giai đoạn Reveal (tính theo giây)
unlockTimestamp
uint256
Dấu thời gian mở khóa phiên
partnerShareBps
uint16
Phần doanh thu của đối tác (bps)
unsoldTicketsPartnerDepositSlashBps
uint16
Tỷ lệ phạt tiền gửi cho vé không bán được (bps)
creatorAbsentPartnerDepositSlashBps
uint16
Tỷ lệ phạt tiền gửi nếu đối tác không tiết lộ (bps)
Luật Xác thực:
sessionCommitment không được để trống
partnerShareBps + platformFeeBps ≤ 10.000
Tiền gửi khả dụng của Đối tác trong Kho bạc ≥ ticketPrice * totalTickets
Giá trị Trả về:
Địa chỉ của CommitRevealSession hợp đồng
Sự kiện Phát ra:
SessionCreated
Mở Khóa Khẩn Cấp Tiền Gửi Đối Tác (emergencyUnlockPartnerDeposit)
Quản trị viên mở khóa khẩn cấp tiền gửi của đối tác trong một Phiên cụ thể. Chỉ có quản trị viên mới có thể gọi. Tiền gửi được mở khóa và chuyển cho địa chỉ đối tác đã tạo hợp đồng.
Sự kiện
SessionCreated
Được kích hoạt khi một phiên Commit-Reveal mới được tạo thành công và đăng ký trong Kho bạc.
function setPartner(address partner, bool enabled) external onlyAdmin
function setPlatformFeeBps(uint16 bps) external onlyAdmin
function setCreatorAbsentPartnerDepositSlashBps(uint16 bps) external onlyAdmin
function createSession(
SessionConfig memory partialConfig
) external onlyPartner returns (address)
struct SessionConfig {
address admin; // Địa chỉ quản trị viên
address creator; // Người tạo phiên
address treasury; // Địa chỉ hợp đồng kho bạc
bytes32 sessionCommitment; // Cam kết băm của Người tạo
address paymentToken; // Token thanh toán (address(0) cho ETH)
uint256 ticketPrice; // Giá mỗi vé
uint256 totalTickets; // Tổng số vé (cũng là độ dài của ticketToPlayer)
uint16 partnerShareBps; // Phần doanh thu đối tác (BPS)
uint16 platformFeeBps; // Tỷ lệ phí nền tảng (BPS)
uint16 unsoldTicketsPartnerDepositSlashBps; // Tỷ lệ phạt tiền gửi cho vé không bán được
uint16 creatorAbsentPartnerDepositSlashBps; // Tỷ lệ phạt tiền gửi nếu người tạo vắng mặt
uint256 commitDurationSeconds; // Thời lượng giai đoạn Commit
uint256 revealDurationSeconds; // Thời lượng giai đoạn Reveal
uint256 unlockTimestamp; // Dấu thời gian bắt đầu phiên
}
function emergencyUnlockPartnerDeposit(
address session,
address partner
) external onlyAdmin