Commit Graph

1088 Commits

Author SHA1 Message Date
dianacarvalho1
58047165f6 Merge branch 'main' into router/dc/ENG-4492-remove-self-maverick 2025-05-08 15:18:15 +01:00
Diana Carvalho
30b8f9dd19 chore: Add script to remove executor addresses from Tycho Router
--- don't change below this line ---
ENG-4454 Took 1 hour 6 minutes
2025-05-08 15:11:07 +01:00
semantic-release-bot
5ee9d79a15 chore(release): 0.88.0 [skip ci]
## [0.88.0](https://github.com/propeller-heads/tycho-execution/compare/0.87.0...0.88.0) (2025-05-06)

### Features

* Choose single strategy if it's a grouped swap of the same protocol ([079759a](079759a75b))
2025-05-06 12:55:48 +00:00
dianacarvalho1
d077929b6a Merge branch 'main' into router/dc/ENG-4492-remove-self-maverick 2025-05-06 13:53:12 +01:00
dianacarvalho1
ad860e3c8c Merge pull request #192 from propeller-heads/encoding/dc/ENG-4478-group-swaps-before-selecting-strategy
feat: Choose single strategy if it's a grouped swap of the same protocol
2025-05-06 13:52:58 +01:00
Diana Carvalho
079759a75b feat: Choose single strategy if it's a grouped swap of the same protocol
Add and update tests

--- don't change below this line ---
ENG-4478 Took 45 minutes


Took 10 seconds

Took 14 seconds
2025-05-05 12:15:33 +01:00
semantic-release-bot
d98c179c46 chore(release): 0.87.0 [skip ci]
## [0.87.0](https://github.com/propeller-heads/tycho-execution/compare/0.86.0...0.87.0) (2025-05-05)

### Features

* Update PancakeV2 executor addresses ([872aa57](872aa576e6))

### Bug Fixes

* pass permit2 in deployment scripts ([ba19b00](ba19b000dc))
2025-05-05 09:16:33 +00:00
dianacarvalho1
cb5c0f16ea Merge pull request #183 from propeller-heads/router/tnl/deploy-pancake-v2
feat: PancakeV2 redeployment
2025-05-05 10:14:25 +01:00
dianacarvalho1
b5cd53de11 Merge branch 'main' into router/tnl/deploy-pancake-v2 2025-05-05 10:11:28 +01:00
Diana Carvalho
0125118d22 chore: Remove unused self from MaverickV2Executor
--- don't change below this line ---
ENG-4492 Took 7 minutes
2025-05-05 10:06:10 +01:00
semantic-release-bot
aeaeff12fd chore(release): 0.86.0 [skip ci]
## [0.86.0](https://github.com/propeller-heads/tycho-execution/compare/0.85.1...0.86.0) (2025-05-02)

### Features

* Change revert condition in _wrapETH ([0400005](04000059e5))
* Propagate the entire result of the callback ([8a7c390](8a7c39052d))
2025-05-02 14:58:02 +00:00
dianacarvalho1
aa18ccb72a Merge pull request #189 from propeller-heads/router/dc/ENG-4476-generalize-callback-return
feat: Misc audit fixes (callback result and revert condition in _wrapETH)
2025-05-02 15:55:53 +01:00
Diana Carvalho
c4b9a1d769 docs: Mention audits in the README
--- don't change below this line ---
ENG-4476 Took 6 minutes
2025-05-02 12:55:04 +01:00
Diana Carvalho
04000059e5 feat: Change revert condition in _wrapETH
--- don't change below this line ---
ENG-4476 Took 1 minute
2025-05-02 12:48:03 +01:00
Diana Carvalho
8a7c39052d feat: Propagate the entire result of the callback
--- don't change below this line ---
ENG-4476 Took 41 minutes
2025-05-02 12:47:03 +01:00
semantic-release-bot
750382fc6f chore(release): 0.85.1 [skip ci]
## [0.85.1](https://github.com/propeller-heads/tycho-execution/compare/0.85.0...0.85.1) (2025-05-01)

### Bug Fixes

* Derive Clone in TychoEncoders ([f99bd29](f99bd296a1))
2025-05-01 00:46:56 +00:00
Tamara
229f9f5043 Merge pull request #187 from propeller-heads/encoding/tnl/derive-clone
fix: Derive Clone in TychoEncoders
2025-04-30 20:44:54 -04:00
Tamara
f021857b9f Merge branch 'main' into encoding/tnl/derive-clone 2025-04-30 20:41:06 -04:00
semantic-release-bot
b43d5cad96 chore(release): 0.85.0 [skip ci]
## [0.85.0](https://github.com/propeller-heads/tycho-execution/compare/0.84.0...0.85.0) (2025-05-01)

