Commit Graph

925 Commits

Author SHA1 Message Date
royvardhan
95d45975ad chore: encoder test naming 2025-01-30 21:17:25 +05:30
royvardhan
746733056c chore: encoder test naming 2025-01-30 21:17:25 +05:30
royvardhan
4ef9b0b82f chore: use Bytes 2025-01-30 21:17:25 +05:30
royvardhan
1b8bf56c75 feat: resolve pr comments 2025-01-30 21:17:25 +05:30
royvardhan
a50c31203b chore: foundry fmt 2025-01-30 21:17:25 +05:30
royvardhan
cfce36486a chore: add comment 2025-01-30 21:17:25 +05:30
royvardhan
0196767eff feat: add swap test with hex for univ2 executor 2025-01-30 21:17:25 +05:30
royvardhan
c482e21a5f feat: add univ2 executor test with hex 2025-01-30 21:17:25 +05:30
royvardhan
0007c4924c chore: update executor encoder tests 2025-01-30 21:17:25 +05:30
royvardhan
d2289c3765 chore: update test 2025-01-30 21:17:25 +05:30
royvardhan
ad70a0d5a8 feat: add executor encoder test 2025-01-30 21:17:25 +05:30
royvardhan
5c396512cf feat: update ExecutorEncoder interface and relevant types 2025-01-30 21:17:25 +05:30
semantic-release-bot
ee0aafbc4d chore(release): 0.22.0 [skip ci]
## [0.22.0](https://github.com/propeller-heads/tycho-execution/compare/0.21.0...0.22.0) (2025-01-30)

### Features

* fixed USV3 Verification ([96af542](96af542923))
* Implement generic callback ([fafeba9](fafeba9248))
* UniswapV3Executor and integration tests ([ca32446](ca32446a9e))
* USV3 verification ([7822c4f](7822c4f913))

### Bug Fixes

* Remove amountReceived and dataOffset from the callback verification ([63b94b5](63b94b5584))
* Remove amountReceived, dataOffset from ICallbackVerifier interface ([33ada0c](33ada0cf26))
* Remove exactOut from USV3 encoding ([d8b44f6](d8b44f623b))
2025-01-30 15:40:49 +00:00
Diana Carvalho
82e671df39 fix: Use abi_encode_packed in ple_encode()
--- don't change below this line ---
ENG-4081 Took 17 minutes
2025-01-30 15:39:07 +00:00
Tamara
318ab0ad95 Merge pull request #34 from propeller-heads/router/tnl/ENG-4034-usv3-executor
feat: UniswapV3 Executor
2025-01-30 10:36:50 -05:00
Tamara
94b214384b Merge branch 'main' into router/tnl/ENG-4034-usv3-executor 2025-01-30 10:33:18 -05:00
TAMARA LIPOWSKI
83bbabddd1 chore: rename amountOwed -> amountIn
...for consistency.

Also remove comment. We will keep exact_out to avoid future interface changes.
2025-01-30 10:33:09 -05:00
royvardhan
24e95b1206 fix: rm redundant test 2025-01-30 21:01:28 +05:30
Harsh Vardhan Roy
bd49c86d86 Update TychoRouter.t.sol
Co-authored-by: Tamara <tamara@datarevenue.com>
2025-01-30 20:53:28 +05:30
Diana Carvalho
6e8d2ede59 feat: Simplify router encoder
Don't make selector() a member of the StrategyEncoder trait. It is needed only for certain strategies. The strategy should manage it itself.

--- don't change below this line ---
ENG-4081 Took 17 minutes
2025-01-30 15:19:09 +00:00
Diana Carvalho
089e7d2e0f feat: Add ChainId model
Remove to_chain_id helper method

--- don't change below this line ---
ENG-4081 Took 28 minutes
2025-01-30 15:01:53 +00:00
royvardhan
c653062027 feat: rename batchSetExecutor to setExecutors 2025-01-30 19:29:24 +05:30
royvardhan
719a15c0e5 chore: fmt 2025-01-30 19:00:15 +05:30
royvardhan
ea504faca1 feat: replace setExecutor with batchSetExecutor 2025-01-30 18:58:54 +05:30
Diana Carvalho
0e70e827a0 chore: Rename encoder to strategy/swap_encoder
This was confusing me when I had all of them open at the same time. Better to be extra explicit

--- don't change below this line ---
ENG-4081 Took 2 minutes
2025-01-30 13:19:09 +00:00
Diana Carvalho
7a8872cc41 fix: Don't leak evm specific code to interfaces(PrivateKeySigner, Chain)
Pass the signer's private key as a string around and only create a PrivateKeySigner inside Permit2 (where it's needed)
Use tycho-core Chain instead of Alloy ChainID. Create a temp method to convert between them
Create a EVMSwapEncoder that implements the executor_selector (that is evm specific)

--- don't change below this line ---
ENG-4081 Took 1 hour 7 minutes
2025-01-30 13:17:23 +00:00
Diana Carvalho
feb91cc639 feat: Implement SplitSwapStrategyEncoder
The strategy works as follows:
- Manage approvals needed
- Compute min amount (if check amount is any):
  - if slippage is defined, apply slippage on the expected amount and take the min value between that and the check amount
  - if not, it's just the check amount
- Iterate through the swaps
  - call the corresponding swap encoder to encode the swap
  - add swap header (tokens indexes and split)
  - ple encode the swaps
- Add extra inputs (amounts, token addresses, min amount, (un)wrap, number of tokens and receiver)

