Kontrak
Duel terdiri dari enam kontrak, lima di antaranya di-deploy di Robinhood Chain dan satu tidak pernah di-deploy, dibangun di atas deployment Uniswap V4 milik chain tersebut. Solidity 0.8.26, Foundry, OpenZeppelin, v4-core. Duel-duel hidup di chain: aplikasi membacanya melalui server situs atau secara langsung, dan membaca riwayatnya dari indexer event chain.
| Kontrak | Peran |
|---|---|
DuelFactory | Meluncurkan duel dalam satu transaksi: dua token, tiga pool, posisi yang terkunci, dan pembelian peluncuran kreator. Memegang konfigurasi terbatas untuk duel mendatang; sebuah peluncuran terikat pada konfigurasi yang dibaca peluncurnya (configHash) dan di-revert jika konfigurasi lain berlaku sementara itu. |
DuelHook | Hook Uniswap V4 yang dipakai bersama oleh tiga pool setiap duel: biaya, pajak anti-snipe, pembakaran saat peralihan, penyelarasan ulang, rata-rata proporsi, ronde dan pembelian kembali, serta pot, biaya kreator, dan biaya protokol setiap duel. |
DuelToken | ERC-20 biasa untuk setiap sisi: satu miliar unit, dapat dibakar, tanpa pemilik, dengan permit (EIP-2612). |
DuelRouter | Router input pasti yang dipakai aplikasi untuk bertransaksi, termasuk permit penjualan; hanya router ini yang menjual sebuah sisi dalam beberapa tahap ketika pool ETH-nya tidak dapat menampung penjualan itu sekaligus (SALE_PASSES), serta apa yang bahkan saat itu tidak dapat dibeli kembali oleh pool tersebut, melalui sisi lainnya (sell). Router V4 mana pun juga bisa dipakai, dalam satu swap. |
DuelLens | View baca-saja yang mengumpulkan status duel untuk aplikasi. |
DuelSimulator | Tidak pernah di-deploy. Aplikasi menaruh kodenya di alamat Anda sendiri selama satu panggilan baca-saja (state override), sehingga transaksi berjalan persis seperti yang akan Anda kirim dan menjawab apa yang akan Anda terima serta di mana proporsi akan berakhir setelah pool diselaraskan ulang. |
Versi
Launchpad ini adalah Duel V1, nama kode Petunia. Setiap kontraknya menyatakan hal itu (VERSION() dan CODENAME() pada factory, hook, router, dan lens), dan setiap token yang diluncurkannya menyimpannya selamanya (LAUNCHPAD_VERSION() dan LAUNCHPAD_CODENAME()): bagian Tentang pada sebuah duel menampilkannya, sesuai yang dinyatakan tokennya. Launchpad berikutnya, yang di-deploy terpisah, akan melanjutkan penomoran dengan nama kodenya sendiri, dan tokennya akan menyatakan milik mereka.
Alamat
| Kontrak | Alamat di Robinhood Chain |
|---|---|
DuelFactory | 0x3c6e7f9Bc507a442237AF1721B2294686495BD54 |
DuelHook | 0x5F746B7B1722e9bb3849EEa97061Df50F715AAEc |
DuelRouter | 0x9e484C17E7d263F084Ab226a72FCdf301145d6D1 |
DuelLens | 0x1677d3C0a1F9Ae00519AD08C68674f63fe945389 |
Duel bergantung pada kontrak Robinhood Chain berikut:
| Uniswap V4 PoolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 |
| Universal Router (mainnet) | 0x204FAca1764B154221e35c0d20aBb3c525710498 |
| V4 Quoter | 0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94 |
| Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 |
Hook
Alamat sebuah hook V4 memuat daftar callback yang diimplementasikannya. Hook Duel menggunakan:
| Callback | Fungsinya |
|---|---|
beforeInitialize | Hanya factory yang boleh membuka pool pada hook, dan hanya pool terdaftar milik sebuah duel. |
beforeAddLiquidity | Hanya factory yang boleh menambahkan likuiditas, saat peluncuran. |
beforeRemoveLiquidity | Selalu di-revert: likuiditas terkunci selamanya. |
beforeDonate | Selalu di-revert. |
beforeSwap | Menyelesaikan ronde yang sudah berakhir, memperbarui rata-rata, memungut biaya dan pajak. |
afterSwap | Memungut biaya yang terutang atas jumlah yang tidak ditentukan swap, memeriksa bahwa swap yang dipungut di awal terisi penuh, lalu menyelaraskan ulang ketiga pool. |
Biaya dipungut dengan return delta milik hook, sehingga berlaku siapa pun yang merutekan swap.
Siapa bisa apa
| Pihak | Bisa |
|---|---|
| Siapa pun | Meluncurkan, bertransaksi, menyelesaikan ronde yang berakhir, memicu klaim kreator atau treasury, menerapkan ketentuan yang diusulkan setelah 48 jamnya berlalu |
| Kreator sebuah duel | Menerima biaya kreator duel itu; menyerahkan perannya, beserta biayanya, ke alamat yang menerimanya |
| Pemilik factory | Menjeda peluncuran baru; mengubah ketentuan terbatas untuk duel mendatang atau treasury protokol setelah 48 jam. Treasury saat ini menerima biaya protokol yang terkumpul pada saat klaim. Langsung menurunkan bagian protokol dari biaya swap semua duel, atau menaikkannya kembali, tidak pernah melebihi ketentuannya. |
| Tidak seorang pun | Menarik likuiditas, mencetak token, memindahkan pot, mengubah biaya yang dibayar trader duel yang sedang berjalan atau bagian kreatornya, menaikkan bagian protokol melebihi ketentuan sebuah duel, mengambil peran kreator sebuah duel, meng-upgrade kontrak |
Selengkapnya
- Keamanan: apa yang melindungi dana, dan bagaimana hal itu diperiksa.
- Membangun di Duel: membaca duel dan bertransaksi dari kode Anda sendiri.