Commit Graph

218 Commits

Author SHA1 Message Date
TAMARA LIPOWSKI
c0068d456b fix: Finalize ekubo executor address 2025-03-31 17:49:47 +02: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
05d6286921 Merge remote-tracking branch 'origin/main' into ekubo 2025-03-20 09:59:19 +01: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
a75dfd02ab docs: Fix swap without permit2 doc
- We changed this to use a transferFrom
2025-03-16 00:18:37 -04:00
royvardhan
3a6e933ce9 test: fix test_split_input_cyclic_swap and testCyclicSplitSwapIntegration 2025-03-12 00:49:42 +05:30
royvardhan
79d6c020fa misc: fix _swapChecked for cyclic swap, update encoder swap path validation, add cyclic sequesntial swap integration test 2025-03-12 00:49:42 +05:30
royvardhan
91f36fe328 fix: amountConsumed check in _swapChecked for cyclic swap 2025-03-10 23:32:30 +05:30
royvardhan
bb10efc0cc docs: update docs at _swap and testSplitOutputCyclicSwap 2025-03-10 18:12:58 +05:30
royvardhan
4d67df4096 feat: add cyclicSwapAmountOut tracker in _swap, add split cylic tests 2025-03-10 18:12:58 +05:30
royvardhan
57acbd58c5 fix: remove amountIn addition to amountOut in _swap for cyclic swaps, add testCyclicSwapWithTwoPools test to verify 2025-03-10 18:12:58 +05:30
TAMARA LIPOWSKI
b74d4c9e25 chore: remove unnecessary min amount check, doc fix 2025-03-06 10:37:37 -05:00
Diana Carvalho
5c28d77f1d feat: Check min amount out is not zero
Update tests

--- don't change below this line ---
ENG-4286 Took 57 minutes


Took 20 seconds
2025-03-05 17:53:51 +00:00
Harsh Vardhan Roy
2086484898 docs: remove unnecessary comment from swap
Co-authored-by: Tamara <tamara@datarevenue.com>
2025-03-05 22:23:16 +05:30
royvardhan
f853739a3d feat: add transferFrom in swap and move core swap logic inside _swapChecked 2025-03-05 22:23:16 +05:30
royvardhan
a3bffd4f75 fix: add amountIn in error TychoRouter__AmountInDiffersFromConsumed 2025-03-05 00:45:22 +05:30
royvardhan
6f421eb374 fix: inequality check for amountConsumed and amountIn 2025-03-05 00:35:51 +05:30
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
0273f58274 fix: remove 0 amount check in _unwrapEth 2025-02-27 20:08:49 +05:30
Harsh Vardhan Roy
393ed61595 docs: update _unwrapEth docs
Co-authored-by: Tamara <tamara@datarevenue.com>
2025-02-27 20:08:49 +05:30
royvardhan
353861f738 refactor: update unwrapEth to only check 0 amount 2025-02-27 20:08:49 +05:30
royvardhan
7b0dd5872c chore: merge main 2025-02-26 23:26:27 +05:30
royvardhan
0be69c9aea refactor: check if amountIn was fully consumed based on balance changes 2025-02-26 19:04:26 +05:30
royvardhan
53d48f1bac refactor: centralize swap logic to reduce duplication between swap and swapPermit2 2025-02-26 18:05:29 +05:30
dianacarvalho1
6008d5e836 Merge branch 'main' into router/dc/ENG-4260-improve-receive 2025-02-26 09:40:58 +00:00
TAMARA LIPOWSKI
857522134b chore: forge fmt
kill blank lines
2025-02-25 13:14:30 -05:00
TAMARA LIPOWSKI
abef1e062e style: TychoRouter ascii art 2025-02-25 13:10:29 -05:00
Diana Carvalho
801976fafa fix: Restrict receive callers to have code
--- don't change below this line ---
ENG-4260 Took 8 minutes
2025-02-25 09:36:04 +00:00
royvardhan
892726e07b chore: cleanup 2025-02-24 21:41:19 +05:30
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
Diana Carvalho
0ba5d02268 feat: Use openzepplin's sendValue instead of send for ETH transfers
--- don't change below this line ---
ENG-4260 Took 7 minutes
2025-02-21 17:07:46 +00:00
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
TAMARA LIPOWSKI
2d267792f3 docs: Fixed outdated comments
Some copypastas, some other improvements.
2025-02-20 10:46:27 -05:00