EH-1 UI: Insufficient gas error exposes developer-facing copy, internal GitLab issue number, and CLI instructions to end users #371
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#371
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?
Summary
When a transaction is submitted with an insufficient gas limit (e.g. Keplr returning a very low gas value), the dapp surfaces a verbose error message that contains:
GitLab #127)cd frontend-dapp && npm ci)ulunamicro-unit values (Expected at least ~50985000 uluna; wallet returned ~29 uluna)Expected gas at least ~1800000; wallet returned ~1)Observed error message (verbatim):
Reproduction steps
/(Swap page) on LocalTerraExpected behavior
The error message shown to the user should be short, plain-language, and actionable without internal context. Example appropriate message:
Raw uluna values, GitLab issue numbers, shell commands, and wallet-specific troubleshooting steps should never appear in the user-facing error string.
Actual behavior
The full developer diagnostic string is rendered verbatim in the UI, including:
GitLab #127(internal issue tracker reference)cd frontend-dapp && npm ci(shell CLI instruction)50985000 uluna/~1800000gas (raw micro-unit values)Environment
/(Swap)Severity: P3 -- the gas mismatch is correctly caught and the transaction is blocked. The failure is in the error copy: developer-facing diagnostic text is shown to the user instead of a clean, user-appropriate message.
Related checklist items: EH-1
cc: @PlasticDigits
mentioned in issue #291
mentioned in commit
b63edb011cmentioned in merge request !884
mentioned in commit
b066bdb330mentioned in commit
809d2b9842mentioned in merge request !888
mentioned in commit
87b6f9a3damentioned in merge request !895
mentioned in commit
b8238b0237mentioned in commit
fe5c3c2fb5mentioned in merge request !897
mentioned in commit
78e3222be9mentioned in issue #372
Verify #371 — PASS
Verified on
main@78e3222b(MR !897 merged). No additional repo changes required.Acceptance criteria
GitLab #127,npm ci, rawuluna/gas values, or Station-only stepsKeplrExtension.jsthrowsEXTENSION_SIGNED_FEE_UNDERSHOOT_USER_MESSAGE; browser bundle humanize returns retail stringEXTENSION_SIGNED_FEE_UNDERSHOOT_USER_MESSAGE/EXTENSION_SIGNED_FEE_USER_MESSAGEextensionSignedFeeGuardlogs viaconsole.warn; UI returns retail copy/handleBroadcastError→tryHumanizeTerraTxMessage),TxResultAlert, and patched cosmes Keplr pathCommands run
Implementation layers confirmed
extensionSignedFeeGuard.ts— returns retailEXTENSION_SIGNED_FEE_UNDERSHOOT_USER_MESSAGE; diagnostics only inconsole.warnhumanizeTerraTxError.ts— maps legacyEXTENSION_SIGNED_FEE_UNDERSHOOT_PREFIXthrows to retail copy (defense in depth)terraBroadcast.tshandleBroadcastError— humanizes before rethrowTxResultAlert— applieshumanizeUserFacingErroron error displayKeplrExtension.js—return new Error(EXTENSION_SIGNED_FEE_UNDERSHOOT_USER_MESSAGE)at post-sign guardDocs/skills cross-links present in
docs/frontend.md,skills/AGENTS_FRONTEND_USER_ERRORS.md,skills/AGENTS_TERRACLASSIC_GAS.md.