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
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
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.
- 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
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
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
- 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.
- 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)