### Features

* add mav executor ([0ac722d](0ac722d91f))
* add swap encode ([72a651d](72a651d453))
* Transfer Optimizations in MaverickV2 ([bcef8f6](bcef8f69f6))

### Bug Fixes

* add maverick for build ([bab30e3](bab30e3958))
* maverick test fork block ([4c93830](4c938306bd))
* swap test ([d103ca9](d103ca9e33))
2025-05-01 00:39:21 +00:00
Tamara
5e60e09a13 Merge pull request #186 from propeller-heads/router/tnl/fix-maverick-execution
feat: Transfer Optimizations in MaverickV2
2025-04-30 20:37:11 -04:00
TAMARA LIPOWSKI
58e8e67494 chore: dummy commit
CI won't run
2025-04-30 20:24:21 -04:00
TAMARA LIPOWSKI
5f7ce7d5da chore: nightly fmt 2025-04-30 11:20:52 -04:00
TAMARA LIPOWSKI
d09497faca chore: Load maverick calldata from file
- Also remove irrelevant comment
2025-04-30 11:18:04 -04:00
TAMARA LIPOWSKI
f99bd296a1 fix: Derive Clone in TychoEncoders 2025-04-29 17:06:41 -04:00
TAMARA LIPOWSKI
bcef8f69f6 feat: Transfer Optimizations in MaverickV2
- Also added integration test to test the optimizations, where we can see the in and out transfers being optimized if we enable verbose foundry testing
- Fixed typo in swap encoder builder initialization
2025-04-29 15:46:19 -04:00
Tamara
b6a3ce624d Merge branch 'main' into feat/maverick-v2-executor 2025-04-29 12:01:20 -04:00
dianacarvalho1
df96303b90 Merge pull request #184 from propeller-heads/integration/dc/ENG-4453-file-for-integration-test
chore: Write encoding rust calldata to file and read in solidity test
2025-04-29 15:14:20 +01:00
Diana Carvalho
1746fd0e1d chore: Add "Report a vulnerability" to README
--- don't change below this line ---
ENG-4453 Took 8 minutes
2025-04-29 10:34:35 +01:00
Diana Carvalho
0ff4aef0c7 chore: Write encoding rust calldata to file and read in solidity test
This way we can automatically replace the calldata when something changes. We don't need to manually replace the string ourselves.

--- don't change below this line ---
ENG-4453 Took 3 hours 26 minutes
2025-04-29 10:23:47 +01:00
TAMARA LIPOWSKI
872aa576e6 feat: Update PancakeV2 executor addresses 2025-04-28 17:41:31 -04:00
TAMARA LIPOWSKI
ba19b000dc fix: pass permit2 in deployment scripts
- Also deploy PancakeV2 (update in config) on ethereum
2025-04-28 17:23:54 -04:00
semantic-release-bot
b03c58d833 chore(release): 0.84.0 [skip ci]
## [0.84.0](https://github.com/propeller-heads/tycho-execution/compare/0.83.0...0.84.0) (2025-04-28)

### Features

* Clear transient storage after swap call ([1b003dc](1b003dc483))
2025-04-28 14:25:10 +00:00
Tamara
ff14c8f144 Merge pull request #182 from propeller-heads/router/tnl/reset-transient-storage
feat: Clear transient storage after swap call
2025-04-28 10:23:15 -04:00
Tamara
b27e6c62ec Merge branch 'main' into router/tnl/reset-transient-storage 2025-04-28 09:32:35 -04:00
Tamara
94591339a1 Merge pull request #181 from propeller-heads/router/tnl/rename-dispatcher-methods
chore: rename dispatcher methods for clarity
2025-04-28 09:13:17 -04:00
Tamara
07fbc0ac10 Merge branch 'main' into router/tnl/rename-dispatcher-methods 2025-04-28 09:00:21 -04:00
semantic-release-bot
f141d2dda1 chore(release): 0.83.0 [skip ci]
## [0.83.0](https://github.com/propeller-heads/tycho-execution/compare/0.82.1...0.83.0) (2025-04-28)

### Features

* Add security check for callback selector ([4de1d10](4de1d10406))

### Bug Fixes

