Commit Graph

78 Commits

Author SHA1 Message Date
die-herdplatte
4e34f45bf4 Remove balanceOf checks in EkuboExecutor & remove ICallback impl 2025-04-03 00:36:38 +07:00
die-herdplatte
9256bf8742 Remove Ekubo executor support for partial swaps
Partial swaps would likely run out-of-gas anyway and removing the support saves a bit more gas
2025-04-01 14:00:48 +07:00
TAMARA LIPOWSKI
c678f40057 fix: Take address for EkuboExecutor init
- To match the other executor inits and to not leak information about ICore into the deployment script.
- Also fix fork block of tests. This had been temporarily changed to test the Ekubo executor. For some reason, vm.rollFork is not working in this case. Skip the Ekubo integration test for now (we know it runs with the correct block, where the pool we call is actually already deployed)
2025-03-31 17:49:47 +02:00
TAMARA LIPOWSKI
b3078f9c7b feat: Support Ekubo callback in TychoRouter
- add integration test
- cannot directly call _handleCallback from the locked method of the tycho router because of bytes memory to bytes callback conversion
- Rename to EkuboPoolKey because of conflict with USV4 pool key

- Bonus: fix bug where input token to swap method must be ERC20 (we should also support ETH)
2025-03-31 17:49:45 +02:00
Tamara
414a9609ec Merge branch 'main' into router/tnl/ENG-4409-pancake-v3-callback 2025-03-31 17:44:27 +02:00
die-herdplatte
68a9198e9c forge fmt 2025-03-29 10:32:22 +01:00
die-herdplatte
95e1bf1290 Fix wrong argument order 2025-03-29 10:29:21 +01:00
die-herdplatte
9fc99caf74 forge fmt 2025-03-26 16:57:43 +01:00
die-herdplatte
3e2e9308d4 Fix slither lints 2025-03-26 16:48:17 +01:00
die-herdplatte
261e2b2091 Merge remote-tracking branch 'upstream/main' into ekubo 2025-03-26 08:25:37 +01:00
TAMARA LIPOWSKI
c361e1515d refactor: remove duplicate code
The callback verification was already implemented in _verifyPairAddress.
2025-03-25 17:50:25 +01:00
TAMARA LIPOWSKI
d582543057 feat: Pancakeswap V3 support 2025-03-25 17:50:25 +01:00
TAMARA LIPOWSKI
2a4ee88cad feat: Support Pancakeswap v3 on ethereum
- Needed to take pool code init hash as input param for executors
- Added tests for ethereum. Will test base on-chain.
- Important note: Pancakeswap uses their deployer instead of their factory (this is a different address) for target verification.
2025-03-20 12:40:03 -04:00
die-herdplatte
3c982c5824 Ekubo integration 2025-03-20 09:58:40 +01:00
TAMARA LIPOWSKI
0a8a34be03 feat: Support sushiswap v2 and pancakeswap v2 on ethereum
- Needed to take pool code init hash as input param for executors
- Added tests for ethereum. Will test base on-chain.
2025-03-19 14:27:34 -04:00
TAMARA LIPOWSKI
33973a65b8 fix: make USV2 factory configurable in Executor
- This factory is not the same for Ethereum and Base, so Base txs were failing when verifying pool addresses.
- I've double checked that we don't have this problem for Balancer V2 - the vault address in the same on Base and on Ethereum Mainnet.
2025-02-27 23:15:08 -05:00
Diana Carvalho
59eb2195b6 feat: Change license to SPDX-License-Identifier: UNLICENSED everywhere
Remove unnecessary files

--- don't change below this line ---
ENG-4260 Took 13 minutes
2025-02-27 17:38:53 +00:00
royvardhan
69745b18fd feat: rm selector from usv3, usv4, update tests, and rename dispatcher file 2025-02-24 17:16:27 +05:30
royvardhan
58116e074a feat: hardcode callback and swap selection in dispatcher 2025-02-24 10:56:17 +05:30
royvardhan
4b77128df2 chore: rename _computePairAddress to _verifyPairAddress, add fake v2 pool in v2 test file 2025-02-22 00:26:15 +05:30
royvardhan
2f1507dd0e test: add target verification tests for usv2, usv3 2025-02-21 23:28:03 +05:30
royvardhan
7936ba1c94 feat: add target verification for usv2 and usv3 using _computePairAddress 2025-02-21 23:28:03 +05:30
TAMARA LIPOWSKI
a7aa4d7ebb fix: Native ETH input/output integration tests/fixes
- Only for single swaps
- Used USV4 for this because it's the only DEX we support that allows native ETH swaps
- For Native ETH input single swaps, we need to properly check the remaining amount (we were treating them wronly like ERC20 tokens)
- For Native ETH output single swaps, we were passing the incorrect currency (the settle always needs to be the out token and the take always needs to be the in token, this should not depend on the zeroForOne value).
2025-02-21 00:23:24 -05:00
TAMARA LIPOWSKI
d65d575003 feat: Don't encode min amount for USV4
We aren't checking min amount for any other executor. This would be overkill (since we are already checking in the main router) and also inconsistent.
2025-02-20 12:15:40 -05:00
Diana Carvalho
2aa63d7ec0 feat: Change signature of _handleCallback to take only bytes calldata
The selector and executor are decoded inside this function now.
For Uniswap V3 I had to manually slice the msg.data from uniswapV3SwapCallback to get the data that matters for the callback

