Commit Graph

990 Commits

Author SHA1 Message Date
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
Diana Carvalho
739fb46d20 feat: Add protocol_specific_addresses.json file
This way we can define protocol and chain specific addresses in this file and use them in the Encoders

--- don't change below this line ---
ENG-4306 Took 1 hour 4 minutes
2025-04-08 09:30:29 +01:00
Diana Carvalho
913d677ffb feat: Support Curve ETH
Curve pools use a different address from ETH (native token)

- Pass Chain into the SwapEncoderBuilder and SwapEncoder
- Add native_token_curve_address and native_token_address to CurveSwapEncoder
- Added integration test for this curve case

--- don't change below this line ---
ENG-4306 Took 1 hour 4 minutes


Took 11 seconds
2025-04-08 09:30:29 +01:00
Diana Carvalho
1838ccf8a1 fix: Fix Ekubo test
--- don't change below this line ---
ENG-4306 Took 15 minutes
2025-04-08 09:30:29 +01:00
Diana Carvalho
1e47d0e25b feat(curve): Add integration test
Bonus fix of a shameful typo :|

--- don't change below this line ---
ENG-4306 Took 21 minutes
2025-04-08 09:30:29 +01:00
Diana Carvalho
e9bb8c576a feat(curve): Add CurveEncoder
We don't know the pool tokens in the ProtocolComponent, so we can't infer the indexes correctly. Added a call to the MetaRegistry curve contract to get the correct token indexes. To do this, I had to move the get_client to utils. We could actually refactor the transaction logic into its' own struct and use it here and in the approval logic
It was assumed that all the pools will have a "factory" static attribute, even if empty

--- don't change below this line ---
ENG-4306 Took 2 hours 28 minutes


Took 27 seconds
2025-04-08 09:30:29 +01:00
semantic-release-bot
f7cdc6f537 chore(release): 0.77.0 [skip ci]
## [0.77.0](https://github.com/propeller-heads/tycho-execution/compare/0.76.0...0.77.0) (2025-04-07)

### Features

* add curve executor with router tests ([7cde513](7cde5130d6))
* allow executor to do native swaps, add diff pool type tests ([93bdc86](93bdc86dc6))
* Refactor Curve Executor not to use the router ([9f21842](9f2184258a))

### Bug Fixes

* fix slither CI action ([42d1ab3](42d1ab36fd))
* Improve curve executor tests and docstrings ([f468a78](f468a7831a))
* Remove unnecessary test method ([49aefc8](49aefc8c2a))
* resolve pr comments ([9e2a9f5](9e2a9f5329))
2025-04-07 16:04:21 +00:00
dianacarvalho1
8d26293a86 Merge pull request #112 from propeller-heads/router/hr/ENG-4304-curve-executor
feat: add curve executor
2025-04-07 17:02:04 +01:00
Diana Carvalho
49aefc8c2a fix: Remove unnecessary test method
--- don't change below this line ---
ENG-4305 Took 2 minutes
2025-04-04 09:13:36 +01:00
Diana Carvalho
8d75b372e6 ci: Fix slither action
--- don't change below this line ---
ENG-4305 Took 4 minutes
2025-04-04 09:11:43 +01:00
Diana Carvalho
9f2184258a feat: Refactor Curve Executor not to use the router
We don't need to use all the functionalities of the Curve Router, only the swap type 1 (exchange). By bypassing the router we can save gas on 2 token transfers and with smaller calldata
A nice side effect is that the executor is much more readable and understandable now

--- don't change below this line ---
ENG-4305 Took 2 hours 25 minutes


Took 12 seconds
2025-04-03 18:18:16 +01:00
Diana Carvalho
f468a7831a fix: Improve curve executor tests and docstrings
--- don't change below this line ---
ENG-4305 Took 34 minutes