* Remove tload from executor ([3fb17c7](3fb17c71da))
2025-04-28 12:58:53 +00:00
Tamara
87d6ead4c7 Merge branch 'main' into router/tnl/rename-dispatcher-methods 2025-04-28 08:56:08 -04:00
Tamara
f6c62e2b0f Merge pull request #180 from propeller-heads/router/tnl/remove-tload-usv4
fix: Remove tload from executor
2025-04-28 08:55:54 -04:00
TAMARA LIPOWSKI
1b003dc483 feat: Clear transient storage after swap call
- This was originally remaining if no callback was performed, possible resulting in unexpected behaviour and an increased attack surface.
- Also specify nonzero slot for transient storage in order to reduce the risk of dangerous slot collision.
2025-04-25 21:39:09 -04:00
TAMARA LIPOWSKI
8b55d90608 chore: rename dispatcher methods for clarity 2025-04-25 21:07:48 -04:00
TAMARA LIPOWSKI
732450670f chore: remove outdated docstring 2025-04-25 18:33:14 -04:00
TAMARA LIPOWSKI
4de1d10406 feat: Add security check for callback selector
- Do not allow any callback to be chosen, for security and clarity purposes
2025-04-25 11:02:12 -04:00
TAMARA LIPOWSKI
3fb17c71da fix: Remove tload from executor
- Store the executor address when deploying instead.
- We would like to keep all instances of tload and tstore within the callback mechanism of our main TychoRouter contract for security reasons and to prevent any unexpected behaviour
- This way it's easy to reason that UniswapV4Executor will only ever execute a delegatecall to itself. Before it could in theory execute a delegatecall to any address. One had to look at all occurences of tstore(0, x) to ensure the address was constrained.
2025-04-24 16:57:08 -04:00
semantic-release-bot
32c2d52971 chore(release): 0.82.1 [skip ci]
## [0.82.1](https://github.com/propeller-heads/tycho-execution/compare/0.82.0...0.82.1) (2025-04-24)

### Bug Fixes

* Make clippy happy after new format! format ([7bf0b48](7bf0b48ea6))
2025-04-24 13:45:34 +00:00
dianacarvalho1
b972b04901 Merge pull request #178 from propeller-heads/router/dc/test-improvements
chore: move single tests to TychoRouterProtocolIntegration.t.sol
2025-04-24 14:43:35 +01:00
Diana Carvalho
7bf0b48ea6 fix: Make clippy happy after new format! format
Took 19 minutes
2025-04-24 13:34:08 +01:00
Diana Carvalho
fa872f5f0e chore: move single tests to TychoRouterProtocolIntegration.t.sol
They were in TychoRouterSplitSwap.t.sol
Add docs to _balancerOf

Took 2 hours 8 minutes


Took 18 seconds
2025-04-24 13:06:50 +01:00
semantic-release-bot
6b3a26f392 chore(release): 0.82.0 [skip ci]
## [0.82.0](https://github.com/propeller-heads/tycho-execution/compare/0.81.0...0.82.0) (2025-04-23)

### Features

