• Duel 오픈 Robinhood Chain에서
  • 대결 런칭하기 토큰 두 개, 풀 세 개, 트랜잭션 한 번
  • 라운드 마감까지 --:--:--
  • 4시간 단위 라운드 승자 바이백에는 가격 한도가 있어요
  • 유동성 잠금 영구히, 팀 물량 없음

컨트랙트

Duel은 Robinhood Chain의 Uniswap V4 배포 위에 만들어진 여섯 개의 컨트랙트로, 그중 다섯 개는 Robinhood Chain에 배포되고 하나는 배포되지 않습니다. Solidity 0.8.26, Foundry, OpenZeppelin, v4-core를 사용합니다. 대결은 체인 위에 있습니다. 앱은 사이트 서버를 통해 또는 직접 체인을 읽고, 대결의 기록은 체인 이벤트를 색인하는 인덱서에서 읽습니다.

컨트랙트역할
DuelFactory트랜잭션 한 번으로 대결을 런칭합니다. 두 토큰, 세 개의 풀, 잠긴 포지션, 크리에이터의 런칭 매수. 앞으로의 대결에 적용될, 한도가 정해진 설정을 소유합니다. 런칭은 런칭하는 사람이 읽은 설정(configHash)에 묶이며, 그사이 다른 설정이 적용되면 실패합니다.
DuelHook모든 대결의 세 풀이 공유하는 Uniswap V4 훅입니다. 수수료, 안티 스나이프 세금, 전환 소각, 재정렬, 비율 평균, 라운드와 바이백, 그리고 대결마다의 팟, 크리에이터 수수료, 프로토콜 수수료를 담당합니다.
DuelToken모든 진영의 평범한 ERC-20입니다. 10억 개, 소각 가능, 소유자 없음, permit(EIP-2612) 지원.
DuelRouter앱이 거래할 때 쓰는 정확한 입력량 라우터로, 매도의 permit도 함께 받습니다. ETH 풀이 매도를 한 번에 받아 주지 못할 때 한 진영을 여러 번에 나눠 팔고(SALE_PASSES), 그래도 그 풀이 되사지 못하는 만큼을 다른 진영을 거쳐 파는(sell) 것은 이 라우터뿐입니다. 어떤 V4 라우터든 스왑 한 번으로 똑같이 쓸 수 있습니다.
DuelLens앱을 위해 대결의 상태를 모아 주는 읽기 전용 뷰입니다.
DuelSimulator배포되지 않습니다. 앱이 읽기 전용 호출 한 번 동안 이 코드를 사용자의 주소에 올려(state override), 사용자가 보낼 때와 똑같이 거래를 실행해 보고, 받게 될 양과 풀 재정렬 후 비율이 어디에 닿을지를 알려 줍니다.

버전

이 런치패드는 코드명 Petunia인 Duel V1입니다. 모든 컨트랙트가 이를 알려 주고(팩토리, 훅, 라우터, 렌즈의 VERSION()과 CODENAME()), 이 런치패드로 런칭한 토큰은 모두 이 정보를 영구히 간직합니다(LAUNCHPAD_VERSION()과 LAUNCHPAD_CODENAME()). 대결의 정보 섹션은 토큰에 기록된 대로 이를 보여 줍니다. 나중에 따로 배포하는 런치패드는 다음 번호와 자체 코드명을 쓰고, 그 토큰은 그 정보를 간직하게 됩니다.

주소

Duel은 다음 Robinhood Chain 컨트랙트에 의존합니다.

Uniswap V4 PoolManager0x8366a39CC670B4001A1121B8F6A443A643e40951
Universal Router (메인넷)0x204FAca1764B154221e35c0d20aBb3c525710498
V4 Quoter0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3

훅

V4 훅의 주소에는 구현한 콜백 목록이 담겨 있습니다. Duel의 훅은 다음 콜백을 씁니다.

콜백하는 일
beforeInitialize훅 위에 풀을 열 수 있는 것은 팩토리뿐이며, 등록된 대결의 풀만 가능합니다.
beforeAddLiquidity유동성을 더할 수 있는 것은 런칭 때의 팩토리뿐입니다.
beforeRemoveLiquidity항상 되돌립니다. 유동성은 영구히 잠겨 있습니다.
beforeDonate항상 되돌립니다.
beforeSwap끝난 라운드를 정산하고, 평균을 갱신하고, 수수료와 세금을 받습니다.
afterSwap스왑이 지정하지 않은 쪽 금액에 붙는 수수료를 받고, 미리 수수료를 낸 스왑이 전부 체결되었는지 확인한 뒤, 세 풀을 재정렬합니다.

수수료는 훅의 return delta로 받으므로, 누가 스왑을 라우팅하든 적용됩니다.

누가 무엇을 할 수 있나

주체할 수 있는 일
누구나런칭, 거래, 끝난 라운드 정산, 크리에이터 또는 재무 청구 실행, 48시간이 지난 제안된 조건 적용
대결 크리에이터해당 대결의 크리에이터 수수료 수령, 수락하는 주소에 수수료와 함께 역할 넘기기
팩토리 소유자새 런칭 일시 중지, 48시간 뒤 앞으로의 대결에 한도 안의 조건 적용 또는 프로토콜 재무 주소 변경. 누적 프로토콜 수수료는 청구 시 현재 재무 주소로 지급됨. 모든 대결의 스왑 수수료에서 프로토콜 몫을 즉시 낮추거나 다시 올리기(조건을 넘을 수는 없음).
누구도유동성 인출, 토큰 민팅, 팟 이동, 기존 대결에서 트레이더가 내는 수수료나 크리에이터 몫 변경, 프로토콜 몫을 대결의 조건보다 높이기, 대결의 크리에이터 역할 빼앗기, 컨트랙트 업그레이드

더 보기