Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Middleware protect #152

Open
wants to merge 54 commits into
base: middleware-remove
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
128aacf
create outline
Jun1on Jul 15, 2024
6801684
add liquidity protection
Jun1on Jul 15, 2024
5e6c2ae
add quoter check in beforeswap
Jun1on Jul 15, 2024
9f6788e
increase foundry gas_limit
Jun1on Jul 16, 2024
e3ad3c7
forge fmt
Jun1on Jul 16, 2024
d3e40ff
add function to handle errors
Jun1on Jul 16, 2024
052f21d
enforce implementation address mined
Jun1on Jul 16, 2024
71962b1
fix error bug
Jun1on Jul 17, 2024
9a60e41
bring back random function
Jun1on Jul 17, 2024
daf74ce
Recipient mapping! (#246)
hensha256 Aug 2, 2024
fdf28e4
allow batching sig based approvals through p2 forwarder (#238)
snreynolds Aug 2, 2024
ebf7a4d
Take portion (#250)
hensha256 Aug 2, 2024
30863cc
Pay with balance, and use delta as amount in (#249)
hensha256 Aug 2, 2024
a9e463d
Settle pair (#242)
dianakocsis Aug 2, 2024
e764aec
posm: add staking through subscribers (#229)
snreynolds Aug 2, 2024
912536c
make msgSender public (#253)
hensha256 Aug 2, 2024
eee5a0e
posm: CLEAR_OR_TAKE (#252)
saucepoint Aug 2, 2024
6fe5428
TAKE_PAIR (#254)
dianakocsis Aug 3, 2024
1f28ac2
ERC721Permit (#210)
saucepoint Aug 3, 2024
2f15bb2
Take (#257)
snreynolds Aug 3, 2024
86b5ea3
multicall: bubble up revert reason (#236)
saucepoint Aug 4, 2024
d65f158
Optimise permit hashing (#260)
hensha256 Aug 4, 2024
0c956bf
Replace OZ EIP712 (#256)
saucepoint Aug 4, 2024
60a983e
Take command in router (#261)
hensha256 Aug 4, 2024
dfa1865
posm: Rename File Collisions (#263)
saucepoint Aug 4, 2024
2d07bd4
Align constants with UR (#267)
hensha256 Aug 4, 2024
e2d2508
One BPS library (#268)
hensha256 Aug 4, 2024
eb0cf58
slippage params routing (#264)
hensha256 Aug 4, 2024
41bbc7d
add liquidity view (#270)
snreynolds Aug 4, 2024
ea5f9ec
add bytes, clean up compiliation (#269)
snreynolds Aug 4, 2024
f402aa7
actions with no unlock (#231)
hensha256 Aug 5, 2024
d1f9005
ERC721Permit - PermitForAll (#271)
saucepoint Aug 5, 2024
3b93674
Wrap reverts thrown by subscribers (#273)
gretzke Aug 5, 2024
df47aa9
Some cleanup (#276)
snreynolds Aug 5, 2024
20718d5
Make PositionManager.transferFrom virtual (#278)
brockmiller Aug 5, 2024
cf4e2ad
Use custom revert (#277)
snreynolds Aug 5, 2024
af688af
add mint position event (#279)
snreynolds Aug 5, 2024
bf3b8ad
Provide feesAccrued to subscriber.notifyModifyLiquidity (#282)
saucepoint Aug 6, 2024
17f1a49
OZ: posm - restore permissioning on increase (#290)
saucepoint Aug 7, 2024
7cad2f6
fix: slippage checks (#285)
snreynolds Aug 8, 2024
b890da6
nit: make multicall external (#292)
snreynolds Aug 8, 2024
4d56687
OZ: Remove contract balance swap input (#286)
hensha256 Aug 8, 2024
469f856
move sub unsub (#287)
snreynolds Aug 8, 2024
5ad4439
add view quoter
Jun1on Aug 8, 2024
656afa4
Merge branch 'middleware-remove' into middleware-protect
Jun1on Aug 9, 2024
05ad967
uninheret from middleware-remove
Jun1on Aug 13, 2024
54c12c8
add gas tests with revert quoter
Jun1on Aug 13, 2024
4ad5a3f
Merge branch 'view-quoter' into middleware-protect
Jun1on Aug 13, 2024
8139431
forge test --isolate
Jun1on Aug 13, 2024
81e9692
use view quoter
Jun1on Aug 13, 2024
3f69c05
optimize quoter
Jun1on Aug 13, 2024
6632806
update docs
Jun1on Aug 14, 2024
cea56de
use tstore
Jun1on Aug 15, 2024
5eec68a
update gas snapshots
Jun1on Aug 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
update gas snapshots
  • Loading branch information
Jun1on committed Aug 15, 2024
commit 5eec68a4c05f2dcaa5705eae13d7a1dbb5f23e0f
2 changes: 1 addition & 1 deletion .forge-snapshots/MIDDLEWARE_PROTECT-multi-protected.snap
Original file line number Diff line number Diff line change
@@ -1 +1 @@
178969
178303
2 changes: 1 addition & 1 deletion .forge-snapshots/MIDDLEWARE_PROTECT-protected.snap
Original file line number Diff line number Diff line change
@@ -1 +1 @@
149436
149751
4 changes: 2 additions & 2 deletions src/middleware/ABOUT_MIDDLEWARE.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,5 +96,5 @@ Before any hooks are called, it quotes the output amount. Then, in the afterSwap
### Gas Snapshots
| | Unprotected | Protected | Diff |
| --- | --- | --- | --- |
| Single-tick swap | 124,869 | 151,501 | 26,632 |
| Multi-tick swap | 143,854 | 184,020 | 40,166 |
| Single-tick swap | 124,869 | 149,751 | 24,882 |
| Multi-tick swap | 143,854 | 178,303 | 34,449 |
4 changes: 2 additions & 2 deletions src/middleware/CheapQuoter.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {PoolKey} from "@uniswap/v4-core/src/types/PoolKey.sol";
import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol";
import {SwapMath} from "@uniswap/v4-core/src/libraries/SwapMath.sol";
import {TickMath} from "@uniswap/v4-core/src/libraries/TickMath.sol";
import "@uniswap/v4-core/src/libraries/SafeCast.sol";
import {SafeCast} from "@uniswap/v4-core/src/libraries/SafeCast.sol";
import {LiquidityMath} from "@uniswap/v4-core/src/libraries/LiquidityMath.sol";
import {PoolTickBitmap} from "../libraries/PoolTickBitmap.sol";
import {Slot0, Slot0Library} from "@uniswap/v4-core/src/types/Slot0.sol";
Expand Down Expand Up @@ -167,7 +167,7 @@ contract CheapQuoter {
if (state.sqrtPriceX96 == step.sqrtPriceNextX96) {
// if the tick is initialized, run the tick transition
if (step.initialized) {
(, int128 liquidityNet,,) = poolManager.getTickInfo(poolKey.toId(), step.tickNext);
(, int128 liquidityNet) = poolManager.getTickLiquidity(poolKey.toId(), step.tickNext);

// if we're moving leftward, we interpret liquidityNet as the opposite sign
// safe because liquidityNet cannot be type(int128).min
Expand Down
Loading