* (WIP) Support selection of transfer into router ([a301a1c](a301a1cef3))
* Add sequential swap methods ([3ae9d3a](3ae9d3ad67))
* Add SequentialSwap integration test with regular approvals ([6e7bf3c](6e7bf3c019))
* Add SingleSwap integration test and fix bug in method signatures ([df1c05e](df1c05ea00))
* Add TokenTransfer class to BalancerV2 ([3a73fef](3a73fef933))
* Add TokenTransfer class to Curve ([462be54](462be5463b))
* Add transfer out for Curve ([328a281](328a281a44))
* Add transfer out for Uniswap V4 ([ec87969](ec87969aa6))
* Allow for token_in_already_in_router ([df92be8](df92be8875))
* allow to pass msg.sender to USV3 callback ([a37805d](a37805d046))
* allow to pass msg.sender to USV3 callback ([8969186](8969186654))
* Decode single and sequential swaps in LibSwap ([1dad4af](1dad4afb6b))
* Delete EVMStrategyEncoder (this is now unnecessary) ([6430c99](6430c99d76))
* Do not use V4Router for uniswap v4 ([cd608cb](cd608cb8e9))
* ExecutorTransferMethods helper contract ([147ba68](147ba68392))
* ExecutorTransferMethods in UniswapV3Executor ([3189139](31891397c7))
* ExecutorTransferMethods in UniswapV3Executor ([3890099](389009901e))
* Fix rollFork usage for Ekubo test ([d7b5e6d](d7b5e6dba5))
* Make USV3 callback work with direct executor call ([5562dd2](5562dd210e))
* No more fee taking ([6f2e5ac](6f2e5ac10e))
* Optimize transfer to first pool ([59a80dc](59a80dc392))
* Proper USV2Executor transfer decoding + tests ([e8f56ff](e8f56ff088))
* Proper USV2Executor transfer decoding + tests ([ca1d474](ca1d474f08))
* Proper USV3Executor transfer decoding + tests ([e3ac394](e3ac394d27))
* Refactor callback for pancakeV3 and Ekubo to use transient storage ([deb10b8](deb10b82de))
* Refactor callback to use transient storage ([af44956](af449562b0))
* Refactor TychoEncoder ([8b4b79b](8b4b79b353))
* Rename split swap interfaces ([7fc008a](7fc008a718))
* sequential swap solution validation ([0d8150e](0d8150e22f))
* Single swap methods. ([6434566](64345663d0))
* SingleSwapStrategyEncoder ([11a05e4](11a05e4f18))
* SingleSwapStrategyEncoder ([5d586c2](5d586c25e3))
* SingleSwapStrategyEncoder ([a5f07a2](a5f07a25ef))
* Support in between swaps optimizations ([efe12cf](efe12cfcd6))
* Support out transfer straight to the receiver ([9bcb58e](9bcb58e5aa))
* Support returning values from the callback ([fb35a53](fb35a5305a))
* Support using the TransferType in uniswap v4 ([4a61de5](4a61de56b7))
* **tycho-router-encoder:** Select strategy depending on the solution ([f5e712e](f5e712e0ff))
* Update tycho-encode bin with new arguments ([aba280a](aba280acd0))
* Use TokenTransfer optimization helper in Ekubo ([d9066d0](d9066d0a09))

### Bug Fixes

* Add slither ignore for loop call ([860bba4](860bba4b7a))
* After merge format fixes ([2b48293](2b48293b3d))
* After merge test fixes ([02cbb67](02cbb67b38))
* After rebase fixes ([8145f41](8145f416b7))
* bad merge ([7e98145](7e98145ad7))
* Bring back receiver address zero check ([d447551](d447551e20))
* Calldata size for Ekubo pay callback ([be65c89](be65c890bb))
* Changes after rebase ([d5d6e37](d5d6e37041))
* Configurable fee on USV2 executor. ([4f9785f](4f9785fdac))
* Conscious slither silencing ([4a20fa6](4a20fa6215))
* consider wrapping scenario when getting transfer type ([dbc9042](dbc9042a2f))
* Fix after merge with main ([fff8ef0](fff8ef0d87))
* Fix executor address in test and remove duplicated test ([2f81b16](2f81b167d4))
* Fix integration tests with transfer in method support ([d3ff9fd](d3ff9fd0e2))
* fix slither CI action ([8f23463](8f2346330a))
* Fixes after merge with feature branch ([26ec308](26ec30852d))
* Integration tests after merge ([3f6bc56](3f6bc5643e))
* No more EVMStrategyEncoder ([56d3eee](56d3eee618))
* Post rebase fixes ([d024fe2](d024fe240b))
* Prevent multiple callbacks ([f91b101](f91b101a94))
* properly add ekubo_v2 to constants ([11886b3](11886b3ac1))
* Remove router_address from Solution object ([fcedd39](fcedd39f30))
* Rename constants and update docstrings for clarity ([244b7d3](244b7d3482))
* test fix after rebase ([61c0163](61c0163bee))
* Test+formatting fixes after rebase. ([e96ea1b](e96ea1b10b))
* Tighten max feeBps in USV2 executor ([af68016](af68016223))
* TransferType renaming after rebase ([cf0300d](cf0300dd72))
* unsupported protocols for chained swaps are always unsupported ([8aa5b08](8aa5b08b41))
* USV3 encoding/decoding after rebase ([f3c4128](f3c4128eda))

### Reverts

* Revert "chore(release): 1.0.0 [skip ci]" ([07be6b9](07be6b932c))
* Revert "chore(release): 1.0.1 [skip ci]" ([a5e0d16](a5e0d16c8c))
* Revert "chore(release): 1.0.2 [skip ci]" ([2bfd780](2bfd7806f8))
* Revert "chore(release): 1.1.0 [skip ci]" ([e15ed9b](e15ed9b16e))
2025-04-23 14:18:57 +00:00
dianacarvalho1
b8b86f39b8 Merge pull request #177 from propeller-heads/precious-backup-branch-2
feat: Gas optimizations feature
2025-04-23 15:16:48 +01:00