Integration of CrocSmartSwapPlan for multihop swaps #4500
+412
−126
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe your changes
This is a WIP integration of the new swap class in the SDK that supports fully client-side multihop swaps. This PR (when used with the WIP SDK PR) currently has mostly complete multihop swaps which are testable on Scroll mainnet, what remains is additional work to improve integration of that functionality into the frontend.
While integration which would only improve swap output compared to direct swaps in illiquid pools is quite simple, allowing users to make swaps "in non-existent pools" requires many small changes to the frontend since it makes many assumptions that the currently selected token pair in the swap UI represents the chosen pool and not just an intention to swap between the two tokens. But I suppose shipping only the former at first wouldn't be that bad, it's still a significant improvement.
So the remaining integration steps are split into two categories:
SwapExtraInfo
improvements:Link the related issue
Closes #0000
Checklist before requesting a review
docs/CODING-STYLE.md
?Instructions for Reviewers
Functionalities or workflows that should specifically be tested.
Environmental conditions that may result in expected but differential behavior.
If relevant, list additional work to complete pre-merge (delete logging, code abstraction, etc)