Took 8 seconds
2025-04-03 18:17:45 +01:00
royvardhan
3a08c0d71d test: test two more pool types 2025-04-03 18:17:45 +01:00
royvardhan
9e2a9f5329 fix: resolve pr comments
Took 2 seconds
2025-04-03 18:17:45 +01:00
royvardhan
42d1ab36fd fix: fix slither CI action
Took 5 seconds
2025-04-03 18:17:45 +01:00
royvardhan
07d6323316 chore: fmt 2025-04-03 18:17:45 +01:00
royvardhan
826eca4a80 refactor: move swap params from interface to executor, add needsApproval 2025-04-03 18:17:45 +01:00
royvardhan
3054ca042b chore: rename ethAddress to nativeToken, update tests 2025-04-03 18:17:45 +01:00
royvardhan
05ea2c7734 chore: cleanup 2025-04-03 18:17:45 +01:00
royvardhan
c3d36ae25f test: add curve swap tests with pools from indexer 2025-04-03 18:17:45 +01:00
royvardhan
93bdc86dc6 feat: allow executor to do native swaps, add diff pool type tests
Took 4 seconds
2025-04-03 18:17:45 +01:00
royvardhan
7cde5130d6 feat: add curve executor with router tests
Took 36 minutes


Took 2 minutes
2025-04-03 18:17:45 +01:00
semantic-release-bot
6c679c0434 chore(release): 0.76.0 [skip ci]
## [0.76.0](https://github.com/propeller-heads/tycho-execution/compare/0.75.1...0.76.0) (2025-04-03)

### Features

* deploy Ekubo gas optimizations ([9012d7b](9012d7b4d1))
2025-04-03 13:34:26 +00:00
Tamara
b8e56c2062 Merge pull request #152 from propeller-heads/router/tnl/ekubo-gas-improvements-deployment
feat: deploy Ekubo gas optimizations
2025-04-03 15:32:16 +02: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
9c8e093588 Merge pull request #146 from die-herdplatte/remove-ekubo-balance-of-checks
feat: Remove balanceOf checks in EkuboExecutor & remove ICallback impl
2025-04-03 12:18:06 +02:00
Tamara
10ad95be69 Merge branch 'main' into remove-ekubo-balance-of-checks 2025-04-03 12:13:32 +02:00
semantic-release-bot
568b17f074 chore(release): 0.75.1 [skip ci]
## [0.75.1](https://github.com/propeller-heads/tycho-execution/compare/0.75.0...0.75.1) (2025-04-03)

### Bug Fixes

* Proper ekubo protocol name in GROUPABLE_PROTOCOLS ([b4c687b](b4c687bc3f))
2025-04-03 10:10:12 +00:00
Tamara
d03dd910d2 Merge branch 'main' into remove-ekubo-balance-of-checks 2025-04-03 12:08:26 +02:00
Tamara
5414b658fb Merge pull request #151 from propeller-heads/encoding/tnl/fix-ekubo-grouping
fix: Proper ekubo protocol name in GROUPABLE_PROTOCOLS
2025-04-03 12:06:51 +02:00
Tamara
ae5b468485 Merge branch 'main' into encoding/tnl/fix-ekubo-grouping 2025-04-03 11:46:35 +02:00
semantic-release-bot
f2c29c2c7c chore(release): 0.75.0 [skip ci]
## [0.75.0](https://github.com/propeller-heads/tycho-execution/compare/0.74.0...0.75.0) (2025-04-03)

### Features

* Unichain deployment ([d05e118](d05e1183d4))

### Bug Fixes

* Run foundry tests on PR branch (not main) ([43f1a07](43f1a07017))
* Set native and wrapped tokens for Unichain ([4878229](4878229e1d))
2025-04-03 09:46:01 +00:00
Tamara
e2be13521b Merge branch 'main' into encoding/tnl/fix-ekubo-grouping 2025-04-03 11:45:14 +02:00
dianacarvalho1
c0247de888 Merge pull request #150 from propeller-heads/router/tnl/deploy-unichain
feat: Unichain deployment
2025-04-03 10:43:37 +01:00
TAMARA LIPOWSKI
43f1a07017 fix: Run foundry tests on PR branch (not main) 2025-04-03 11:26:06 +02:00
TAMARA LIPOWSKI
b4c687bc3f fix: Proper ekubo protocol name in GROUPABLE_PROTOCOLS 2025-04-03 11:09:31 +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
semantic-release-bot
f514871e61 chore(release): 0.74.0 [skip ci]
## [0.74.0](https://github.com/propeller-heads/tycho-execution/compare/0.73.0...0.74.0) (2025-04-02)

### Features

* Fix rollFork usage for Ekubo test ([6cdca83](6cdca8381e))

### Bug Fixes

* Fix tests after cherry picking ([5336969](5336969df8))
2025-04-02 15:19:00 +00:00
dianacarvalho1
624700d614 Merge pull request #148 from propeller-heads/router/dc/refactor-tests
feat: Refactor router tests
2025-04-02 16:17:06 +01: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