Problem
Locale separators and floating-point formatting can cause a transfer amount to differ from the user's intended value.
Objective
Deliver a production-quality improvement to amount inputs, balances, fees, and receipts that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
- Use canonical decimal strings for submission; define display precision, currency minor units, rounding, and negative/zero handling.
Acceptance criteria
- Round trips are deterministic across supported locales; unsupported precision is rejected; receipts match the submitted value.
Required validation
- Locale matrix, property round-trip, boundary, and snapshot tests.
- Existing tests and CI remain passing.
- Add regression coverage for the original failure mode.
- Do not weaken, delete, or skip unrelated tests to obtain a green build.
PR quality bar
- Keep the PR focused and explain design tradeoffs, compatibility impact, and test evidence.
- Avoid typo-only, documentation-only, cosmetic-only, or unrelated refactor submissions.
Out of scope
- Broad rewrites not required by the acceptance criteria.
- Changes to unrelated services, contracts, or user flows.
Problem
Locale separators and floating-point formatting can cause a transfer amount to differ from the user's intended value.
Objective
Deliver a production-quality improvement to amount inputs, balances, fees, and receipts that creates measurable value for correctness, security, reliability, performance, or maintainability.
Implementation scope
Acceptance criteria
Required validation
PR quality bar
Out of scope