Repository navigation
Liquidity: use the user's slippage setting for mint, increase and remove - #422
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
Reported in rroland10/dex223-bug-bounty#47. The add-liquidity hook read
slippagefrom the liquidity transaction settings store and then ignored it:amount0Min/amount1Minformint,increaseLiquidityandcreateAndInitializePoolIfNecessary + mintwere always built with a module constantnew Percent(2, 100). A user who set 0.1% still got 2%. The remove-liquidity hook (decreaseLiquidity) had the same hardcoded 2% and did not read the setting at all.Change
add/hooks/useAddLiquidity.ts:mintAmountsWithSlippage(slippageToPercent(slippage));slippageadded to the memo dependencies; the 2% constant removed.remove/[tokenId]/hooks/useRemoveLiquidity.ts: readsslippagefrom the same store and usesburnAmountsWithSlippage(slippageToPercent(slippage)).slippageToPercentis the helper the swap flow already uses (basis-point rounding, no BigInt throw on values like 1.1%). The store already clamps the value to (0, 50] on write and on rehydrate. No UI or layout change.Verification
tsc --noEmit: no errors in the changed files (local run used borrowed node_modules missing the chart deps, so onlytrading-charterrors appeared; CI installs fresh).tests/swapReceipt.test.cjspasses.Open