industry-windowsNhà máy Onetappy

Hợp đồng này là hợp đồng cha được sử dụng để tạo các phiên Cam kết-Tiết lộ và quản lý đối tác cùng kho bạc phiên.

Các Khái Niệm Chính

Tên
Loại
Mô tả

kho bạc

CommitRevealTreasury

Kho bạc được tạo và liên kết nội bộ bởi hợp đồng factory, dùng để quản lý tiền gửi, thu nhập của nền tảng và đối tác, cùng các quỹ khác.

quản trị

địa chỉ

Địa chỉ quản trị viên (tài khoản đã triển khai hợp đồng), có quyền cấu hình toàn cục và quyền khẩn cấp.

platformFeeBps

uint16

Phí nền tảng theo điểm cơ bản (bps).

creatorAbsentPartnerDepositSlashBps

uint16

Tỷ lệ phạt (bps) áp dụng lên tiền gửi của đối tác khi Người tạo vắng mặt.

_isPartner

mapping(address => bool)

Bản đồ danh sách trắng đối tác, đánh dấu liệu một địa chỉ có phải là đối tác đã đăng ký hay không.

BPS_DENOMINATOR

uint256

Hằng mẫu số điểm cơ bản, cố định tại 10_000.


Kiểm tra Đối tác (isPartner)

Kiểm tra liệu một địa chỉ cụ thể có phải là đối tác đã đăng ký hay không.

function isPartner(address account) public view returns (bool)

Tham số:

Tham số
Loại
Mô tả

account

địa chỉ

Địa chỉ cần kiểm tra

Giá trị Trả về:

  • true: Địa chỉ là đối tác

  • false: Địa chỉ không phải là đối tác


Đặt Đối tác (setPartner)

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.


PartnerAdded

Được kích hoạt khi một đối tác mới được thêm.


PartnerRemoved

Được kích hoạt khi một đối tác bị xóa.

Last updated