• Duel açık Robinhood Chain'de
  • Bir düello başlatın iki token, üç havuz, tek işlem
  • Turun kapanmasına --:--:--
  • Dört saatlik turlar kazananın geri alımı fiyat sınırlıdır
  • Likidite kilitli sonsuza dek, ekip tokenı yok

Sözleşmeler

Duel, zincirin Uniswap V4 dağıtımı üzerine kurulmuş altı sözleşmeden oluşur: beşi Robinhood Chain üzerinde dağıtılmıştır, biri hiç dağıtılmamıştır. Solidity 0.8.26, Foundry, OpenZeppelin, v4-core. Düellolar zincirde yaşar: uygulama zinciri sitenin sunucusu üzerinden ya da doğrudan okur, geçmişlerini ise zincir olaylarının bir indeksleyicisinden okur.

SözleşmeRol
DuelFactoryBir düelloyu tek işlemde başlatır: iki token, üç havuz, kilitli pozisyonlar, yaratıcının lansman alımları. Gelecekteki düelloların sınırlı yapılandırmasını tutar; bir lansman, başlatanın okuduğu yapılandırmaya (configHash) bağlanır ve bu arada başka bir yapılandırma uygulandıysa geri alınır.
DuelHookHer düellonun üç havuzunun paylaştığı Uniswap V4 hook'u: ücretler, anti-snipe vergisi, geçişlerdeki yakım, yeniden dengeleme, oranın ortalaması, turlar ve geri alımlar; ayrıca her düellonun kasası, yaratıcı ücretleri ve protokol ücretleri.
DuelTokenHer tarafın sade ERC-20'si: bir milyar birim, yakılabilir, sahipsiz, permit (EIP-2612) destekli.
DuelRouterUygulamanın işlem yaptığı tam girdili router; bir satışın permit'i de dahil. Bir tarafın ETH havuzu satışı tek seferde karşılayamadığında o tarafı birkaç geçişte satan tek router odur (SALE_PASSES); o havuzun o zaman bile geri alamadığını da diğer taraf üzerinden satar (sell). Herhangi bir V4 router'ı da tek bir swap ile çalışır.
DuelLensBir düellonun durumunu uygulama için toplayan salt okunur görünümler.
DuelSimulatorAsla dağıtılmaz. Uygulama, tek bir salt okunur çağrı boyunca kodunu sizin kendi adresinize koyar (state override); böylece bir işlem tam sizin göndereceğiniz gibi çalışır ve ne alacağınızı, havuzlar yeniden dengelendikten sonra oranın nereye varacağını söyler.

Sürüm

Bu launchpad Duel V1'dir, kod adı Petunia. Sözleşmelerinin her biri bunu söyler (fabrika, hook, router ve lens üzerinde VERSION() ve CODENAME()), başlattığı her token da bunu kalıcı olarak saklar (LAUNCHPAD_VERSION() ve LAUNCHPAD_CODENAME()): bir düellonun Hakkında bölümü bunu, token'larının söylediği gibi gösterir. Daha sonra ayrı olarak dağıtılacak bir launchpad numarayı sürdürür, kendine ait bir kod adı taşır ve token'ları kendi adını söyler.

Adresler

Duel şu Robinhood Chain sözleşmelerine dayanır:

Uniswap V4 PoolManager0x8366a39CC670B4001A1121B8F6A443A643e40951
Universal Router (ana ağ)0x204FAca1764B154221e35c0d20aBb3c525710498
V4 Quoter0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3

Hook

Bir V4 hook'unun adresi, uyguladığı callback'lerin listesini taşır. Duel'in hook'u şunları kullanır:

CallbackNe yapar
beforeInitializeHook üzerinde havuz açabilen tek şey fabrikadır ve yalnızca bir düellonun kayıtlı havuzları için.
beforeAddLiquidityLikidite ekleyebilen tek şey fabrikadır, lansmanda.
beforeRemoveLiquidityİşlem her zaman geri alınır: likidite sonsuza dek kilitlidir.
beforeDonateİşlem her zaman geri alınır.
beforeSwapBiten bir turu sonuçlandırır, ortalamaları günceller, ücretleri ve vergileri alır.
afterSwapSwap'ın belirlemediği tutar üzerinden ödenmesi gereken ücretleri alır, önceden ücret alınan bir swap'ın tamamen gerçekleştiğini kontrol eder, ardından üç havuzu yeniden dengeler.

Ücretler hook'un return delta'larıyla alınır; bu yüzden swap'ı kim yönlendirirse yönlendirsin uygulanır.

Kim ne yapabilir

AktörYapabileceği
HerkesBaşlatmak, işlem yapmak, biten turları sonuçlandırmak, yaratıcı ya da hazine taleplerini tetiklemek, önerilen koşulları 48 saatleri dolduğunda uygulamak
Bir düellonun yaratıcısıO düellonun yaratıcı ücretlerini almak; rolü, ücretleriyle birlikte, kabul eden bir adrese devretmek
Fabrikanın sahibiYeni lansmanları durdurmak; 48 saat sonra gelecekteki düellolar için sınırlı koşulları ya da protokol hazinesini değiştirmek. Birikmiş protokol ücretlerini, talep anındaki güncel hazine alır. Tüm düellolarda protokolün swap ücretindeki payını anında düşürmek ya da yeniden yükseltmek; asla koşullarının üstüne çıkmadan.
Hiç kimseLikidite çekmek, token basmak, bir kasayı taşımak, aktif bir düellonun trader'larının ödediği ücreti ya da yaratıcısının payını değiştirmek, protokolün payını bir düellonun koşullarının üstüne çıkarmak, bir düellonun yaratıcı rolünü elinden almak, sözleşmeleri yükseltmek

Daha fazla