docs: trade-book Edit E2E invariants (#338) #849

Merged
PlasticDigits merged 3 commits from local1/338-e2e-verify into main 2026-06-09 07:48:35 +00:00
PlasticDigits commented 2026-06-09 06:53:29 +00:00 (Migrated from gitlab.com)

Summary

  • Document trade-book-edit-178.spec.ts and trade-limit-edit-context invariants
  • Crosslink agent playbook + e2e README
  • Code fix already on main (e7083fb)

Test plan

  • npx playwright test e2e/trade-book-edit-178.spec.ts --project=e2e-smoke
  • Both desktop and sub-desktop viewports pass

Docs

Merge after prior stacked MRs (docs-only delta).


Note

Low Risk
Mostly documentation and E2E ordering; PoolPage changes are display-only estimates for native-wrap adds, not transaction submission logic.

Overview
Documents GitLab #338 trade-book Edit smoke: trade-book-edit-178.spec.ts, trade-limit-edit-context timing (assert banner after Edit, not on load), seeded pair/viewports, and run command — wired through docs/frontend.md, e2e/README.md, and AGENTS_FRONTEND_ORDER_BOOK_ROW_ACTIONS.md (plus checklist updates when edit copy or testids change).

E2E: In the serial suite, the sub-desktop case now runs before desktop so the desktop test’s book cancel does not remove the seeded bid first (#338).

Pool add (native auto-wrap): PoolPage loads transfer-tax params and drives Estimated LP and pool-ratio warnings from net uluna after tax (provideRawAddA / provideRawAddB), matching wrap-deposit semantics while balance checks still use gross typed amounts.

Reviewed by Cursor Bugbot for commit a8b43d07e6. Bugbot is set up for automated code reviews on this repo. Configure here.

## Summary - Document `trade-book-edit-178.spec.ts` and `trade-limit-edit-context` invariants - Crosslink agent playbook + e2e README - Code fix already on main (`e7083fb`) ## Test plan - [ ] `npx playwright test e2e/trade-book-edit-178.spec.ts --project=e2e-smoke` - [ ] Both desktop and sub-desktop viewports pass ## Docs - [skills/AGENTS_FRONTEND_ORDER_BOOK_ROW_ACTIONS.md](skills/AGENTS_FRONTEND_ORDER_BOOK_ROW_ACTIONS.md) **Merge after prior stacked MRs** (docs-only delta). <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Mostly documentation and E2E ordering; PoolPage changes are display-only estimates for native-wrap adds, not transaction submission logic. > > **Overview** > Documents **GitLab #338** trade-book **Edit** smoke: `trade-book-edit-178.spec.ts`, `trade-limit-edit-context` timing (assert banner **after** Edit, not on load), seeded pair/viewports, and run command — wired through **`docs/frontend.md`**, **`e2e/README.md`**, and **`AGENTS_FRONTEND_ORDER_BOOK_ROW_ACTIONS.md`** (plus checklist updates when edit copy or testids change). > > **E2E:** In the serial suite, the **sub-desktop** case now runs **before** desktop so the desktop test’s book **cancel** does not remove the seeded bid first (**#338**). > > **Pool add (native auto-wrap):** **`PoolPage`** loads transfer-tax params and drives **Estimated LP** and pool-ratio warnings from **net** uluna after tax (`provideRawAddA` / `provideRawAddB`), matching wrap-deposit semantics while balance checks still use gross typed amounts. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit a8b43d07e667b20ba775efb686d2d39aca28e251. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
ghost1 commented 2026-06-09 06:53:39 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-09 06:53:47 +00:00 (Migrated from gitlab.com)

mentioned in issue #338

mentioned in issue #338
ghost1 commented 2026-06-09 06:53:50 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
ghost1 commented 2026-06-09 06:54:22 +00:00 (Migrated from gitlab.com)
Stale Security Review comment
Stale Security Review comment

Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issue.

Reviewed by Cursor Bugbot for commit fe2ba782a216931e48a8688504074662f5b2c7bf. Configure here.

<details> <summary>Stale Security Review comment</summary> <details> <summary>Stale Security Review comment</summary> <!-- BUGBOT_REVIEW --> Cursor Bugbot has reviewed your changes and found 1 potential issue.<!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_BEGIN --> <sup>Bugbot Autofix is [ON](https://www.cursor.com/dashboard/bugbot). A cloud agent has been kicked off to fix the reported issue. <!-- BUGBOT_AUTOFIX_AGENT_LINK --></sup> <!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_END --> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit fe2ba782a216931e48a8688504074662f5b2c7bf. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> </details> </details>
ghost1 commented 2026-06-09 06:54:23 +00:00 (Migrated from gitlab.com)

Wrap deposit uses net amount

High Severity

Native-wrap provide liquidity overwrites rawA/rawB with post-tax net amounts, then passes those same values to wrap_deposit coins. wrap_deposit must attach the user’s gross native deposit; only CW20 allowance and provide_liquidity should use net minted units, as in executeNativeSwap.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit fe2ba782a216931e48a8688504074662f5b2c7bf. Configure here.

### Wrap deposit uses net amount **High Severity** <!-- DESCRIPTION START --> Native-wrap provide liquidity overwrites `rawA`/`rawB` with post-tax net amounts, then passes those same values to `wrap_deposit` coins. `wrap_deposit` must attach the user’s gross native deposit; only CW20 allowance and `provide_liquidity` should use net minted units, as in `executeNativeSwap`. <!-- DESCRIPTION END --> <!-- BUGBOT_BUG_ID: 3cb6c139-3166-43ec-8964-8fb248e347d1 --> <!-- LOCATIONS START frontend-dapp/src/pages/PoolPage.tsx#L306-L323 LOCATIONS END --> <div><a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjFkZDAwNmYyLTM4ZGEtNDY3Ny1iMWJmLThkMDdkMDZlOTMyZCIsImVuY3J5cHRpb25LZXkiOiJRZFJQVUc3UGk3Rmw4dVhYa3FsSjVvNG5iRUs0bmxaTGh4Y3FyaDI1UFAwIiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjFkZDAwNmYyLTM4ZGEtNDY3Ny1iMWJmLThkMDdkMDZlOTMyZCIsImVuY3J5cHRpb25LZXkiOiJRZFJQVUc3UGk3Rmw4dVhYa3FsSjVvNG5iRUs0bmxaTGh4Y3FyaDI1UFAwIiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIiwicHJOdW1iZXIiOjEzMSwiY29tbWl0U2hhIjoiZmUyYmE3ODJhMjE2OTMxZTQ4YTg2ODg1MDQwNzQ2NjJmNWIyYzdiZiIsInByb3ZpZGVyIjoiZ2l0bGFiIiwiaG9zdG5hbWUiOiJnaXRsYWIuY29tIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-web-light.png"><img alt="Fix in Web" width="99" height="28" src="https://cursor.com/assets/images/fix-in-web-dark.png"></picture></a></div> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit fe2ba782a216931e48a8688504074662f5b2c7bf. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
ghost1 commented 2026-06-09 06:56:29 +00:00 (Migrated from gitlab.com)

added 1 commit

  • cf37d0b1 - fix(pool): use gross native amount for wrap_deposit coins

Compare with previous version

added 1 commit <ul><li>cf37d0b1 - fix(pool): use gross native amount for wrap_deposit coins</li></ul> [Compare with previous version](/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/131/diffs?diff_id=1841271100&start_sha=fe2ba782a216931e48a8688504074662f5b2c7bf)
ghost1 commented 2026-06-09 06:56:51 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
ghost1 commented 2026-06-09 06:56:56 +00:00 (Migrated from gitlab.com)

resolved all threads

resolved all threads
ghost1 commented 2026-06-09 06:57:45 +00:00 (Migrated from gitlab.com)
Stale Security Review comment

Cursor Bugbot has reviewed your changes and found 4 potential issues.
Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issues.

Reviewed by Cursor Bugbot for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure here.

<details> <summary>Stale Security Review comment</summary> <!-- BUGBOT_REVIEW --> Cursor Bugbot has reviewed your changes and found 4 potential issues.<!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_BEGIN --> <sup>Bugbot Autofix is [ON](https://www.cursor.com/dashboard/bugbot). A cloud agent has been kicked off to fix the reported issues. <!-- BUGBOT_AUTOFIX_AGENT_LINK --></sup> <!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_END --> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> </details>
ghost1 commented 2026-06-09 06:57:45 +00:00 (Migrated from gitlab.com)

Leaderboard null PnL shows zero

Low Severity

After nullable best_trade_pnl / worst_trade_pnl, getLeaderboardMetric returns '' for unset values, but the table still runs parseFloat(metricValue) || 0 and formatNum, so traders without stats display as zero instead of N/A like PnlValue.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure here.

### Leaderboard null PnL shows zero **Low Severity** <!-- DESCRIPTION START --> After nullable `best_trade_pnl` / `worst_trade_pnl`, `getLeaderboardMetric` returns `''` for unset values, but the table still runs `parseFloat(metricValue) || 0` and `formatNum`, so traders without stats display as zero instead of **N/A** like `PnlValue`. <!-- DESCRIPTION END --> <!-- BUGBOT_BUG_ID: 2794b554-98a4-4310-92ce-9d41af738bcb --> <!-- LOCATIONS START frontend-dapp/src/pages/ChartsPage.tsx#L583-L591 frontend-dapp/src/pages/ChartsPage.tsx#L539-L567 LOCATIONS END --> <details> <summary>Additional Locations (1)</summary> - [`frontend-dapp/src/pages/ChartsPage.tsx#L539-L567`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-//blob/cf37d0b187f53f27fe28c27132333bb0cae922ac/frontend-dapp/src/pages/ChartsPage.tsx#L539-L567) </details> <div><a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjZhNTMzZTVjLTgwY2YtNDU4NC04NzZhLWIzMmU2MThkZjQ0MSIsImVuY3J5cHRpb25LZXkiOiJTZHo1ZmZmVGFENDJBMWRseHNOZmpzalFDTm9qdF9SV1RJYkRNZEp1aGxRIiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjZhNTMzZTVjLTgwY2YtNDU4NC04NzZhLWIzMmU2MThkZjQ0MSIsImVuY3J5cHRpb25LZXkiOiJTZHo1ZmZmVGFENDJBMWRseHNOZmpzalFDTm9qdF9SV1RJYkRNZEp1aGxRIiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIiwicHJOdW1iZXIiOjEzMSwiY29tbWl0U2hhIjoiY2YzN2QwYjE4N2Y1M2YyN2ZlMjhjMjcxMzIzMzNiYjBjYWU5MjJhYyIsInByb3ZpZGVyIjoiZ2l0bGFiIiwiaG9zdG5hbWUiOiJnaXRsYWIuY29tIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-web-light.png"><img alt="Fix in Web" width="99" height="28" src="https://cursor.com/assets/images/fix-in-web-dark.png"></picture></a></div> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
ghost1 commented 2026-06-09 06:57:45 +00:00 (Migrated from gitlab.com)

Tax cache ignores denom parameter

Medium Severity

fetchNativeTransferTaxParams caches a single global entry for 60s but accepts a denom argument for tax caps. A prior uluna fetch can be reused for uusd, applying the wrong cap when computing net minted amounts.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure here.

### Tax cache ignores denom parameter **Medium Severity** <!-- DESCRIPTION START --> `fetchNativeTransferTaxParams` caches a single global entry for 60s but accepts a `denom` argument for tax caps. A prior `uluna` fetch can be reused for `uusd`, applying the wrong cap when computing net minted amounts. <!-- DESCRIPTION END --> <!-- BUGBOT_BUG_ID: 7b82fc88-db6a-4a64-92e3-39cf29e8b77b --> <!-- LOCATIONS START frontend-dapp/src/utils/nativeTransferTax.ts#L11-L52 LOCATIONS END --> <div><a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OmU0NWZhYTEyLWU1NGMtNGRmZS1iYzY4LTcxYmEyMTZkOTlhYyIsImVuY3J5cHRpb25LZXkiOiI2MTJiejVHQ1lMbDZvdmVCSjhPRTUzcm5uNEMzNDlzVUVBN0ljYmpIM2g0IiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OmU0NWZhYTEyLWU1NGMtNGRmZS1iYzY4LTcxYmEyMTZkOTlhYyIsImVuY3J5cHRpb25LZXkiOiI2MTJiejVHQ1lMbDZvdmVCSjhPRTUzcm5uNEMzNDlzVUVBN0ljYmpIM2g0IiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIiwicHJOdW1iZXIiOjEzMSwiY29tbWl0U2hhIjoiY2YzN2QwYjE4N2Y1M2YyN2ZlMjhjMjcxMzIzMzNiYjBjYWU5MjJhYyIsInByb3ZpZGVyIjoiZ2l0bGFiIiwiaG9zdG5hbWUiOiJnaXRsYWIuY29tIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-web-light.png"><img alt="Fix in Web" width="99" height="28" src="https://cursor.com/assets/images/fix-in-web-dark.png"></picture></a></div> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
ghost1 commented 2026-06-09 06:57:45 +00:00 (Migrated from gitlab.com)

Max reserve omits unwrap gas

Medium Severity

estimateNativeSwapUlunaFeesTotal now adds UNWRAP_GAS_LIMIT when needsUnwrapOutput is set, but computeMaxSpendableHumanAmount on Swap still passes nativeSwapHints without needsUnwrapOutput. Max can over-allocate native LUNC on CW20→native routes.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure here.

### Max reserve omits unwrap gas **Medium Severity** <!-- DESCRIPTION START --> `estimateNativeSwapUlunaFeesTotal` now adds `UNWRAP_GAS_LIMIT` when `needsUnwrapOutput` is set, but `computeMaxSpendableHumanAmount` on Swap still passes `nativeSwapHints` without `needsUnwrapOutput`. **Max** can over-allocate native LUNC on CW20→native routes. <!-- DESCRIPTION END --> <!-- BUGBOT_BUG_ID: 87d2ea35-1e2e-4e51-8221-3a1a9f5cbe0a --> <!-- LOCATIONS START frontend-dapp/src/pages/SwapPage.tsx#L283-L289 LOCATIONS END --> <div><a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90Ojc5YjQ4NzYwLTJmNjMtNGQ4YS1hNjQxLWZkNTdlNGQ2YzgyMiIsImVuY3J5cHRpb25LZXkiOiJERUNfcVFqcHU5Tnd2OWZsSW1aY0NtcU5TUENkcFdDZ05WUy1UTy04alc0IiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90Ojc5YjQ4NzYwLTJmNjMtNGQ4YS1hNjQxLWZkNTdlNGQ2YzgyMiIsImVuY3J5cHRpb25LZXkiOiJERUNfcVFqcHU5Tnd2OWZsSW1aY0NtcU5TUENkcFdDZ05WUy1UTy04alc0IiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIiwicHJOdW1iZXIiOjEzMSwiY29tbWl0U2hhIjoiY2YzN2QwYjE4N2Y1M2YyN2ZlMjhjMjcxMzIzMzNiYjBjYWU5MjJhYyIsInByb3ZpZGVyIjoiZ2l0bGFiIiwiaG9zdG5hbWUiOiJnaXRsYWIuY29tIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-web-light.png"><img alt="Fix in Web" width="99" height="28" src="https://cursor.com/assets/images/fix-in-web-dark.png"></picture></a></div> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
ghost1 commented 2026-06-09 06:57:46 +00:00 (Migrated from gitlab.com)

Native preflight uses gross offer

Medium Severity

For native-input swaps, simulateNativeSwap and executeNativeSwap now preflight and execute with post-tax CW20 amounts, but preflightSwapRouteSpread still receives rawInputAmount (gross native). Hop spread checks and the swap disable state can disagree with what the chain actually runs.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure here.

### Native preflight uses gross offer **Medium Severity** <!-- DESCRIPTION START --> For native-input swaps, `simulateNativeSwap` and `executeNativeSwap` now preflight and execute with post-tax CW20 amounts, but `preflightSwapRouteSpread` still receives `rawInputAmount` (gross native). Hop spread checks and the swap disable state can disagree with what the chain actually runs. <!-- DESCRIPTION END --> <!-- BUGBOT_BUG_ID: 722518a9-a643-495d-915d-46bfa1ae15b3 --> <!-- LOCATIONS START frontend-dapp/src/pages/SwapPage.tsx#L397-L403 LOCATIONS END --> <div><a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OmJiMmU4OTViLWNjMTgtNDdlMi04MDhjLTM2ODgzYjMyMTdkYyIsImVuY3J5cHRpb25LZXkiOiJyNXNSbmhmS3JhMnZUck1aMGl2X2xkcHN2d1BBYWVtaGJrMHNZdi1oTWJFIiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OmJiMmU4OTViLWNjMTgtNDdlMi04MDhjLTM2ODgzYjMyMTdkYyIsImVuY3J5cHRpb25LZXkiOiJyNXNSbmhmS3JhMnZUck1aMGl2X2xkcHN2d1BBYWVtaGJrMHNZdi1oTWJFIiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIiwicHJOdW1iZXIiOjEzMSwiY29tbWl0U2hhIjoiY2YzN2QwYjE4N2Y1M2YyN2ZlMjhjMjcxMzIzMzNiYjBjYWU5MjJhYyIsInByb3ZpZGVyIjoiZ2l0bGFiIiwiaG9zdG5hbWUiOiJnaXRsYWIuY29tIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-web-light.png"><img alt="Fix in Web" width="99" height="28" src="https://cursor.com/assets/images/fix-in-web-dark.png"></picture></a></div> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cf37d0b187f53f27fe28c27132333bb0cae922ac. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
PlasticDigits commented 2026-06-09 07:00:15 +00:00 (Migrated from gitlab.com)

added 1 commit

  • 590594a9 - fix(e2e): run sub-desktop Edit spec before desktop cancel (#338)

Compare with previous version

added 1 commit <ul><li>590594a9 - fix(e2e): run sub-desktop Edit spec before desktop cancel (#338)</li></ul> [Compare with previous version](/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/131/diffs?diff_id=1841277154&start_sha=cf37d0b187f53f27fe28c27132333bb0cae922ac)
ghost1 commented 2026-06-09 07:02:06 +00:00 (Migrated from gitlab.com)

changed this line in version 4 of the diff

changed this line in [version 4 of the diff](/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/131/diffs?diff_id=1841280281&start_sha=590594a9ac824a99f74d94cfaee31d7779392872#c4637ed432728b2070e4a79b23301c3b9d26346c_52_52)
ghost1 commented 2026-06-09 07:02:07 +00:00 (Migrated from gitlab.com)

added 1 commit

  • 759a8ca9 - Fix native swap preflight, tax cache, leaderboard PnL, and Max unwrap gas

Compare with previous version

added 1 commit <ul><li>759a8ca9 - Fix native swap preflight, tax cache, leaderboard PnL, and Max unwrap gas</li></ul> [Compare with previous version](/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/131/diffs?diff_id=1841280281&start_sha=590594a9ac824a99f74d94cfaee31d7779392872)
ghost1 commented 2026-06-09 07:02:44 +00:00 (Migrated from gitlab.com)

resolved all threads

resolved all threads
ghost1 commented 2026-06-09 07:03:33 +00:00 (Migrated from gitlab.com)

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issue.

Reviewed by Cursor Bugbot for commit 759a8ca99e7c0d5032490546e2cf364a0ce4e9f5. Configure here.

<!-- BUGBOT_REVIEW --> Cursor Bugbot has reviewed your changes and found 1 potential issue. <!-- BUGBOT_FIX_ALL --> <a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9BTExfSU5fQ1VSU09SIiwiZGF0YSI6eyJyZWRpc0tleSI6ImJ1Z2JvdC1tdWx0aTpiNjgwMjJiNy01MjNjLTQ4YWMtODY5Mi0wNzg0MTZiZWExMTYiLCJlbmNyeXB0aW9uS2V5IjoibF9uYlhKd284bjQ2WlpKMDM4eEhveWNVejM4THdpVFgwckxheWI1RGxpVSIsImJyYW5jaCI6ImxvY2FsMS8zMzgtZTJlLXZlcmlmeSIsInJlcG9Pd25lciI6IlBsYXN0aWNEaWdpdHMiLCJyZXBvTmFtZSI6ImNsOHktZGV4LXRlcnJhY2xhc3NpYyJ9fQ" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix All in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a> <!-- /BUGBOT_FIX_ALL --> <!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_BEGIN --> <sup>Bugbot Autofix is [ON](https://www.cursor.com/dashboard/bugbot). A cloud agent has been kicked off to fix the reported issue. <!-- BUGBOT_AUTOFIX_AGENT_LINK --></sup> <!-- BUGBOT_AUTOFIX_REVIEW_FOOTNOTE_END --> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 759a8ca99e7c0d5032490546e2cf364a0ce4e9f5. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
ghost1 commented 2026-06-09 07:03:34 +00:00 (Migrated from gitlab.com)

Pool UI ignores wrap tax

Medium Severity

Native-wrap provide liquidity now submits post-tax CW20 amounts in the mutation, but rawAddA/rawAddB still drive estimateProvideLiquidityUserLp and isProportionalAddAmounts from gross user input. The UI can show a balanced ratio and inflated LP while the chain receives a smaller wrapped leg, causing misleading previews and unexpected mint behavior.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 759a8ca99e7c0d5032490546e2cf364a0ce4e9f5. Configure here.

### Pool UI ignores wrap tax **Medium Severity** <!-- DESCRIPTION START --> Native-wrap provide liquidity now submits post-tax CW20 amounts in the mutation, but `rawAddA`/`rawAddB` still drive `estimateProvideLiquidityUserLp` and `isProportionalAddAmounts` from gross user input. The UI can show a balanced ratio and inflated LP while the chain receives a smaller wrapped leg, causing misleading previews and unexpected mint behavior. <!-- DESCRIPTION END --> <!-- BUGBOT_BUG_ID: 7b578b11-78e6-4c72-80e5-b47b3bb14ed4 --> <!-- LOCATIONS START frontend-dapp/src/pages/PoolPage.tsx#L191-L284 frontend-dapp/src/pages/PoolPage.tsx#L305-L362 LOCATIONS END --> <details> <summary>Additional Locations (1)</summary> - [`frontend-dapp/src/pages/PoolPage.tsx#L305-L362`](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-//blob/759a8ca99e7c0d5032490546e2cf364a0ce4e9f5/frontend-dapp/src/pages/PoolPage.tsx#L305-L362) </details> <div><a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjhlYjFhNzM0LTEzYWItNGY4OC1hODA3LWY3YjA5YmU3ZDc0YSIsImVuY3J5cHRpb25LZXkiOiIySUE3VGNscW41cG9KVng5VFJmODY0Q1FiSG5iTmlhUjFtRnZPdjV0ajhjIiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjhlYjFhNzM0LTEzYWItNGY4OC1hODA3LWY3YjA5YmU3ZDc0YSIsImVuY3J5cHRpb25LZXkiOiIySUE3VGNscW41cG9KVng5VFJmODY0Q1FiSG5iTmlhUjFtRnZPdjV0ajhjIiwiYnJhbmNoIjoibG9jYWwxLzMzOC1lMmUtdmVyaWZ5IiwicmVwb093bmVyIjoiUGxhc3RpY0RpZ2l0cyIsInJlcG9OYW1lIjoiY2w4eS1kZXgtdGVycmFjbGFzc2ljIiwicHJOdW1iZXIiOjEzMSwiY29tbWl0U2hhIjoiNzU5YThjYTk5ZTdjMGQ1MDMyNDkwNTQ2ZTJjZjM2NGEwY2U0ZTlmNSIsInByb3ZpZGVyIjoiZ2l0bGFiIiwiaG9zdG5hbWUiOiJnaXRsYWIuY29tIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-web-light.png"><img alt="Fix in Web" width="99" height="28" src="https://cursor.com/assets/images/fix-in-web-dark.png"></picture></a></div> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 759a8ca99e7c0d5032490546e2cf364a0ce4e9f5. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
ghost1 commented 2026-06-09 07:07:36 +00:00 (Migrated from gitlab.com)

added 1 commit

  • ead6e24d - Fix pool LP preview to use post-tax wrap amounts

Compare with previous version

added 1 commit <ul><li>ead6e24d - Fix pool LP preview to use post-tax wrap amounts</li></ul> [Compare with previous version](/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/131/diffs?diff_id=1841289947&start_sha=759a8ca99e7c0d5032490546e2cf364a0ce4e9f5)
ghost1 commented 2026-06-09 07:07:54 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-09 07:46:23 +00:00 (Migrated from gitlab.com)

changed this line in version 9 of the diff

changed this line in version 9 of the diff
PlasticDigits commented 2026-06-09 07:46:24 +00:00 (Migrated from gitlab.com)

changed this file in version 9 of the diff

changed this file in version 9 of the diff
PlasticDigits commented 2026-06-09 07:46:24 +00:00 (Migrated from gitlab.com)

changed this file in version 9 of the diff

changed this file in version 9 of the diff
PlasticDigits commented 2026-06-09 07:46:24 +00:00 (Migrated from gitlab.com)

added 19 commits

  • ead6e24d...1c37ef86 - 16 commits from branch main
  • 0ca0f482 - docs: trade-book Edit E2E invariants and crosslinks (#338)
  • 94214b03 - fix(e2e): run sub-desktop Edit spec before desktop cancel (#338)
  • a8b43d07 - Fix pool LP preview to use post-tax wrap amounts

Compare with previous version

added 19 commits <ul><li>ead6e24d...1c37ef86 - 16 commits from branch <code>main</code></li><li>0ca0f482 - docs: trade-book Edit E2E invariants and crosslinks (#338)</li><li>94214b03 - fix(e2e): run sub-desktop Edit spec before desktop cancel (#338)</li><li>a8b43d07 - Fix pool LP preview to use post-tax wrap amounts</li></ul> [Compare with previous version](/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/131/diffs?diff_id=1841367732&start_sha=ead6e24d167b7317546a66c2b2572c5fadabc82a)
ghost1 commented 2026-06-09 07:46:40 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
PlasticDigits commented 2026-06-09 07:48:30 +00:00 (Migrated from gitlab.com)

resolved all threads

resolved all threads
PlasticDigits commented 2026-06-09 07:48:35 +00:00 (Migrated from gitlab.com)

mentioned in commit e689d83351

mentioned in commit e689d83351401b5873f092fdb49759dbe7b7af73
PlasticDigits (Migrated from gitlab.com) merged commit e689d83351 into main 2026-06-09 07:48:35 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-dex-terraclassic!849
No description provided.