Commit Graph

128 Commits

Author SHA1 Message Date
kayibal
0836bf7d53 feat: switch to tycho_commons 2025-03-27 16:58:34 +01:00
die-herdplatte
47d96c2347 Add integration test 2025-03-26 16:50:03 +01:00
die-herdplatte
92b5a8adb5 Remove split check 2025-03-26 12:15:50 +01:00
die-herdplatte
261e2b2091 Merge remote-tracking branch 'upstream/main' into ekubo 2025-03-26 08:25:37 +01:00
TAMARA LIPOWSKI
fa024a4a67 feat: Add PancakeSwapV3 support to encoding
- Add deployed executor address to json
- Build proper encoder for pancake v3
- Increase gas limit when setting executors (costs more since we set one more)
- Fix json filename in scripts/README.md
2025-03-25 17:50:25 +01:00
TAMARA LIPOWSKI
1ed149a9b8 fix: Remove pancakeswap V3 from approved executor addresses
- Our router does not properly support pancakeswap.
2025-03-20 12:40:03 -04:00
TAMARA LIPOWSKI
783712be5d feat: Set v2/v3 executor addresses on ethereum
- Also fix router address env name in readme
2025-03-20 12:40:03 -04:00
die-herdplatte
9e6af4b99f cargo fmt & clippy 2025-03-20 14:18:15 +01:00
die-herdplatte
ce7362ef24 Error on unsupported options 2025-03-20 14:17:20 +01:00
die-herdplatte
af5742550f Add encoder tests 2025-03-20 11:27:06 +01:00
die-herdplatte
e954bc7e59 Fix attribute name 2025-03-20 11:26:52 +01:00
die-herdplatte
05d6286921 Merge remote-tracking branch 'origin/main' into ekubo 2025-03-20 09:59:19 +01:00
die-herdplatte
3c982c5824 Ekubo integration 2025-03-20 09:58:40 +01:00
Diana Carvalho
f62a9d28c0 feat: Add validation for cyclical trades
We only support cyclical trades when the repeated token is the first and the last token in the swap. We don't support cycles in between

--- don't change below this line ---
ENG-4331 Took 2 hours 4 minutes

(cherry picked from commit 55ffa4eb45)

Took 5 minutes


Took 2 minutes
2025-03-13 16:30:54 +00:00
Diana Carvalho
3d7dcef1bd Revert "feat: Add validation for cyclical trades"
This reverts commit 55ffa4eb45.

Took 5 minutes

Took 2 minutes

# Commit time for manual adjustment:
# Took 2 minutes
2025-03-13 16:26:06 +00:00
Diana Carvalho
55ffa4eb45 feat: Add validation for cyclical trades
We only support cyclical trades when the repeated token is the first and the last token in the swap. We don't support cycles in between

--- don't change below this line ---
ENG-4331 Took 2 hours 4 minutes
2025-03-13 16:13:28 +00:00
Diana Carvalho
9eb4299ffe fix: the key for univ4 fee is key_lp_fee
Update tests with new executor addresses as well

--- don't change below this line ---
ENG-4260 Took 6 minutes
2025-02-27 11:49:03 +00:00
royvardhan
892726e07b chore: cleanup 2025-02-24 21:41:19 +05:30
royvardhan
570aa50497 test: fix encoder tests after removing the selector 2025-02-24 20:48:55 +05:30
royvardhan
18efe0305b fix: usv4 integration tests and remove selector from swap/strategy encoder 2025-02-24 19:48:25 +05:30
TAMARA LIPOWSKI
2c92596681 chore: merge main 2025-02-20 12:33:59 -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
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
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
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
f7ddace559 feat: early return in usv4 swap encoder for second swap, add utils 2025-02-19 21:42:13 +05:30
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
royvardhan
789416b2cd feat: add usv4 swap encoder with single swap test 2025-02-18 20:58:00 +05:30
TAMARA LIPOWSKI
556af0253d test: Add test for USV4 sequential swap 2025-02-14 00:51:06 -05:00
Diana Carvalho
d7f20aa74f fix: Don't have a DEFAULT_CONFIG_PATH in bin
This is unnecessary since we already have the executor address loaded at build time

--- don't change below this line ---
ENG-4088 Took 8 minutes


Took 7 seconds
2025-02-07 12:27:24 +00:00
Diana Carvalho
0c9050cf79 fix: Uniswap v3 pool fee is big endian, not little endian
--- don't change below this line ---
ENG-4088 Took 18 minutes


Took 17 seconds
2025-02-07 12:16:46 +00:00
Diana Carvalho
bef4740a1d fix: After rebase fixes
--- don't change below this line ---
ENG-4088 Took 2 minutes
2025-02-07 12:16:46 +00:00
Diana Carvalho
164d062ad9 fix(univ3): The fee keyword is just "fee" and not "pool_fee"
--- don't change below this line ---
ENG-4088 Took 1 minute
2025-02-07 12:16:46 +00:00
Diana Carvalho
f5232f403e feat: Read default executors at compile time into a json
This way we don't have issues with paths and trying to read files that are at other locations after compile time

--- don't change below this line ---
ENG-4088 Took 44 seconds

Took 52 seconds
2025-02-07 12:16:46 +00:00
Diana Carvalho
c791c93cb5 feat: Add uniswap v3 to swap encoders list
--- don't change below this line ---
ENG-4088 Took 10 minutes
2025-02-07 12:16:46 +00:00
Diana Carvalho
dee8542b45 chore: Improve error message when reading executors file
--- don't change below this line ---
ENG-4088 Took 1 minute

Took 7 seconds
2025-02-07 12:16:46 +00:00
TAMARA LIPOWSKI
9adbab498c chore: merge main 2025-02-06 11:49:17 -05:00
TAMARA LIPOWSKI
2b94a3f213 docs: improvements from PR comments 2025-02-06 11:34:57 -05:00
TAMARA LIPOWSKI
e83b8d9aef feat: Take Chain object containing native/wrapped addresses
- This way this chain object contains everything we need, we don't need to worry about doing any transformation or calling any supplementary functions inside any of the encoders
- Needed to move our new Chain object to a higher level since this is used in the higher-level encoder traits. This required some weird default values in the constants in order to avoid using alloy's hex literal. I could have instead opted to make Bytes parse a string I think, though this would mean possibly returning an error at the constants level, which is not nice either.

Question:
- Do we want the user to be in charge of passing the native and wrapped token every single time? This may be a bit annoying for the user. For now, I have defaulted to those in constants.rs, this would take 5 mins to remove though if you don't like it, and it would get rid of this complicated bytes initialization.
2025-02-05 17:14:56 -05:00
Tamara
021a179076 Merge branch 'main' into encoding/tnl/ENG-4205-code-docs 2025-02-05 16:35:54 -05:00
TAMARA LIPOWSKI
07457b5f76 docs: More docs and improvements of existing docs
- Tried not to leave a single public function undocumented, though did not double-document public function with obvious names
- Remove all mentions of the strategy selector in favour of the strategy registry (to avoid confusion)
2025-02-05 16:35:43 -05:00