W7-C3: Price input has no current price reference, no % deviation indicator, no USD equivalent, accepts invalid limit prices, and no limit order tooltip #154
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#154
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Issue Summary
The Price input in the Place Limit panel is missing five features required for safe and informed limit order entry:
7on a pair trading at ~0.887 is accepted without any warningReproduction Steps
/tradeand select EMBER / CORAL (last price ~0.888)7(far above the current price of ~0.888)0.1(far below the current price)Expected Behavior
The Price field should include:
Actual Behavior
7on a pair at ~1.087 (Bid side, 544% above market) is accepted with no warning or validationEnvironment Details
localterra(local Docker)VITE_NETWORK=local npm run devatlocalhost:3000make indexer-dev)make deploy-localWallet / Device Details
terra1...sl7cvvterra146...c9mjav)Screenshots
Severity / Impact
Medium. A trader can submit a limit bid at 544% above market with no friction or warning. On a real network with real funds, this would either execute immediately as a market order (unexpected for the user) or be rejected on-chain — both outcomes are harmful. The missing current price and % deviation are the most critical gaps: without them the trader has no reference point to evaluate their own entry. The USD display and tooltip are polish items but together these five gaps make the price field actively unsafe for inexperienced CEX migrants. Found under W7-C3 (Price input — Display, Interactivity, and Trader use dimensions).
cc: @PlasticDigits
mentioned in issue #155
mentioned in issue #116
mentioned in commit
77c31834e8mentioned in commit
4a9fe69706mentioned in commit
b01ad55c29Update (GitLab #154)
Implemented limit price UX on
/tradeand/limit-orders(combined on main with the #153 Bid/Ask button radiogroup):|\%| \geq 50in a valid direction.PriceChart(documented as an estimate, not per-token oracle).placeMutationthrows if the gate would fail.title+sr-only).Docs / agents:
docs/frontend.md§ Trade page — limit order price field,docs/limit-orders.md,skills/AGENTS_FRONTEND_LIMIT_ORDER_PRICE.md(cross-linked with trade layout + side-selector skills).Verification checklist
/tradewith indexer + tape: Current, vs reference, Headline-scaled USD populate; hover ⓘ shows limit-order copy./limit-ordersshows the same price context + gates.npm testinfrontend-dapppasses (includes newlimitOrderPrice*tests).@totdking — please verify on your EMBER/CORAL scenario (and mobile width) when you have a moment. Leaving the issue open as requested.
mentioned in commit
86320d088amentioned in issue #153
mentioned in commit
3ede6ca8dementioned in issue #152
Verification complete (GitLab #154)
Verified on local stack (LocalTerra healthy, Postgres :5432, indexer :3001, frontend :3000, bot swarm active). No code changes required — limit price UX from the prior implementation passes all acceptance criteria.
Checklist
/trade(EMBER/CORAL) — Current (last trade), vs reference, Headline-scaled USD populate; ⓘ tooltip shows limit-order copy on hover.7at ref ~0.97: red +646.8% (invalid for buy limit), Place limit disabled, guard message shown.0.1: red −89.7% (invalid for sell limit), Place limit disabled, guard message shown.0.8+ amount enables Place limit (escrow/gas gates unchanged)./limits— same price context + direction gates after pair selection (EMBER/CORAL).npm testinfrontend-dapp— 599/599 passed (includeslimitOrderPrice*suites).Note on checklist item 5 (no tape)
Superseded by #166: when tape is missing, UI falls back to AMM pool spot when available; reference shows pool label instead of —. Submit is only blocked when neither tape nor pool resolves — intentional safety, not a regression.
Closing as verified.
mentioned in issue #495
mentioned in commit
a010b1441fmentioned in merge request !1040
mentioned in issue #524
marked as related to #524