• Duel e deschis pe Robinhood Chain
  • Lansează un duel două tokenuri, trei pooluri, o singură tranzacție
  • Runda se închide în --:--:--
  • Runde de patru ore răscumpărarea câștigătorului are un plafon de preț
  • Lichiditate blocată pentru totdeauna, fără tokenuri pentru echipă

Contracte

Duel înseamnă șase contracte, cinci dintre ele implementate pe Robinhood Chain și unul niciodată implementat, construite pe implementarea Uniswap V4 a acestui lanț. Solidity 0.8.26, Foundry, OpenZeppelin, v4-core. Duelurile trăiesc pe lanț: aplicația îl citește, prin serverul site-ului sau direct, iar istoricul lor dintr-un indexer al evenimentelor lanțului.

ContractRol
DuelFactoryLansează un duel într-o singură tranzacție: două tokenuri, trei pooluri, poziții blocate, cumpărările creatorului la lansare. Deține configurația, cu limite, a duelurilor viitoare; o lansare se angajează pe configurația citită de cel care lansează (configHash) și eșuează dacă între timp s-a aplicat alta.
DuelHookHookul Uniswap V4 comun celor trei pooluri ale fiecărui duel: comisioanele, taxa anti-snipe, arderea la schimbarea taberei, realinierea, media repartiției, rundele și răscumpărările, plus potul, comisioanele de creator și comisioanele de protocol ale fiecărui duel.
DuelTokenERC-20-ul simplu al fiecărei tabere: un miliard de unități, se poate arde, fără proprietar, cu permituri (EIP-2612).
DuelRouterRouterul cu intrare exactă prin care tranzacționează aplicația, inclusiv permitul unei vânzări; numai el vinde o tabără în mai multe treceri când poolul ei ETH nu poate prelua vânzarea dintr-odată (SALE_PASSES), și ce acel pool nu poate răscumpăra nici atunci, prin cealaltă tabără (sell). Orice router V4 funcționează și el, într-un singur swap.
DuelLensVizualizări doar de citire care adună starea unui duel pentru aplicație.
DuelSimulatorNu e implementat niciodată. Aplicația îi pune codul pe propria ta adresă pentru un singur apel de citire (un state override), astfel încât o tranzacție să ruleze exact cum ai trimite-o și să spună ce ai primi și unde ar ajunge repartiția după realinierea poolurilor.

Versiune

Acest launchpad este Duel V1, nume de cod Petunia. Fiecare dintre contractele lui o spune (VERSION() și CODENAME() pe factory, hook, router și lens), iar fiecare token pe care îl lansează o păstrează pentru totdeauna (LAUNCHPAD_VERSION() și LAUNCHPAD_CODENAME()): secțiunea Despre a unui duel o afișează, așa cum o spun tokenurile lui. Un launchpad implementat mai târziu, separat, ar lua numărul următor și un nume de cod propriu, iar tokenurile lui l-ar spune pe al lor.

Adrese

Duel se bazează pe aceste contracte Robinhood Chain:

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

Hookul

Adresa unui hook V4 poartă lista callbackurilor pe care le implementează. Hookul Duel folosește:

CallbackCe face
beforeInitializeDoar factory-ul poate deschide un pool pe hook și doar poolurile înregistrate ale unui duel.
beforeAddLiquidityDoar factory-ul poate adăuga lichiditate, la lansare.
beforeRemoveLiquidityEșuează întotdeauna: lichiditatea e blocată pentru totdeauna.
beforeDonateEșuează întotdeauna.
beforeSwapDecontează o rundă încheiată, actualizează mediile, ia comisioanele și taxele.
afterSwapIa comisioanele datorate pe suma pe care swapul nu a fixat-o, verifică dacă un swap taxat dinainte s-a executat integral, apoi realiniază cele trei pooluri.

Comisioanele sunt luate cu return deltas ale hookului, așa că se aplică, oricine ar ruta swapul.

Cine ce poate face

ActorPoate
OricineLansa, tranzacționa, deconta runde încheiate, declanșa revendicări pentru creator sau trezorerie, aplica condițiile propuse după ce au trecut cele 48 de ore ale lor
Creatorul unui duelPrimi comisioanele de creator ale acelui duel; ceda rolul, cu comisioanele lui, unei adrese care îl acceptă
Proprietarul factory-uluiSuspenda lansările noi; schimba condițiile limitate ale duelurilor viitoare sau trezoreria protocolului după 48 de ore. Trezoreria actuală primește comisioanele de protocol acumulate la revendicare. Scădea imediat partea protocolului din comisionul de swap al tuturor duelurilor sau o ridica la loc, niciodată peste condițiile lor.
NimeniRetrage lichiditatea, minta tokenuri, muta un pot, schimba comisionul plătit de traderii unui duel activ sau partea creatorului său, ridica partea protocolului peste condițiile unui duel, lua rolul de creator al unui duel, actualiza contractele

Mai multe