Commit Graph

657 Commits

Author SHA1 Message Date
semantic-release-bot
8a709b3033 chore(release): 0.4.0 [skip ci]
## [0.4.0](https://github.com/propeller-heads/tycho-execution/compare/0.3.0...0.4.0) (2025-01-20)

### Features

* Add Slither to CI ([f0620bd](f0620bd180))
* Add Slither to README.md and include contract file to test ([2998bb3](2998bb3fb1))

### Bug Fixes

* Bump to latest Solidity version (0.8.28) ([f987125](f987125489)), closes [src/Counter.sol#2](https://github.com/src/Counter.sol/issues/2)
* Specify foundry subdir when running slither in CI ([40f0a2a](40f0a2a2b7))
2025-01-20 14:21:36 +00:00
Tamara
3037edd3ab Merge pull request #10 from propeller-heads/ci/tnl/ENG-4031-add-slither
feat: Add Slither to CI
2025-01-20 09:17:44 -05:00
TAMARA LIPOWSKI
68dddc0663 chore: Rename TychoRouter typo
- Accidentally copy pasta'd
2025-01-17 17:58:12 -05:00
TAMARA LIPOWSKI
f987125489 fix: Bump to latest Solidity version (0.8.28)
Earlier versions have known vulnerabilities.

Slither output:
```
INFO:Detectors:
Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- StorageWriteRemovalBeforeConditionalTermination
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- InlineAssemblyMemorySideEffects
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation.
It is used by:
	- ^0.8.13 (src/Counter.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
INFO:Slither:foundry/ analyzed (2 contracts with 93 detectors), 1 result(s) found
```
2025-01-17 16:57:08 -05:00
TAMARA LIPOWSKI
40f0a2a2b7 fix: Specify foundry subdir when running slither in CI
Otherwise there will be no contract to analyze
2025-01-17 16:57:08 -05:00
TAMARA LIPOWSKI
2998bb3fb1 feat: Add Slither to README.md and include contract file to test 2025-01-17 16:39:21 -05:00
TAMARA LIPOWSKI
f0620bd180 feat: Add Slither to CI
- make foundry workflow kebab case
2025-01-17 12:26:28 -05:00
semantic-release-bot
a16b2affed chore(release): 0.3.0 [skip ci]
## [0.3.0](https://github.com/propeller-heads/tycho-execution/compare/0.2.0...0.3.0) (2025-01-17)

### Features

* Add EncodingError ([bab5caa](bab5caa6f8))

### Bug Fixes

* Add RecoverableError ([af6d73a](af6d73a540))
2025-01-17 17:14:08 +00:00
dianacarvalho1
2024b94bcf Merge pull request #8 from propeller-heads/encoding/dc/ENG-4076-error-handling
feat: Add EncodingError
2025-01-17 17:11:52 +00:00
Diana Carvalho
af6d73a540 fix: Add RecoverableError
--- don't change below this line ---
ENG-4076 <#DTT#>
2025-01-17 17:02:44 +00:00
Diana Carvalho
bab5caa6f8 feat: Add EncodingError
Change method signatures to expect it and raise it where it makes sense

--- don't change below this line ---
ENG-4076 <#DTT#>
2025-01-17 17:00:52 +00:00
semantic-release-bot
e77a50b2bb chore(release): 0.2.0 [skip ci]
## [0.2.0](https://github.com/propeller-heads/tycho-execution/compare/0.1.0...0.2.0) (2025-01-17)

### Features

* Simplify StrategyEncoders and RouterEncoder ([38b8bb0](38b8bb0e78))
2025-01-17 16:57:49 +00:00
dianacarvalho1
27a70441ac Merge pull request #9 from propeller-heads/encoding/dc/simplify-strategies-and-batch-encoding
feat: Simplify StrategyEncoders and RouterEncoder
2025-01-17 16:55:33 +00:00
Diana Carvalho
38b8bb0e78 feat: Simplify StrategyEncoders and RouterEncoder
No more SingleSwapStrategyEncoder or SequentialStrategyEncoder
No more batch routing (so no need for batch permits as well). If multiple solutions are found, return multiple Transactions

--- don't change below this line ---
ENG-4076 <#DTT#>
2025-01-17 16:21:26 +00:00
semantic-release-bot
b07cb9bc76 chore(release): 0.1.0 [skip ci]
## [0.1.0](https://github.com/propeller-heads/tycho-execution/compare/0.0.1...0.1.0) (2025-01-17)

### Features

* Add chain in config.json for the executor addresses ([f5df1bb](f5df1bbd87))
* Add evm feature gate ([6c6ba21](6c6ba21894))

### Bug Fixes

* Make executor_address a String instead of Address ([1d3ac22](1d3ac22087))
2025-01-17 15:22:16 +00:00
dianacarvalho1
66719ac2d0 Merge pull request #7 from propeller-heads/encoding/dc/ENG-4075-feature-gate
feat: EVM feature gate
2025-01-17 15:19:11 +00:00
Diana Carvalho
6c6ba21894 feat: Add evm feature gate
- Move all evm code inside evm directory
- StrategyEncoder:
  - Kept StrategyEncoder trait but created a new one: EVMStrategyEncoder to implement encode_protocol_header (that is evm specific).
  - All StrategyEncoders implement both traits now
  - Renamed DefaultStrategySelector -> EVMStrategySelector
- RouterEncoder:
  - Created a RouterEncoder trait and a EVMRouterEncoder that implements it
- Moved utils inside evm directory as well
- Renamed config.json -> executor_addresses.json and moved it to a higher config directory
- Make alloy optional and dependent on the evm feature gate

--- don't change below this line ---
ENG-4075 <#DTT#>
2025-01-17 12:52:39 +00:00
Diana Carvalho
1d3ac22087 fix: Make executor_address a String instead of Address
--- don't change below this line ---
ENG-4075 <#DTT#>
2025-01-17 12:52:39 +00:00
Diana Carvalho
f5df1bbd87 feat: Add chain in config.json for the executor addresses
--- don't change below this line ---
ENG-4075 <#DTT#>
2025-01-17 12:52:39 +00:00
semantic-release-bot
2fb8c8f8c3 chore(release): 0.0.1 [skip ci]
## [0.0.1](https://github.com/propeller-heads/tycho-execution/compare/0.0.0...0.0.1) (2025-01-17)

### Bug Fixes

* change release version ([d584e0a](d584e0a1e5))
2025-01-17 12:44:18 +00:00
Khramtsov Valentin
bad69be9e5 Merge pull request #6 from propeller-heads/fix/chage-release-version
fix: change release version
2025-01-17 15:42:07 +03:00
Valentin Khramtsov
d584e0a1e5 fix: change release version 2025-01-17 15:39:53 +03:00
semantic-release-bot
3996f1fe2c chore(release): 1.0.1 [skip ci]
## [1.0.1](https://github.com/propeller-heads/tycho-execution/compare/1.0.0...1.0.1) (2025-01-17)

### Bug Fixes

* change release version ([2b35aa4](2b35aa4577))
* change release version ([46db261](46db261198))
2025-01-17 12:31:07 +00:00
Khramtsov Valentin
c5472b0c64 Merge pull request #5 from propeller-heads/fix/chage-release-version
fix: change release version
2025-01-17 15:28:55 +03:00
Valentin Khramtsov
2b35aa4577 fix: change release version 2025-01-17 15:23:52 +03:00
Valentin Khramtsov
46db261198 fix: change release version 2025-01-17 15:21:18 +03:00
semantic-release-bot
9e86022a74 chore(release): 1.0.0 [skip ci]
## 1.0.0 (2025-01-17)

### Features

* Add builder pattern and registry for SwapEncoders ([6d8cbcd](6d8cbcd80c))
* Add Cargo files, CI, configs and README ([c27b253](c27b253ef5))
* Add foundry environment and CI ([e16d7cc](e16d7ccb8e))
* Add permit2 draft ([5d79da4](5d79da44f3))
* Add StrategySelector ([6e67875](6e67875821))
* Add Transaction as output of encoding ([5a661ab](5a661ab6ca))
* ApprovalsManager trait ([4991883](4991883fc8))
* Fix version tag to 0.0.1 ([461b6a3](461b6a3585))
* Handle native actions ([fa462ee](fa462ee9f3))
* Initial draft of encoding module ([36fe8f4](36fe8f4b76))
* Make check amount optional ([6f8bbd8](6f8bbd89a5))
* Remove batch execute logic from StrategyEncoder ([68c5a91](68c5a914eb))
* Support encoding only the pool swap ([3e609c7](3e609c75ae))

### Bug Fixes

* Add expected_amount to Solution ([f9f83b4](f9f83b439f))
* Add new to SwapEncoder trait ([30f2ac9](30f2ac9f6b))
* Add temporary main function to lib.rs ([1e54ea0](1e54ea045e))
* Constrain new in SwapEncoder so it does not apply to trait objects ([e93bf11](e93bf11a85))
* Simplify models. Delete Solution and rename Order->Solution ([a25c56e](a25c56e667))
* TokenApprovalsManager should not implement ApprovalsManager ([93410b4](93410b4fe2))
2025-01-17 10:10:32 +00:00
dianacarvalho1
da6cd7e9f8 Merge pull request #4 from propeller-heads/dc/setup-foundry
feat: Fix version tag to 0.0.1
2025-01-17 10:08:19 +00:00
Diana Carvalho
461b6a3585 feat: Fix version tag to 0.0.1 2025-01-17 10:06:21 +00:00
semantic-release-bot
9e8354307e chore(release): 1.2.0 [skip ci]
## [1.2.0](https://github.com/propeller-heads/tycho-execution/compare/1.1.0...1.2.0) (2025-01-17)

### Features

* Add foundry environment and CI ([e16d7cc](e16d7ccb8e))
2025-01-17 09:57:48 +00:00
dianacarvalho1
d436ad78fa Merge pull request #3 from propeller-heads/dc/setup-foundry
feat: Add foundry environment and CI
2025-01-17 09:54:09 +00:00
Diana Carvalho
e16d7ccb8e feat: Add foundry environment and CI 2025-01-17 09:50:26 +00:00
semantic-release-bot
3127c0e9bb chore(release): 1.1.0 [skip ci]
## [1.1.0](https://github.com/propeller-heads/tycho-execution/compare/1.0.0...1.1.0) (2025-01-16)

### Features

* Add builder pattern and registry for SwapEncoders ([6d8cbcd](6d8cbcd80c))
* Add permit2 draft ([5d79da4](5d79da44f3))
* Add StrategySelector ([6e67875](6e67875821))
* Add Transaction as output of encoding ([5a661ab](5a661ab6ca))
* ApprovalsManager trait ([4991883](4991883fc8))
* Handle native actions ([fa462ee](fa462ee9f3))
* Initial draft of encoding module ([36fe8f4](36fe8f4b76))
* Make check amount optional ([6f8bbd8](6f8bbd89a5))
* Remove batch execute logic from StrategyEncoder ([68c5a91](68c5a914eb))
* Support encoding only the pool swap ([3e609c7](3e609c75ae))

### Bug Fixes

* Add expected_amount to Solution ([f9f83b4](f9f83b439f))
* Add new to SwapEncoder trait ([30f2ac9](30f2ac9f6b))
* Constrain new in SwapEncoder so it does not apply to trait objects ([e93bf11](e93bf11a85))
* Simplify models. Delete Solution and rename Order->Solution ([a25c56e](a25c56e667))
* TokenApprovalsManager should not implement ApprovalsManager ([93410b4](93410b4fe2))
2025-01-16 21:46:56 +00:00
Tamara
09f0224b2b Merge pull request #1 from propeller-heads/dc/initial-draft
feat: Initial draft of encoding module
2025-01-16 16:44:41 -05:00
TAMARA LIPOWSKI
20fb01280c chore: add dummy test to make CI happy
Right now it complains and fails because no tests: `error: no tests to run`
2025-01-16 16:41:07 -05:00
TAMARA LIPOWSKI
f8e8a72c53 chore: fix clippy warnings and nightly fmt 2025-01-16 16:35:02 -05:00
Diana Carvalho
e93bf11a85 fix: Constrain new in SwapEncoder so it does not apply to trait objects 2025-01-16 17:18:11 +00:00
Diana Carvalho
30f2ac9f6b fix: Add new to SwapEncoder trait
Add executor_address in SwapEncoderBuilder::new and not in the builder pattern
2025-01-16 17:18:11 +00:00
Diana Carvalho
6d8cbcd80c feat: Add builder pattern and registry for SwapEncoders
Save swap executor addresses in a config file
2025-01-16 17:18:11 +00:00
Diana Carvalho
6f8bbd89a5 feat: Make check amount optional 2025-01-16 17:18:11 +00:00
Diana Carvalho
5a661ab6ca feat: Add Transaction as output of encoding 2025-01-16 17:18:11 +00:00
Diana Carvalho
f9f83b439f fix: Add expected_amount to Solution 2025-01-16 17:18:11 +00:00
Diana Carvalho
a25c56e667 fix: Simplify models. Delete Solution and rename Order->Solution 2025-01-16 17:18:11 +00:00
Diana Carvalho
68c5a914eb feat: Remove batch execute logic from StrategyEncoder
Add action_type and selector to StrategyEncoder
Rename SequentialExactInStrategyEncoder -> SequentialStrategyEncoder
2025-01-16 17:18:11 +00:00
Diana Carvalho
93410b4fe2 fix: TokenApprovalsManager should not implement ApprovalsManager
They should be separate.
ApprovalsManager is only for user approvals
2025-01-16 17:18:11 +00:00
Diana Carvalho
3e609c75ae feat: Support encoding only the pool swap
Create StraightToPoolStrategyEncoder
2025-01-16 17:18:11 +00:00
Diana Carvalho
4991883fc8 feat: ApprovalsManager trait
Make Permit2 and TokenApprovalsManager implement it.
This way in the RouternEncoder we can use either one (I'm not exactly sure what this would mean in the contract though)

I'm not sure I like this generalisation. The TokenApprovalsManager was made with a different purpose: to approve token allowances for the pools (like balancer and curve) for our router
2025-01-16 17:18:09 +00:00
Diana Carvalho
6e67875821 feat: Add StrategySelector
This way the user could be able to extend this easily
2025-01-16 17:17:52 +00:00
Diana Carvalho
647f697ea2 chore: Refactor models:
- Delete min_checked_amount and use check_amount instead
- Use Bytes and not Address in interfaces
- Move router_address from Solution to Order
2025-01-16 17:17:52 +00:00
Diana Carvalho
5d79da44f3 feat: Add permit2 draft 2025-01-16 17:17:52 +00:00