• Duel est ouvert sur Robinhood Chain
  • Lancez un duel deux tokens, trois pools, une transaction
  • Clôture du round dans --:--:--
  • Des rounds de quatre heures le rachat du gagnant a un plafond de prix
  • Liquidité bloquée à vie, aucun token pour l’équipe
Duelby

Contrats

Duel, c’est six contrats, cinq déployés sur Robinhood Chain et un qui ne l’est jamais, construits sur le déploiement Uniswap V4 de la chaîne. Solidity 0.8.26, Foundry, OpenZeppelin, v4-core. Les duels vivent sur la chaîne : l’app la lit, par le serveur du site ou directement, et leur historique dans un indexeur de ses événements.

ContratRôle
DuelFactoryLance un duel en une transaction : deux tokens, trois pools, des positions verrouillées, les achats de lancement du créateur. Détient la configuration bornée des duels à venir ; un lancement s’engage sur la configuration lue par son auteur (configHash) et échoue si une autre s’est appliquée entre-temps.
DuelHookLe hook Uniswap V4 partagé par les trois pools de chaque duel : les frais, la taxe anti-snipe, le burn des changements de camp, le réalignement, la moyenne de la répartition, les rounds et les rachats, ainsi que la cagnotte, les frais du créateur et les frais du protocole de chaque duel.
DuelTokenL’ERC-20 ordinaire de chaque camp : un milliard d’unités, brûlable, sans propriétaire, avec des permits (EIP-2612).
DuelRouterLe router à entrée exacte par lequel l’app trade, permit d’une vente compris ; lui seul vend un camp en plusieurs passes quand son pool ETH ne peut pas absorber la vente d’un coup (SALE_PASSES), et ce que ce pool ne peut toujours pas racheter, par l’autre camp (sell). N’importe quel router V4 fonctionne aussi, en un swap.
DuelLensDes vues en lecture seule qui rassemblent l’état d’un duel pour l’app.
DuelSimulatorJamais déployé. L’app place son code sur votre propre adresse le temps d’un appel en lecture seule (un state override) : un trade s’exécute comme vous l’enverriez et renvoie ce que vous recevriez et où arriverait la répartition une fois les pools réalignés.

Version

Ce launchpad est Duel V1, nom de code Petunia. Chacun de ses contrats le dit (VERSION() et CODENAME() sur la factory, le hook, le router et la lens), et chaque token qu’il lance le garde pour de bon (LAUNCHPAD_VERSION() et LAUNCHPAD_CODENAME()) : la section À propos d’un duel l’affiche, tel que ses tokens le disent. Un launchpad déployé plus tard, à part, prendrait le numéro suivant et un nom de code à lui, et ses tokens diraient le leur.

Adresses

Duel s’appuie sur ces contrats de Robinhood Chain :

PoolManager Uniswap V40x8366a39CC670B4001A1121B8F6A443A643e40951
Universal Router (mainnet)0x204FAca1764B154221e35c0d20aBb3c525710498
V4 Quoter0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3

Le hook

L’adresse d’un hook V4 encode la liste des callbacks qu’il implémente. Le hook de Duel utilise :

CallbackCe qu’il fait
beforeInitializeSeule la factory peut ouvrir un pool sur le hook, et seulement les pools enregistrés d’un duel.
beforeAddLiquiditySeule la factory peut ajouter de la liquidité, au lancement.
beforeRemoveLiquidityÉchoue toujours (revert) : la liquidité est verrouillée pour toujours.
beforeDonateÉchoue toujours (revert).
beforeSwapRègle un round terminé, met à jour les moyennes, prélève les frais et les taxes.
afterSwapPrélève les frais dus sur le montant que le swap n’a pas fixé, vérifie qu’un swap facturé avant s’est exécuté en entier, puis réaligne les trois pools.

Les frais sont prélevés par les return deltas du hook : ils s’appliquent quel que soit le chemin du swap.

Qui peut faire quoi

ActeurPeut
N’importe quiLancer, trader, régler les rounds terminés, déclencher les réclamations du créateur ou de la trésorerie, appliquer des conditions proposées une fois leurs 48 heures passées
Le créateur d’un duelRecevoir les frais de créateur de ce duel ; céder le rôle, avec ses frais, à une adresse qui l’accepte
Le propriétaire de la factorySuspendre les nouveaux lancements ; changer les conditions bornées des futurs duels ou la trésorerie du protocole après 48 heures. La trésorerie actuelle reçoit les frais du protocole accumulés au moment de leur réclamation. Baisser d’un coup la part du protocole sur les frais de swap de tous les duels, ou la remonter, jamais au-delà de leurs conditions.
PersonneRetirer la liquidité, créer de nouveaux tokens, déplacer une cagnotte, changer les frais que paient les traders d’un duel existant ou la part de son créateur, porter la part du protocole au-delà des conditions d’un duel, prendre le rôle de créateur d’un duel, mettre à jour les contrats

Pour aller plus loin

  • Sécurité : ce qui protège les fonds, et comment ça a été vérifié.
  • Construire sur Duel : lire les duels et trader depuis votre propre code.