Skip to content

Commit

Permalink
Fixing images
Browse files Browse the repository at this point in the history
  • Loading branch information
akarys92 committed Jan 9, 2025
1 parent 37aa78c commit 6e7d509
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 17 deletions.
32 changes: 15 additions & 17 deletions docs/contracts/uniswapx/02-v1-vs-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,33 @@ sidebar_position: 2
---
# **UniswapX V2 Overview**

UniswapX V2 improves price execution and minimizes quoter gaming by redesigning the flow of order quote information. The primary goal is to ensure RFQ quoters provide hard quotes to the user by requesting quotes after the user has signed their swap intent, enabling faster and more reliable executions.
UniswapX V2 improves price execution and minimizes quoter gaming by redesigning the flow of order quote information. The primary goal is to make trading on UniswapX more efficient and more reliable.

## **V1 Overview**

In V1, the RFQ flow operates entirely pre-signature. Users request a swap quote, which is parameterized using an RFQ quote. If they accept the quote, they sign the order. This approach is straightforward but allows quoters in the network to be uncertain about when a quote request will convert into a signed order. This uncertainty grants swappers a first-look advantage, potentially enabling predatory quoter behavior.
In V1, the RFQ flow operates entirely pre-signature. Users request a swap quote, which is parameterized using an RFQ quote. If they accept the quote, they sign the order. This approach is straightforward but causes quoters in the network to be uncertain about when a quote request will convert into a signed order. This uncertainty leads to occasional unfilled orders and degraded performance.

<p align="center">
<img width="599" alt="image" src="https://github.com/user-attachments/assets/8f35c682-bc0f-4eb8-a7a3-eb91810bf63e" />
<img width="599" alt="image" src={require('./images/v1-flow.png').default} />

</p>

## **V2 Overview**

V2 rearchitects the flow such that the time between a quoter submitting their quote and being required to fill the order is minimized. This enforces a near 100% fill rate and eliminates most predatory behaviors.
V2 rearchitects the flow such that the time between a quoter submitting their quote and being required to fill the order is minimized. This enforces a near 100% fill rate and causes most orders to fill almost instantly.

The quoting flow is divided into two phases:
Two achieve this, the quoting flow is divided into two phases:

1. **Indicative Quotes**: Provided pre-signature when the swapper is exploring quotes but has not committed to trading. Quoters can participate here without being held fully accountable.
2. **Hard Quotes**: Provided post-signature when the swapper has committed to trading. Quoters are held fully accountable for these quotes.

To prevent gaming, quoters cannot distinguish between indicative and hard quotes. As a result, they must always provide their best price, assuming all quotes are hard.

## Key Features of V2
Since hard quotes are provided post-signature, they are instantly executable by fillers removing the risk of market movements causing the order to fail.

* **Improved User Experience**: Faster execution due to pre-signed hard quotes.
* **Anti-Gaming Mechanisms**:
* Quoters cannot distinguish between indicative and hard RFQs.
* Requests include intentional noise, such as fake quotes and bidirectional requests, complicating attempts to game indicative quotes.
* Quoters who fail to honor hard quotes face temporary suspensions or permanent bans for repeated violations.

This new structure reinforces UniswapX’s commitment to transparency, efficiency, and user-centric design, establishing a more secure and seamless trading experience.
To prevent gaming, quoters cannot distinguish between indicative and hard quotes. As a result, they must always assume all quotes are hard and provide competitive prices.

## V2 Flow
<p align="center">
<img width="599" alt="image" src="https://github.com/user-attachments/assets/8f35c682-bc0f-4eb8-a7a3-eb91810bf63e" />
<img width="599" alt="image" src={require('./images/v2-flow.png').default} />
</p>

1. The user requests a quote from the interface.
Expand All @@ -55,10 +48,15 @@ This new structure reinforces UniswapX’s commitment to transparency, efficienc
## Why is a cosigner needed?

In UniswapX V2, users commit to a range of prices when signing their order. Without safeguards, a malicious auctioneer could provide users the worst price within their range.

<p align="center">
<img width="599" alt="image" src={require('./images/cosigner.png').default} />
</p>

The cosigner field allows users to designate an auctioneer they trust to run the auction fairly, ensuring the best executable price within the signed parameters. Currently, the trading API sets the cosigner to Uniswap Labs, though this could be updated in the future.

# Current Status
UniswapX V2 is currently the default version of the protocol running on Mainnet across Uniswap's interfaces.

# Smart Contracts

* [V2DutchOrderReactor](https://github.com/Uniswap/UniswapX/blob/main/src/reactors/V2DutchOrderReactor.sol)
Binary file added docs/contracts/uniswapx/images/cosigner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/contracts/uniswapx/images/v1-flow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/contracts/uniswapx/images/v2-flow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 6e7d509

Please sign in to comment.