Commit Graph

1333 Commits

Author SHA1 Message Date
TAMARA LIPOWSKI
f12bebcdfb test: Fix executor address in swap test 2025-04-23 12:30:13 +01:00
TAMARA LIPOWSKI
e77a7bc3e1 test: Fix duplicate test 2025-04-23 12:30:13 +01:00
TAMARA LIPOWSKI
fcedd39f30 fix: Remove router_address from Solution object
after merge
2025-04-23 12:30:13 +01:00
TAMARA LIPOWSKI
c67c9acac4 test: Sequential swap integration test
- And other small fixes after merge
2025-04-23 12:30:13 +01:00
TAMARA LIPOWSKI
11a05e4f18 feat: SingleSwapStrategyEncoder
- Had to take the implementation of the swap header encoding out of the main EVMStrategyEncoder trait, since it will now be difference for single and split swap strategies.
- Integration tests will be added in separate task/PR.


Took 7 seconds
2025-04-23 12:30:13 +01:00
TAMARA LIPOWSKI
0d8150e22f feat: sequential swap solution validation
- Basically reuse all methods of split swap validation, minus those specific to splits.
2025-04-23 12:30:13 +01:00
TAMARA LIPOWSKI
5d586c25e3 feat: SingleSwapStrategyEncoder
- Had to take the implementation of the swap header encoding out of the main EVMStrategyEncoder trait, since it will now be difference for single and split swap strategies.
- Integration tests will be added in separate task/PR.
2025-04-23 12:30:13 +01:00
TAMARA LIPOWSKI
a5f07a25ef feat: SingleSwapStrategyEncoder
- Had to take the implementation of the swap header encoding out of the main EVMStrategyEncoder trait, since it will now be difference for single and split swap strategies.
- Integration tests will be added in separate task/PR.
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
6c74c674f0 Merge pull request #120 from propeller-heads/router/tnl/ENG-4317-sequential-in
feat: Add sequential swap methods
2025-04-23 12:26:31 +01:00
TAMARA LIPOWSKI
8f2346330a fix: fix slither CI action
- Need to manually install foundry and compile the project, or else it attempts to install the latest foundry version, which fails due to GLIBC not being found
2025-04-23 12:26:31 +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
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
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
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
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
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
semantic-release-bot
5e7c0721c5 chore(release): 0.81.0 [skip ci]
## [0.81.0](https://github.com/propeller-heads/tycho-execution/compare/0.80.0...0.81.0) (2025-04-18)

### Features

* update tycho-common version to 0.66.4 ([134c73e](134c73e82b))

### Bug Fixes

* add slither disable after slither actions update ([20573cb](20573cbaf3))
2025-04-18 12:52:51 +00:00
Louise Poole
e3f4dd04cf Merge pull request #167 from propeller-heads/lp/update-tycho-common
feat: update tycho-common version to 0.66.4
2025-04-18 14:51:01 +02:00
TAMARA LIPOWSKI
20573cbaf3 fix: add slither disable after slither actions update
- We have always been ok with risk here and ensured this won't happen for our use case, but slither  actions version was recently updated so this fails in CI.
2025-04-18 08:46:32 -04:00
Louise Poole
134c73e82b feat: update tycho-common version to 0.66.4 2025-04-18 12:08:15 +02:00
semantic-release-bot
fa3ca34480 chore(release): 0.80.0 [skip ci]
## [0.80.0](https://github.com/propeller-heads/tycho-execution/compare/0.79.0...0.80.0) (2025-04-14)

### Features

* Redeploy balancer with forceApprove fix for USDT ([a6b0f8d](a6b0f8d1f6))
2025-04-14 14:18:39 +00:00
dianacarvalho1
d71b22591c Merge pull request #161 from propeller-heads/router/dc/redeploy-balancer
feat: Redeploy balancer with forceApprove fix for USDT
2025-04-14 15:16:29 +01:00
Diana Carvalho
a6b0f8d1f6 feat: Redeploy balancer with forceApprove fix for USDT
--- don't change below this line ---
ENG-4307 Took 10 minutes
2025-04-14 09:49:39 +01:00
semantic-release-bot
4f3fe270e9 chore(release): 0.79.0 [skip ci]
## [0.79.0](https://github.com/propeller-heads/tycho-execution/compare/0.78.1...0.79.0) (2025-04-11)

### Features

* Add new CurveExecutor address ([916c2b7](916c2b7dba))
* Deploy Curve Executor ([5d4d6d1](5d4d6d1ff8))

### Bug Fixes