Took 3 hours 12 minutes
2025-02-18 11:11:43 +00:00
royvardhan
2604935609 chore: update unlockCallback and uniswapV3SwapCallback 2025-02-17 22:51:40 +05:30
Harsh Vardhan Roy
0d5c55c546 Merge branch 'main' into router/hr/ENG-4237-refactor-usv3-callback 2025-02-17 21:56:49 +05:30
royvardhan
076586d776 feat: update _handleCallback, add verifyCallback with docs 2025-02-17 21:51:09 +05:30
royvardhan
9b8175aff9 chore: cleanup 2025-02-15 01:01:16 +05:30
royvardhan
9d3b96f997 feat: add uniswapV3SwapCallback in USV3 executor 2025-02-15 00:34:07 +05:30
royvardhan
cccb252bf2 feat: update handleCallback in USV3 to do verification 2025-02-14 23:27:44 +05:30
royvardhan
d0027e6cf2 refactor: rm callback verifier dispatcher 2025-02-14 23:11:01 +05:30
royvardhan
260f9d866f feat: add back uniswapV3SwapCallback in router 2025-02-14 23:00:23 +05:30
Diana Carvalho
8a8bc697eb fix(univ4): Make slither happy
--- don't change below this line ---
ENG-4222 Took 17 minutes

Took 47 seconds


Took 14 seconds
2025-02-14 12:39:36 +00:00
Diana Carvalho
4d0f5cec64 fix(univ4): Append callback data instead of prepending
Bring back tests on the executor level. This way the executor can actually be used alone

--- don't change below this line ---
ENG-4222 Took 12 minutes
2025-02-14 12:02:07 +00:00
Diana Carvalho
21a8c1a27a feat(univ4): Implement swapping with multiple hops
--- don't change below this line ---
ENG-4222 Took 47 minutes
2025-02-14 12:02:07 +00:00
Diana Carvalho
be7883affc feat(univ4): Refactor input and handle single swap case
Construct the uniswap v4 specific objects inside the executor
The swap test in the executor alone doesn't work anymore because of the callback data prepended to the rest of he calldata

--- don't change below this line ---
ENG-4222 Took 4 hours 0 minutes


Took 40 seconds
2025-02-14 12:02:07 +00:00
royvardhan
5853de679a feat: move callback testing to usv3 executor 2025-02-14 01:29:30 +05:30
royvardhan
80500e615e feat: fix input decoding in usv3 executor and execution dispatcher 2025-02-14 00:53:43 +05:30
royvardhan
bd1971334e feat: update new interface in codebase 2025-02-13 20:54:54 +05:30
royvardhan
a309825769 refactor: rm usv3 callback from router and add generic callback to executor 2025-02-13 20:31:21 +05:30
royvardhan
d79068282a fix: _pay and msgSender 2025-02-13 00:25:26 +05:30
royvardhan
0c40e9e979 fix: handle native token balance changes 2025-02-13 00:25:26 +05:30
royvardhan
fe48c64e8e chore: change balance checks naming 2025-02-13 00:25:26 +05:30
royvardhan
2371ab2a1f fix: remove executeActions wrapper, strict equality checks and rename swap return 2025-02-13 00:25:26 +05:30
royvardhan
b47cff3fc9 fix: add equality check, amountInOrOut check, update _decodeData 2025-02-13 00:25:26 +05:30
royvardhan
ff3209b1c8 fix: remove extra _receiver and redundant asserts 2025-02-13 00:25:26 +05:30
royvardhan
120c96215f chore: remove redundant data from _decodeData 2025-02-13 00:25:25 +05:30
royvardhan
a8cc84ddce fix: git submodules and strict equality check in v4 executor 2025-02-13 00:25:25 +05:30
royvardhan
d998c88cfe feat: support multi swap decoding 2025-02-13 00:25:25 +05:30