Übersicht
UZH Swap ist ein bereits etwas älteres Projekt, das ich gemeinsam mit Jonas Brunner und Bulin Shaqiri im Seminar Blockchain Programming an der Universität Zürich im Herbstsemester 2021 entwickelt habe. Das Projekt kombiniert einen Fork des Uniswap Interface mit einem Contract Repository, das die erforderliche Uniswap-V3-Infrastruktur, einen Faucet und benutzerdefinierte Test Tokens für die UZH Ethereum Chain bereitstellt.
Interface
Das Frontend basiert auf dem offiziellen Uniswap Interface und wurde für UZH Swap angepasst. Es nutzt React und TypeScript, Wallet Connectors, generierte Contract Bindings, Token Lists und die Uniswap SDKs, um vertraute Swap- und Liquidity-Management-Flows in einer seminarspezifischen Umgebung bereitzustellen. Das Interface wurde auf Netlify deployed, um während des Projekts einen einfachen Zugriff zu ermöglichen.


Contracts und Deployment
Das Contract Repository nutzt Hardhat, Solidity, TypeScript, Ethers, TypeChain und das Uniswap V3 Deployment Tooling. Die Deployment Scripts decken zentrale Exchange Contracts wie WETH9, Factory, Router, Position Manager, Multicall und Quoter ab und können entweder auf Ganache oder die UZH Ethereum Chain ausgerichtet werden.
Neben der Uniswap-Infrastruktur umfasst das Projekt einen Faucet Contract und eine Reihe benutzerdefinierter ERC-20 Tokens. Mit dem Faucet können Nutzer im Frontend Seminar Tokens beziehen und Swap- oder Liquidity-Flows testen, ohne externe Assets zu benötigen.

Repositories
- uzhswap-interface — Fork des React/TypeScript Interface, deployed auf Netlify
- uzhswap-contracts — Hardhat Deployment Scripts, Solidity Contracts, Faucet und Token Setup