* Checksum curve pool addresses ([9e68ab8](9e68ab8b01))
* Support pools that hold ETH but the coin is WETH ([2e8392a](2e8392ab40))
* Use forceApprove instead of regular Approve ([c963f3b](c963f3b2f6))
2025-04-11 16:00:31 +00:00
dianacarvalho1
08158c3193 Merge pull request #159 from propeller-heads/router/dc/ENG-4307-deploy-curve
feat: Deploy Curve Executor
2025-04-11 16:58:43 +01:00
Diana Carvalho
2e8392ab40 fix: Support pools that hold ETH but the coin is WETH
--- don't change below this line ---
ENG-4307 Took 1 hour 46 minutes
2025-04-11 16:17:37 +01:00
zach
bab30e3958 fix: add maverick for build 2025-04-11 08:43:03 +08:00
zach
bd642d7b45 update 2025-04-11 08:30:48 +08:00
zach
4c938306bd fix: maverick test fork block 2025-04-11 08:30:48 +08:00
zach
d103ca9e33 fix: swap test 2025-04-11 08:30:48 +08:00
zach
72a651d453 feat: add swap encode 2025-04-11 08:30:45 +08:00
zach
0ac722d91f feat: add mav executor 2025-04-11 08:26:13 +08:00
Diana Carvalho
916c2b7dba feat: Add new CurveExecutor address
--- don't change below this line ---
ENG-4307 Took 5 minutes
2025-04-10 15:52:21 +01:00
Diana Carvalho
c963f3b2f6 fix: Use forceApprove instead of regular Approve
This is necessary for USDT (it was failing)

--- don't change below this line ---
ENG-4307 Took 29 minutes
2025-04-10 15:44:02 +01:00
Diana Carvalho
9e68ab8b01 fix: Checksum curve pool addresses
--- don't change below this line ---
ENG-4307 Took 5 minutes
2025-04-10 12:38:39 +01:00
Diana Carvalho
5d4d6d1ff8 feat: Deploy Curve Executor
--- don't change below this line ---
ENG-4307 Took 27 minutes
2025-04-10 12:18:21 +01:00
Diana Carvalho
fb35a5305a feat: Support returning values from the callback
Rollback some of the Ekubo's Executor changes to a previous version to use the generic callback logic using transient storage

Took 1 hour 25 minutes


Took 13 seconds
2025-04-10 09:52:19 +01:00
Diana Carvalho
f91b101a94 fix: Prevent multiple callbacks
After a callback is performed, the executor address transient storage is set to 0 so that multiple callbacks can't be performed for the same swap

--- don't change below this line ---
ENG-4411 Took 22 minutes
2025-04-09 13:39:12 +01:00
Diana Carvalho
d7b5e6dba5 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 2 minutes
2025-04-09 13:39:09 +01:00
Diana Carvalho
deb10b82de feat: Refactor callback for pancakeV3 and Ekubo to use transient storage
--- don't change below this line ---
ENG-4411 Took 1 hour 5 minutes

Took 1 minute
2025-04-09 13:07:02 +01:00
Diana Carvalho
af449562b0 feat: Refactor callback to use transient storage
With this, we don't need the univ3 specific method in the router contract. This should be flexible enough for most protocols that integrate

TODO: is this safe enough??

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

Took 4 minutes

Took 5 minutes
2025-04-09 13:05:53 +01:00
semantic-release-bot
62754b195e chore(release): 0.78.1 [skip ci]
## [0.78.1](https://github.com/propeller-heads/tycho-execution/compare/0.78.0...0.78.1) (2025-04-09)

### Bug Fixes

* Curve factory addresses are utf-8 encoded ([ce71894](ce7189423f))
2025-04-09 08:39:42 +00:00
dianacarvalho1
09a06d8b53 Merge pull request #157 from propeller-heads/encoding/dc/curve-utf-8-decode-factories
fix: Curve factory addresses are utf-8 encoded
2025-04-09 09:36:45 +01:00
Diana Carvalho
ce7189423f fix: Curve factory addresses are utf-8 encoded
Took 30 minutes
2025-04-08 19:18:52 +01:00
semantic-release-bot
c36a830ae5 chore(release): 0.78.0 [skip ci]
## [0.78.0](https://github.com/propeller-heads/tycho-execution/compare/0.77.0...0.78.0) (2025-04-08)

### Features

* Add protocol_specific_addresses.json file ([739fb46](739fb46d20))
* **curve:** Add CurveEncoder ([e9bb8c5](e9bb8c576a))
* **curve:** Add integration test ([1e47d0e](1e47d0e25b))
* Support Curve ETH ([913d677](913d677ffb))

### Bug Fixes

* Add empty dicts for unichain and base in config ([c0b50c0](c0b50c0661))
* Fix Ekubo test ([1838ccf](1838ccf8a1))
2025-04-08 15:23:12 +00:00
dianacarvalho1
70b28aa223 Merge pull request #153 from propeller-heads/encoding/dc/ENG-4306-curve-encoder
feat: Curve Encoder
2025-04-08 16:21:14 +01:00
Diana Carvalho
c0b50c0661 fix: Add empty dicts for unichain and base in config
Also fix example: we need a checked amount or slippage set now

--- don't change below this line ---
ENG-4332 Took 6 minutes
2025-04-08 16:18:44 +01:00