From c85bd29c296097f69de657003b961d6032b99c5f Mon Sep 17 00:00:00 2001 From: Elias Rad <146735585+nnsW3@users.noreply.github.com> Date: Wed, 2 Oct 2024 21:28:44 +0300 Subject: [PATCH 1/3] Update main.tex --- docs/whitepaper/latex/main.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/whitepaper/latex/main.tex b/docs/whitepaper/latex/main.tex index 8683640a9..446e941e3 100644 --- a/docs/whitepaper/latex/main.tex +++ b/docs/whitepaper/latex/main.tex @@ -121,7 +121,7 @@ \section{Introduction} \label{sec:introduction} In \textsc{Uniswap v4}, we improve on these inefficiencies through a few notable features: \begin{itemize} - \item \emph{Hooks}: \textsc{Uniswap v4} allows anyone to deploy new concentrated liquidity pools with custom functionality. For each pool, the creator can define a “hook contract” that implements logic executed at specific points in a call’s lifecycle. These hooks can also manage the swap fee of the pool dynamically, implement custom curves, and adjust fees charged to liquidity providers and swappers though \emph{Custom Accounting}. + \item \emph{Hooks}: \textsc{Uniswap v4} allows anyone to deploy new concentrated liquidity pools with custom functionality. For each pool, the creator can define a “hook contract” that implements logic executed at specific points in a call’s lifecycle. These hooks can also manage the swap fee of the pool dynamically, implement custom curves, and adjust fees charged to liquidity providers and swappers through \emph{Custom Accounting}. \item \emph{Singleton}: \textsc{Uniswap v4} moves away from the factory model used in previous versions, instead implementing a single contract that holds all pools. The singleton model reduces the cost of pool creation and multi-hop trades. \item \emph{Flash accounting}: The singleton uses “flash accounting,” which allows a caller to lock the pool and access any of its tokens, as long as no tokens are owed to or from the caller by the end of the lock. This functionality is made efficient by the transient storage opcodes described in EIP-1153 \cite{Akhunov2018}. Flash accounting further reduces the gas cost of trades that cross multiple pools and supports more complex integrations with \textsc{Uniswap v4}. \item \emph{Native ETH}: \textsc{Uniswap v4} brings back support for native ETH, with support for pairs with native tokens inside \textsc{v4} pools. ETH swappers and liquidity providers benefit from gas cost reductions from cheaper transfers and removal of additional wrapping costs. @@ -309,4 +309,4 @@ \section*{Disclaimer} This paper is for general information purposes only. It does not constitute investment advice or a recommendation or solicitation to buy or sell any investment and should not be used in the evaluation of the merits of making any investment decision. It should not be relied upon for accounting, legal or tax advice or investment recommendations. This paper reflects current opinions of the authors and is not made on behalf of Uniswap Labs, Paradigm, or their affiliates and does not necessarily reflect the opinions of Uniswap Labs, Paradigm, their affiliates or individuals associated with them. The opinions reflected herein are subject to change without being updated. \end{document} -\endinput \ No newline at end of file +\endinput From 2468e24df6a25b74072f4a41464e575d73cb601e Mon Sep 17 00:00:00 2001 From: Elias Rad <146735585+nnsW3@users.noreply.github.com> Date: Wed, 2 Oct 2024 21:30:03 +0300 Subject: [PATCH 2/3] Update IHooks.sol --- src/interfaces/IHooks.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/interfaces/IHooks.sol b/src/interfaces/IHooks.sol index e0d4a1f4e..777105a45 100644 --- a/src/interfaces/IHooks.sol +++ b/src/interfaces/IHooks.sol @@ -17,7 +17,7 @@ interface IHooks { /// @param sender The initial msg.sender for the initialize call /// @param key The key for the pool being initialized /// @param sqrtPriceX96 The sqrt(price) of the pool as a Q64.96 - /// @param hookData Arbitrary data handed into the PoolManager by the initializer to be be passed on to the hook + /// @param hookData Arbitrary data handed into the PoolManager by the initializer to be passed on to the hook /// @return bytes4 The function selector for the hook function beforeInitialize(address sender, PoolKey calldata key, uint160 sqrtPriceX96, bytes calldata hookData) external From be3969fa6463d79f2dda2b73e0a98e3a403897d3 Mon Sep 17 00:00:00 2001 From: Elias Rad <146735585+nnsW3@users.noreply.github.com> Date: Wed, 2 Oct 2024 21:30:30 +0300 Subject: [PATCH 3/3] Update IPoolManager.sol --- src/interfaces/IPoolManager.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/interfaces/IPoolManager.sol b/src/interfaces/IPoolManager.sol index dc5b60b49..7b4c27e39 100644 --- a/src/interfaces/IPoolManager.sol +++ b/src/interfaces/IPoolManager.sol @@ -55,7 +55,7 @@ interface IPoolManager is IProtocolFees, IERC6909Claims, IExtsload, IExttload { /// @param tickSpacing The minimum number of ticks between initialized ticks /// @param hooks The hooks contract address for the pool, or address(0) if none /// @param sqrtPriceX96 The price of the pool on initialization - /// @param tick The initial tick of the pool corresponding to the intialized price + /// @param tick The initial tick of the pool corresponding to the initialized price event Initialize( PoolId indexed id, Currency indexed currency0,