### Challenge: Decentralized Token Swap Interface
**Objective:**
Develop a frontend application enabling users to efficiently swap between two token pairs, specifically USDC and USDT, utilizing either Uniswap or Balancer protocols. This application will serve as a clone version of [DodoX](https://app.dodoex.io/swap/network/mainnet) platform.
**Detailed Requirements:**
1. **Interface Design:**
- Design a user-friendly and straightforward interface for token swapping. Your goal is to closely replicate the functionality and layout of the [DodoX](https://app.dodoex.io/swap/network/mainnet) app, focusing on ease of use and clear navigation
2. **Token Pair Selection and Swap:**
- Use the token pair: **USDC-USDT**
- Display current exchange rates for the selected token pair.
3. **Integration with Uniswap/Balancer:**
- Use [Wagmi](https://wagmi.sh) and [Viem](https://viem.sh) to integrate with Uniswap or Balancer smart contracts.
- Handle the token swap transaction on the Ethereum blockchain.
- Retrieve and display real-time data from the blockchain, such as liquidity pools, token prices, and slippage.
4. **Wallet Connection:**
- Implement a nifty feature for users to connect their Ethereum wallet using [RabbyKit](https://rabbykit.rabby.io/). Think MetaMask, but cooler.
- The wallet should be used for executing swap transactions.
5. **Transaction Handling:**
- Implement error handling and user feedback for transactions. This includes pending status, confirmations, and transaction receipts or failures.
6. **Unit Testing:**
- Show off your testing skills with Jest or Mocha, covering everything from those sleek UI components to the nitty-gritty of Web3 integration.
7. **💡 Bonus (If you dare) ⭐️:**
- Go wild with features like swap history, gas fee estimations, or a leap into other DeFi protocols.
- Let users to use the swapped tokens to supply liquidity in a DODOX pool.
- Add feature to select token pairs instead of predefined token pairs to swap.
- Test if all the app components play nice with each other through integration tests.
## Evaluation Criteria
- **Functionality:** Application's operational effectiveness.
- **Code Quality:** Cleanliness, organization, and commenting of code.
- **Design and UX:** Aesthetic appeal and intuitiveness of the UI.
- **Web3 Integration:** How well the UI is integrated with Web3 and the coding standards with it.
- **Testing:** Thoroughness and effectiveness of tests, coverage, and reliability.
- **Creativity:** Innovative features or UI elements.
**Submission:**
- Throw us the GitHub repo link with all your magical code.
- Deploy this masterpiece on a web server, or use something fancy like Vercel or Netlify.