Misc:
- Move executor address and selector encoding inside the SwapEncoder
- Add default executor_selector to SwapEncoder
- Pass router address inside the SplitSwapStrategyEncoder
- Move Permit2 inside the SplitSwapStrategyEncoder. It is a responsibility and a specificity of the strategy to need permit2 approvals

--- don't change below this line ---
ENG-4081 Took 1 hour 21 minutes
2025-01-30 11:23:32 +00:00
Diana Carvalho
3a69bbf603 feat: Remove generalisation on user approvals manager
This is a too early over generalisation. We need to encode the permit and the signature all together with the other method input variables. This way the return type will be specific to permit2 (instead Vec<u8>) anyway. For simplicity, decided to remove the generalisation and keep things simple

--- don't change below this line ---
ENG-4081 Took 2 hours 23 minutes


Took 9 seconds

Took 1 minute
2025-01-30 11:23:32 +00:00
TAMARA LIPOWSKI
92b4ee00d3 chore: remove unused factory variable 2025-01-29 19:53:22 -05:00
TAMARA LIPOWSKI
ca32446a9e feat: UniswapV3Executor and integration tests
- Note: I think we can get the fee straight from the pool... why did we always encode this and send it from the solver? Is this bound to change sometimes?
2025-01-29 19:51:17 -05:00
TAMARA LIPOWSKI
d8b44f623b fix: Remove exactOut from USV3 encoding
- We don't support exactOut atm
2025-01-29 16:56:45 -05:00
dianacarvalho1
1b79326637 Merge pull request #31 from propeller-heads/router/dc/ENG-4047-generic-callback
feat: Implement generic callback
2025-01-29 20:20:45 +00:00
Diana Carvalho
33ada0cf26 fix: Remove amountReceived, dataOffset from ICallbackVerifier interface
--- don't change below this line ---
ENG-4081 Took 1 hour 36 minutes
2025-01-29 20:19:34 +00:00
Diana Carvalho
63b94b5584 fix: Remove amountReceived and dataOffset from the callback verification
--- don't change below this line ---
ENG-4047 Took 20 minutes
2025-01-29 20:19:34 +00:00
Diana Carvalho
fafeba9248 feat: Implement generic callback
--- don't change below this line ---
ENG-4047 Took 26 minutes


Took 4 minutes

Took 8 seconds

Took 59 seconds

Took 22 seconds
2025-01-29 20:19:34 +00:00
Tamara
e481ceb304 Merge pull request #32 from propeller-heads/router/tnl/ENG-4100-master-verifier
feat: USV3 callback verification
2025-01-29 14:10:49 -05:00
TAMARA LIPOWSKI
d3f1136486 chore: Remove v3-periphery from gitmodules
- We aren't using this anymore since the solc version is outdated
2025-01-29 14:05:56 -05:00
TAMARA LIPOWSKI
96af542923 feat: fixed USV3 Verification
- We cannot use the regular v3-periphery library because of outdated solc versions. I've copied the v3-updated library which we have used in our previous project
2025-01-29 12:12:58 -05:00
TAMARA LIPOWSKI
057c616b0c chore: merge main 2025-01-29 10:19:18 -05:00
TAMARA LIPOWSKI
3b9f7dbb52 chore: update gitmodules 2025-01-29 10:11:32 -05:00
TAMARA LIPOWSKI
7822c4f913 feat: USV3 verification 2025-01-29 10:10:13 -05:00
semantic-release-bot
44ca2d5176 chore(release): 0.21.0 [skip ci]
## [0.21.0](https://github.com/propeller-heads/tycho-execution/compare/0.20.0...0.21.0) (2025-01-28)

### Features

* add balancer v2 executor ([a700189](a700189aaf))
* add node.js workflow ([25756ff](25756fffdd))
* add tests for Balancer V2 executor ([a4e405f](a4e405fb75))
* approve max ([cb6d165](cb6d165e7f))
* update remappings and remove node modules ([b65b682](b65b682e8d))

### Bug Fixes

* balancer v2 encoder bug ([a6a624b](a6a624b740))
* build ([5dc5e23](5dc5e23239))
* ci ([b1ca478](b1ca478294))
* clippy ([877f625](877f625efc))
* exclude node modules from slither ([4b3c5c5](4b3c5c5005))
* filter paths slither ([6c30cf8](6c30cf8f66))
* rm exactOut ([44db2e5](44db2e52b3))
* slither ([b854282](b85428212a))
* slither ([7a83edd](7a83eddc92))
2025-01-28 18:42:03 +00:00
Harsh Vardhan Roy
200735e55e Merge pull request #29 from propeller-heads/router/hr/ENG-4035-Balancer-V2-Executor 2025-01-29 00:09:29 +05:30
Harsh Vardhan Roy
cb6d165e7f feat: approve max 2025-01-28 23:49:28 +05:30
Harsh Vardhan Roy
8c41a28aa8 Merge branch 'main' into router/hr/ENG-4035-Balancer-V2-Executor 2025-01-28 23:21:38 +05:30
royvardhan
15e3933aa7 chore: cleanup 2025-01-28 23:21:22 +05:30
royvardhan
b65b682e8d feat: update remappings and remove node modules 2025-01-28 23:19:06 +05:30
royvardhan
4b3c5c5005 fix: exclude node modules from slither 2025-01-28 23:11:30 +05:30
royvardhan
b85428212a fix: slither 2025-01-28 22:59:02 +05:30
royvardhan
b1ca478294 fix: ci 2025-01-28 22:54:31 +05:30