# Uniswap

## Uniswap

## Uniswap V3

## Uniswap V4

### Edge Cases & Exploit Vectors

* Dust left in Uniswap V4 by the end of the callback will cause a revert
* You could maybe censor async actions by entering a callback on the pool before interacting with the victim protocol
* After a zeroForOne swap the active price can be exactly on a tick, but the activeTick will actually be the previous tick. This merely maintains the invariant that active price is ahead of activeTick, but may cause some issues with protocols — especially for 1 tick spacing pools!
* Sync DoS attack where either native or non-native tokens are donated and not synced, see [L-13 Here](https://github.com/GuardianAudits/Audits/blob/main/GammaStrategies/2025-04-14_Gamma_UniswapV4_LimitOrders.pdf)

### Checklist Items

* Hook functions should be permissioned for only the Uni Pool that uses that hook contract!

### Audit References & Resources

Gamma Uniswap V4 Limit Orders: <https://github.com/GuardianAudits/Audits/blob/main/GammaStrategies/2025-04-14\\_Gamma\\_UniswapV4\\_LimitOrders.pdf>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lab.guardianaudits.com/encyclopedia-of-security-research/uniswap.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
