-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[wip] feat(synapse-interface): track bridge quoted tokens #3018
Conversation
Important Review skippedIgnore keyword(s) in the title. Ignored keywords (2)
Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Summary
This PR introduces changes to track quoted tokens in bridge transactions, focusing on improving the accuracy and reliability of the bridging process. Key modifications include:
- Added new properties to the BridgeQuote type: inputAmountForQuote, originTokenForQuote, and destTokenForQuote
- Implemented a check in the executeBridge function to ensure the input amount hasn't changed since the quote was generated
- Replaced chainSelectionsMatchBridgeQuote with a more comprehensive bridgeStateMatchesQuote comparison in BridgeTransactionButton
- Introduced constructStringifiedBridgeSelections function for consistent string representations of bridge selections
- Updated EMPTY_BRIDGE_QUOTE and EMPTY_BRIDGE_QUOTE_ZERO objects with new properties to align with the BridgeQuote type changes
These changes aim to enhance the accuracy of comparing the current bridge state with the obtained quote, potentially reducing errors and improving user experience.
4 file(s) reviewed, 2 comment(s)
Edit PR Review Bot Settings
const stringifiedBridgeQuote = constructStringifiedBridgeSelections( | ||
bridgeQuote.inputAmountForQuote, | ||
bridgeQuote.originChainId, | ||
bridgeQuote.destChainId | ||
bridgeQuote.originTokenForQuote, | ||
bridgeQuote.destChainId, | ||
bridgeQuote.destTokenForQuote | ||
) | ||
const stringifiedBridgeState = constructStringifiedBridgeSelections( | ||
debouncedFromValue, | ||
fromChainId, | ||
toChainId | ||
fromToken, | ||
toChainId, | ||
toToken | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
style: Consider memoizing these stringified selections to avoid unnecessary recalculations on each render.
@@ -207,12 +211,16 @@ export const BridgeTransactionButton = ({ | |||
const constructStringifiedBridgeSelections = ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logic: This function might produce inconsistent results if the objects have different property orders. Consider using a more robust comparison method.
Deploying sanguine-fe with Cloudflare Pages
|
Deploying sanguine with Cloudflare Pages
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## fe/track-quoted-input #3018 +/- ##
=========================================================
Coverage 25.29168% 25.29168%
=========================================================
Files 781 781
Lines 56912 56912
Branches 82 82
=========================================================
Hits 14394 14394
Misses 41031 41031
Partials 1487 1487
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
* feat: compare input amount vs tracked quoted input * Compare stringified bridge quote v bridge state for validation * Remove log * feat: track quoted tokens <> bridge quote (#3018) * replace validation in callback with button check * memoize bridge selection comparisons * segment tracking state <> quote mismatch error * simplify segment * switch order * Add back doesBridgeStateMatchQuote * add back additional bridge quote fields
* useBridgeSelections * useBridgeValidations * fix: stale output, infinite loader * fix: track when input less than fees * Remove finally * apply validation + selection hook to input/output containes * use bridge state for bridge write actions * Fix chain comparison * [wip] feat(synapse-interface): track quoted input (#3011) * feat: compare input amount vs tracked quoted input * Compare stringified bridge quote v bridge state for validation * feat: track quoted tokens <> bridge quote (#3018) * replace validation in callback with button check * memoize bridge selection comparisons * segment tracking state <> quote mismatch error * simplify segment * switch order * Add back doesBridgeStateMatchQuote * add back additional bridge quote fields * remove unused bridge selection vars * fix: conditions for active button for connect wallet * fix: condition for showing amount must be greater than fee * hasValidFromSelections
* Extracts bridgeQuote into own state * Moves quote fetching to async thunk * Bridge approved check hook * Deprecates redux fromValue in favor of local input component behavior * useBridgeSelections * useBridgeValidations * fix: stale output, infinite loader * fix: track when input less than fees * apply validation + selection hook to input/output containes * use bridge state for bridge write actions * Fix chain comparison * feat: compare input amount vs tracked quoted input * Compare stringified bridge quote v bridge state for validation * feat: track quoted tokens <> bridge quote (#3018) * replace validation in callback with button check * memoize bridge selection comparisons * segment tracking state <> quote mismatch error * simplify segment * switch order * Add back doesBridgeStateMatchQuote * add back additional bridge quote fields * remove unused bridge selection vars * fix: conditions for active button for connect wallet * fix: condition for showing amount must be greater than fee * Checks if user is typing * Adds swap behavior --------- Co-authored-by: abtestingalpha <[email protected]> * Post submit * Clears input value post submit --------- Co-authored-by: bigboydiamonds <[email protected]>
No description provided.