Commit Graph

298 Commits

Author SHA1 Message Date
Diana Carvalho
df1c05ea00 feat: Add SingleSwap integration test and fix bug in method signatures
--- don't change below this line ---
ENG-4306 Took 27 minutes


Took 15 seconds
2025-04-23 12:30:13 +01:00
TAMARA LIPOWSKI
3f6bc5643e fix: Integration tests after merge
Took 50 seconds
2025-04-23 12:30:06 +01:00
TAMARA LIPOWSKI
3d01158bbb chore: merge main
Took 3 minutes
2025-04-23 12:29:36 +01:00
TAMARA LIPOWSKI
c4455dcabb refactor: Separate test files for split/sequential/single
- Add more test cases for sequential swap and single swap to match those of split swap (fee, slippage), to catch errors more easily if someone makes a small code change to either the single or sequential methods
- Excluded USV3 and USV4 tests on sequential and single swap, since these tests were more to test USV3 and USV4 executor functionality than the high level sswap methods - they should already be sufficiently tested.
- Remove `testSplitSwapSimple` and `testSplitSwapSingleUSV3` since this is already tested by several other high-level methods (see single USV3 and single USV4 tests). We should prioritize integration-testing public methods over private methods.
2025-04-23 12:26:31 +01:00
TAMARA LIPOWSKI
1dad4afb6b feat: Decode single and sequential swaps in LibSwap
- The old way was useful when we just had split swaps. Unfortunately, we now have split, sequential, and single swaps, which don't always require token indices or split percentages, so we need to decode differently for each case.
2025-04-23 12:26:31 +01:00
TAMARA LIPOWSKI
3ae9d3ad67 feat: Add sequential swap methods
- Add some basic tests (will add more in next commits)
- Adapt sequential tests (which originally tested split swap)
- Adapt a forgotten single swap test

TODO:
- Fix encoding of single and sequential swaps to not expect the split sawp format every time (the split and the token indices are not necessary and consume unnecessary gas).
2025-04-23 12:26:31 +01:00
TAMARA LIPOWSKI
49e0c49828 chore: (single swap) remove unnecessary cycle check
- It's not possible to have a single cyclical swap.
2025-04-23 12:26:31 +01:00
TAMARA LIPOWSKI
64345663d0 feat: Single swap methods.
- Remove duplicate test case for single swp with permit2. This test came from the days when we could still have a 0 minimum amount.
2025-04-23 12:26:31 +01:00
TAMARA LIPOWSKI
65178681e0 docs: Rename to splitSwap in helper method docs too
Took 4 minutes
2025-04-23 12:26:31 +01:00
TAMARA LIPOWSKI
7fc008a718 feat: Rename split swap interfaces
- In preparation for adding single and sequential swap methods.
2025-04-23 12:25:36 +01:00
TAMARA LIPOWSKI
9012d7b4d1 feat: deploy Ekubo gas optimizations
new executor and new router (since the executor is hardcoded for now).
2025-04-03 12:51:23 +02:00
Tamara
d03dd910d2 Merge branch 'main' into remove-ekubo-balance-of-checks 2025-04-03 12:08:26 +02:00
TAMARA LIPOWSKI
25cafa31e7 chore: forge fmt 2025-04-03 10:53:55 +02:00
Tamara
3a42059598 Merge branch 'main' into router/tnl/deploy-unichain 2025-04-03 10:53:31 +02:00
die-herdplatte
5540503a59 forge fmt 2025-04-03 00:42:10 +07:00
die-herdplatte
4e34f45bf4 Remove balanceOf checks in EkuboExecutor & remove ICallback impl 2025-04-03 00:36:38 +07:00
Diana Carvalho
5336969df8 fix: Fix tests after cherry picking
--- don't change below this line ---
ENG-4411 Took 1 hour 9 minutes

Took 18 minutes
2025-04-02 16:13:58 +01:00
Diana Carvalho
6cdca8381e feat: Fix rollFork usage for Ekubo test
- Created methods to deploy the router and the executors. Whenever we use rollFork we need to redeploy everything! Notice that the addresses will be different then!
- Created a test_executor_addresses.json to be used in the encoding tests, this way the calldata for the integration tests is already correct and we don't need to do any manual replacing (this was annoying). The addresses in this file match with the addresses used in the solidity tests

--- don't change below this line ---
ENG-4411 Took 1 hour 9 minutes

Took 28 minutes


Took 4 minutes

Took 45 minutes
2025-04-02 16:13:58 +01:00
TAMARA LIPOWSKI
d05e1183d4 feat: Unichain deployment 2025-04-02 15:49:08 +02:00
TAMARA LIPOWSKI
e3d25fcd5e feat: Update ekubo router address
- Both during encoding and hardcoded in the TychoRouter.
2025-04-02 00:10:21 +02: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
75516122e1 fix: support payCallback method for Ekubo
- depending on the pool, either lock or payCallback may be called.
2025-03-31 21:01:36 +02:00
TAMARA LIPOWSKI
28f9f244e6 fix: test setup fix after rebase 2025-03-31 17:54:35 +02:00
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
47d96c2347 Add integration test 2025-03-26 16:50:03 +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
fa024a4a67 feat: Add PancakeSwapV3 support to encoding
- Add deployed executor address to json
- Build proper encoder for pancake v3
- Increase gas limit when setting executors (costs more since we set one more)
- Fix json filename in scripts/README.md
2025-03-25 17:50:25 +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
1ed149a9b8 fix: Remove pancakeswap V3 from approved executor addresses
- Our router does not properly support pancakeswap.
2025-03-20 12:40:03 -04:00
TAMARA LIPOWSKI
783712be5d feat: Set v2/v3 executor addresses on ethereum
- Also fix router address env name in readme
2025-03-20 12:40:03 -04:00
TAMARA LIPOWSKI
39bd9df4b6 fix: proper exchange name when deploying executors
- Also update base executors in json
2025-03-20 12:40:03 -04: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
Diana Carvalho
27c9c53889 feat: Add check to don't support cyclical swaps with native actions
Remove unnecessary tests and improve comments

--- don't change below this line ---
ENG-4331 Took 30 minutes
2025-03-13 17:34:50 +00:00
royvardhan
ec26890d00 test: add assert in cyclic swap encoding tests 2025-03-12 00:49:42 +05:30
royvardhan
eb4ce40f6e test: add testCyclicSwapUnwrapOutputIntegration in encoder and testCyclicSwapUnwrapOutputIntegration test 2025-03-12 00:49:42 +05:30
royvardhan
b7c1619796 docs: make cyclic test ref addresses lowercase 2025-03-12 00:49:42 +05:30
royvardhan
6c31906733 chore: cleanup 2025-03-12 00:49:42 +05:30
royvardhan
525560ea16 chore: cleanup 2025-03-12 00:49:42 +05:30