royvardhan
18efe0305b
fix: usv4 integration tests and remove selector from swap/strategy encoder
2025-02-24 19:48:25 +05:30
Harsh Vardhan Roy
63ce121cf9
Merge branch 'main' into encoder/hr/ENG-4245-strategy-swap-encoder-docs
2025-02-21 20:20:26 +05:30
TAMARA LIPOWSKI
023ae9c1ea
chore: merge main
2025-02-21 09:48:22 -05:00
TAMARA LIPOWSKI
a7aa4d7ebb
fix: Native ETH input/output integration tests/fixes
...
- Only for single swaps
- Used USV4 for this because it's the only DEX we support that allows native ETH swaps
- For Native ETH input single swaps, we need to properly check the remaining amount (we were treating them wronly like ERC20 tokens)
- For Native ETH output single swaps, we were passing the incorrect currency (the settle always needs to be the out token and the take always needs to be the in token, this should not depend on the zeroForOne value).
2025-02-21 00:23:24 -05:00
Diana Carvalho
8b2af4f577
feat: Implement Clone for EVMTychoEncoder
...
--- don't change below this line ---
ENG-4255 Took 6 minutes
2025-02-20 18:29:14 +00:00
Diana Carvalho
20e6419a20
feat: Adapt SplitSwapStrategyEncoder to have optional permit2 logic
...
- If the signer_pk is not passed -> use the swap method that expects the tokens to be already in the Router
- If it is passed -> compute permit2 and use swap method that does the token in transfer
- Extend builder to have another shortcut
- Add integration test with contract
- Update bin (and simplified it) and quickstart
--- don't change below this line ---
ENG-4255 Took 1 hour 51 minutes
Took 2 minutes
Took 7 seconds
2025-02-20 18:29:11 +00:00
royvardhan
4b20a1164b
docs: add docs for TychoEncoder, StrategyEncoder and SwapEncoder traits
2025-02-20 23:40:53 +05:30
TAMARA LIPOWSKI
2c92596681
chore: merge main
2025-02-20 12:33:59 -05:00
TAMARA LIPOWSKI
67ce2f71de
Merge remote-tracking branch 'origin/router/tnl/ENG-4253-usv4-integration' into router/tnl/ENG-4253-usv4-integration
2025-02-20 12:26:47 -05:00
TAMARA LIPOWSKI
447195a4a8
test: fix test after latest changes
2025-02-20 12:26:17 -05:00
Tamara
be21d10a41
Merge branch 'main' into router/tnl/ENG-4253-usv4-integration
2025-02-20 12:16:07 -05:00
TAMARA LIPOWSKI
d65d575003
feat: Don't encode min amount for USV4
...
We aren't checking min amount for any other executor. This would be overkill (since we are already checking in the main router) and also inconsistent.
2025-02-20 12:15:40 -05:00
royvardhan
29bc662ba9
refactor: use chain and protocol component from tycho_core::models
2025-02-20 22:36:50 +05:30
TAMARA LIPOWSKI
9eda00cbb6
chore: PR comments
2025-02-20 11:51:08 -05:00
TAMARA LIPOWSKI
bb8778b2bf
chore: merge main
2025-02-20 11:45:18 -05:00
royvardhan
7dd59dbe34
fix: add decode_hex to models
2025-02-20 21:54:33 +05:30
royvardhan
dc38f108c3
refactor: simplify chain object and move decode_hex to utils
2025-02-20 21:54:33 +05:30
royvardhan
83f1955094
feat: add native and weth addresses for supported networks
2025-02-20 21:54:33 +05:30
TAMARA LIPOWSKI
45fdfc708d
feat: UniswapV4 integration test and fixes
...
- Biggest issue: We must encode the executor address, not the router address, in the USV4 swap encoder
2025-02-19 18:12:11 -05:00
TAMARA LIPOWSKI
81c8a04cbb
fix: Pass proper group tokens in EncodingContext...
...
Also:
- Remove amount_out_min. Our reasoning is that we perform high-level final amount checks anyway (and expect users to do the same). Lower-level USV4 min amount checks are redundant.
2025-02-19 16:27:56 -05:00
TAMARA LIPOWSKI
c3482a509a
feat: TychoRouter swap method not requiring Permit2
...
- Assume the tokens have been transferred into our router beforehand.
2025-02-19 16:15:57 -05:00
Harsh Vardhan Roy
6c4bb376fd
Merge branch 'main' into router/hr/ENG-4239-usv4-swap-encoder
2025-02-20 00:07:43 +05:30
royvardhan
c472cda697
refactor: make group tokens and amount out min non optional
2025-02-20 00:05:47 +05:30
royvardhan
e2a2aaaad1
refactor: usv4 swap encoder test, encoder
2025-02-19 23:59:27 +05:30
royvardhan
1e9b411ca5
chore: rm redundant pool params encoder fn
2025-02-19 23:07:26 +05:30
Diana Carvalho
4f29022c42
fix: After rebase fixes
...
--- don't change below this line ---
ENG-4246 Took 2 minutes
2025-02-19 17:05:46 +00:00
Diana Carvalho
359bb806f7
docs: Add docstrings to EVMEncoderBuilder
...
--- don't change below this line ---
ENG-4246 Took 41 minutes
2025-02-19 17:03:25 +00:00
Diana Carvalho
684de4fa60
feat: Add methods to builder to set chain and strategy independently
...
--- don't change below this line ---
ENG-4246 Took 15 minutes
2025-02-19 17:03:25 +00:00
Diana Carvalho
4741e628b8
chore: Simplify tycho-encode
...
Don't have a cli as a lib. Move that directly inside tycho-encode.rs for simplicity
--- don't change below this line ---
ENG-4246 Took 29 minutes
2025-02-19 17:03:25 +00:00
Diana Carvalho
d9d56e7a8c
chore: Rename signer_pk to swapper_pk
...
--- don't change below this line ---
ENG-4246 Took 15 minutes
2025-02-19 17:03:25 +00:00
Diana Carvalho
8794dc674a
chore: Delete unnecessary empty file
...
--- don't change below this line ---
ENG-4246 Took 3 minutes
2025-02-19 17:03:25 +00:00
Diana Carvalho
30b5ab9025
fix: After rebase fixes
...
Put the strategy_encoders.rs back inside the strategy_encoder directory
--- don't change below this line ---
ENG-4246 Took 3 minutes
Took 12 seconds
2025-02-19 17:03:22 +00:00
Diana Carvalho
8537d27469
feat: Remove direct_execution from Solution
...
This is handled when creating a new TychoEncoder
--- don't change below this line ---
ENG-4246 Took 4 minutes
2025-02-19 17:03:13 +00:00
Diana Carvalho
03506fabe9
feat: Create a EVMEncoderBuilder
...
- It has two three methods to be created:
- new: where the user can pass any custom StrategyEncoder
- tycho_router: where the default SplitSwapStrategyEncoder with Tycho Router will be used
- direct_execution: where the user can encode only the execution data and integrate this into their workflow.
- This replaces StrategyEncoderRegistry
- EVMTychoEncoder holds directly the StrategyEncoder and not the registry (per one init of the EVMTychoEncoder there is only one possible StrategyEncoder)
- Update quickstart
- Update bin (add subcommands to bin to create a different instance of EVMEncoderBuilder)
--- don't change below this line ---
ENG-4246 Took 33 minutes
Took 38 seconds
Took 38 seconds
2025-02-19 17:03:10 +00:00
royvardhan
7f3aca90ba
fix: update EncodingContext in strategy_encoder
2025-02-19 21:50:43 +05:30
Harsh Vardhan Roy
78bc045d14
Merge branch 'main' into router/hr/ENG-4239-usv4-swap-encoder
2025-02-19 21:45:30 +05:30
royvardhan
f7ddace559
feat: early return in usv4 swap encoder for second swap, add utils
2025-02-19 21:42:13 +05:30
TAMARA LIPOWSKI
5ab233ed0a
refactor: PR comments
...
- rename utils.rs to group_swaps.rs
- extend instead of push in order to avoid calling abi_encode_packed again
2025-02-19 10:25:16 -05:00
royvardhan
5e9b38876e
feat: add integration test for complex swaps
2025-02-19 20:32:55 +05:30
royvardhan
baeebb9fe4
feat: update test_encode_uniswap_v4_grouped
2025-02-19 19:08:06 +05:30
royvardhan
5b183b6690
chore: update executor_selector to swap_selector in swap encoder trait and attribute
2025-02-19 19:01:32 +05:30
royvardhan
9219dd329d
feat: add util fns, change callback_selector to string, update first_swap check
2025-02-19 18:56:32 +05:30
royvardhan
1bfe656e6b
feat: add new attributes in encoding context, update usv4 swap encoder and tests
2025-02-19 08:39:21 +05:30
TAMARA LIPOWSKI
ac831176d4
feat: Support swap grouping for executor strategy
...
- Also make sure the strategy errors if > 1 group.
2025-02-18 14:03:06 -05:00
TAMARA LIPOWSKI
962e460e34
refactor: Make group_swaps a util method
...
- In preparation for also using this for the executor encoder.
This also make test setup much easier for swap grouping - not having to init the encoder every time.
2025-02-18 12:12:08 -05:00
royvardhan
789416b2cd
feat: add usv4 swap encoder with single swap test
2025-02-18 20:58:00 +05:30
TAMARA LIPOWSKI
8f1e372c90
refactor: PR comments (moving things around/docs)...
...
- Move the validator into its own file, for organization purposes.
- Add missing elements to `SplitSwapStrategyEncoder` docstring
2025-02-17 23:57:01 -05:00
TAMARA LIPOWSKI
44aabf1761
feat: Merge USV4 strategy back into split strategy
...
- Since the group_swaps method is now generalized, there is no need to have an entirely separate method here.
2025-02-17 23:44:58 -05:00
TAMARA LIPOWSKI
47b61802ee
feat: Generalize group_swaps method
...
- This can now be used for any groupable protocols - not just USV4.
2025-02-17 17:23:29 -05:00
TAMARA LIPOWSKI
957bf898f2
fix: Do not group split swaps
...
As far as we know, Uniswap V4 has no support for optimizing split swaps - only sequential swaps. We must make sure we don't accidentally group split swaps too - as this will likely revert due to mismatched input and output values.
2025-02-17 16:50:59 -05:00