• Duel đã mở trên Robinhood Chain
  • Ra mắt trận đấu hai token, ba pool, một giao dịch
  • Vòng kết thúc sau --:--:--
  • Vòng bốn giờ việc mua lại phe thắng có giới hạn giá
  • Thanh khoản bị khóa vĩnh viễn, không có token của đội ngũ

Hợp đồng

Duel gồm sáu hợp đồng, năm trong số đó được triển khai trên Robinhood Chain và một không bao giờ được triển khai, được xây dựng trên bản triển khai Uniswap V4 của chuỗi. Solidity 0.8.26, Foundry, OpenZeppelin, v4-core. Các trận đấu tồn tại trên chuỗi: ứng dụng đọc chuỗi qua máy chủ của trang hoặc trực tiếp, và đọc lịch sử của chúng từ một bộ lập chỉ mục các sự kiện của chuỗi.

Hợp đồngVai trò
DuelFactoryKhởi chạy một trận đấu trong một giao dịch: hai token, ba pool, các vị thế bị khóa và các lệnh mua khi ra mắt của người tạo. Giữ cấu hình có giới hạn cho các trận đấu sau này; một lần ra mắt cam kết với cấu hình mà người ra mắt đã đọc (configHash) và bị hoàn tác nếu trong lúc đó một cấu hình khác được áp dụng.
DuelHookHook Uniswap V4 dùng chung cho ba pool của mọi trận đấu: phí, thuế chống snipe, việc đốt khi chuyển phe, tái cân bằng, mức trung bình của tỷ lệ, các vòng và việc mua lại, cùng quỹ, phí người tạo và phí giao thức của mỗi trận đấu.
DuelTokenERC-20 thông thường của mỗi phe: một tỷ đơn vị, có thể đốt, không có chủ sở hữu, hỗ trợ permit (EIP-2612).
DuelRouterRouter đầu vào chính xác mà ứng dụng dùng để giao dịch, bao gồm cả permit của lệnh bán; chỉ router này bán một phe qua nhiều lượt khi pool ETH của phe đó không thể nhận lệnh bán trong một lần (SALE_PASSES), còn phần mà ngay cả khi đó pool ấy vẫn không mua lại được thì bán qua phe kia (sell). Router V4 nào cũng dùng được, trong một swap.
DuelLensCác view chỉ đọc tổng hợp trạng thái của một trận đấu cho ứng dụng.
DuelSimulatorKhông bao giờ được triển khai. Ứng dụng đặt mã của nó lên chính địa chỉ của bạn trong một lần gọi chỉ đọc (state override), để giao dịch chạy đúng như khi bạn gửi và trả lời bạn sẽ nhận được gì và tỷ lệ sẽ ở đâu sau khi các pool được tái cân bằng.

Phiên bản

Launchpad này là Duel V1, tên mã Petunia. Mỗi hợp đồng của nó đều cho biết điều đó (VERSION() và CODENAME() trên factory, hook, router và lens), và mỗi token nó khởi chạy đều giữ thông tin đó vĩnh viễn (LAUNCHPAD_VERSION() và LAUNCHPAD_CODENAME()): mục Giới thiệu của một trận đấu hiển thị điều đó, đúng như các token của nó cho biết. Một launchpad sau này, được triển khai riêng, sẽ đánh số tiếp với tên mã riêng, và các token của nó sẽ cho biết tên của chúng.

Địa chỉ

Duel dựa vào các hợp đồng sau của Robinhood Chain:

Uniswap V4 PoolManager0x8366a39CC670B4001A1121B8F6A443A643e40951
Universal Router (mainnet)0x204FAca1764B154221e35c0d20aBb3c525710498
V4 Quoter0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3

Hook

Địa chỉ của một hook V4 mang danh sách các callback mà nó triển khai. Hook của Duel dùng:

CallbackChức năng
beforeInitializeChỉ factory mới được mở pool trên hook, và chỉ các pool đã đăng ký của một trận đấu.
beforeAddLiquidityChỉ factory mới được thêm thanh khoản, khi ra mắt.
beforeRemoveLiquidityLuôn bị hoàn tác: thanh khoản bị khóa vĩnh viễn.
beforeDonateLuôn bị hoàn tác.
beforeSwapChốt một vòng đã kết thúc, cập nhật các mức trung bình, thu phí và thuế.
afterSwapThu các khoản phí đến hạn trên số lượng mà swap không chỉ định, kiểm tra rằng một swap đã bị thu phí trước được khớp hoàn toàn, rồi tái cân bằng ba pool.

Phí được thu bằng các return delta của hook, nên áp dụng bất kể ai định tuyến swap.

Ai làm được gì

BênCó thể
Bất kỳ aiKhởi chạy, giao dịch, chốt các vòng đã kết thúc, kích hoạt việc nhận của người tạo hoặc kho bạc, áp dụng các điều khoản đã đề xuất khi 48 giờ của chúng đã trôi qua
Người tạo một trận đấuNhận phí người tạo của trận đấu đó; chuyển giao vai trò, cùng các khoản phí, cho một địa chỉ chấp nhận nó
Chủ sở hữu factoryTạm dừng các lần ra mắt mới; thay đổi các điều khoản có giới hạn cho trận đấu sau này hoặc kho bạc giao thức sau 48 giờ. Kho bạc hiện tại nhận phí giao thức đã tích lũy vào lúc nhận. Giảm ngay phần của giao thức trong phí swap của mọi trận đấu, hoặc tăng lại, không bao giờ vượt quá điều khoản của chúng.
Không aiRút thanh khoản, mint token, di chuyển một quỹ, thay đổi mức phí mà trader của một trận đấu đang hoạt động phải trả hay phần của người tạo trận đấu đó, nâng phần của giao thức vượt quá điều khoản của một trận đấu, chiếm vai trò người tạo của một trận đấu, nâng cấp hợp đồng

Thêm

  • Bảo mật: điều gì bảo vệ tiền, và nó đã được kiểm tra thế nào.
  • Xây dựng trên Duel: đọc các trận đấu và giao dịch từ mã của riêng bạn.