• Duel está abierto en Robinhood Chain
  • Lanza un duelo dos tokens, tres pools, una transacción
  • La ronda cierra en --:--:--
  • Rondas de cuatro horas la recompra del ganador tiene un límite de precio
  • Liquidez bloqueada para siempre, sin tokens del equipo

Contratos

Duel son seis contratos, cinco de ellos desplegados en Robinhood Chain y uno que nunca se despliega, construidos sobre el despliegue de Uniswap V4 de la cadena. Solidity 0.8.26, Foundry, OpenZeppelin, v4-core. Los duelos viven en la cadena: la app la lee, a través del servidor del sitio o directamente, y su historial en un indexador de los eventos de la cadena.

ContratoFunción
DuelFactoryLanza un duelo en una transacción: dos tokens, tres pools, posiciones bloqueadas y las compras de lanzamiento del creador. Tiene la configuración acotada de los duelos futuros; un lanzamiento se compromete con la configuración que leyó quien lo lanza (configHash) y se revierte si mientras tanto se aplicó otra.
DuelHookEl hook de Uniswap V4 que comparten los tres pools de cada duelo: comisiones, impuesto antisnipe, quema de los cambios, realineación, media del reparto, rondas y recompras, y el bote, las comisiones del creador y las del protocolo de cada duelo.
DuelTokenEl ERC-20 corriente de cada bando: mil millones de unidades, quemable, sin propietario, con permits (EIP-2612).
DuelRouterEl router de entrada exacta con el que opera la app, incluido el permit de una venta; solo él vende un bando en varias pasadas cuando su pool de ETH no puede absorber la venta de una vez (SALE_PASSES), y lo que ese pool ni aun así puede recomprar, a través del otro bando (sell). Cualquier router V4 también sirve, en un solo swap.
DuelLensVistas de solo lectura que reúnen el estado de un duelo para la app.
DuelSimulatorNunca se despliega. La app pone su código en tu propia dirección durante una llamada de solo lectura (un state override), para que una operación se ejecute tal como la enviarías y responda qué recibirías y dónde quedaría el reparto una vez realineados los pools.

Versión

Este launchpad es Duel V1, nombre en clave Petunia. Cada uno de sus contratos lo indica (VERSION() y CODENAME() en la fábrica, el hook, el router y la lens), y cada token que lanza lo conserva para siempre (LAUNCHPAD_VERSION() y LAUNCHPAD_CODENAME()): la sección Acerca de de un duelo lo muestra, tal como lo dicen sus tokens. Un launchpad posterior, desplegado aparte, seguiría la numeración con un nombre en clave propio, y sus tokens dirían el suyo.

Direcciones

Duel se apoya en estos contratos de Robinhood Chain:

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

El hook

La dirección de un hook V4 lleva la lista de callbacks que implementa. El hook de Duel usa:

CallbackQué hace
beforeInitializeSolo la fábrica puede abrir un pool en el hook, y solo los pools registrados de un duelo.
beforeAddLiquiditySolo la fábrica puede añadir liquidez, en el lanzamiento.
beforeRemoveLiquiditySiempre se revierte: la liquidez está bloqueada para siempre.
beforeDonateSiempre se revierte.
beforeSwapLiquida una ronda terminada, actualiza las medias y cobra comisiones e impuestos.
afterSwapCobra las comisiones debidas sobre el importe que el swap no fijó, comprueba que un swap cobrado de antemano se completó del todo y luego realinea los tres pools.

Las comisiones se cobran con los return deltas del hook, así que se aplican sea quien sea quien enrute el swap.

Quién puede hacer qué

ActorPuede
CualquieraLanzar, operar, liquidar rondas terminadas, activar las reclamaciones del creador o de la tesorería, aplicar los términos propuestos una vez pasadas sus 48 horas
El creador de un dueloRecibir las comisiones de creador de ese duelo; ceder el rol, con sus comisiones, a una dirección que lo acepte
Propietario de la fábricaPausar nuevos lanzamientos; cambiar, tras 48 horas, los términos acotados de los duelos futuros o la tesorería del protocolo. La tesorería vigente recibe las comisiones del protocolo acumuladas en el momento de reclamarlas. Reducir al instante la parte del protocolo en la comisión de swap de todos los duelos, o volver a subirla, nunca por encima de sus términos.
NadieRetirar liquidez, acuñar tokens, mover un bote, cambiar la comisión que pagan los traders de un duelo activo o la parte de su creador, subir la parte del protocolo por encima de los términos de un duelo, quitarle a un duelo su rol de creador, actualizar contratos

Más