Fix tx amount display to 4 decimal places, add relative time to tx detail
Some checks failed
check / check (push) Has been cancelled

- Transaction values now use exactly 4 decimal places (was 6),
  matching balance display everywhere else
- Transaction detail view shows "2026-02-25 15:04:23 (23 days ago)"
  instead of just the ISO date
- Added Display Consistency policy to README
This commit is contained in:
2026-02-26 03:19:42 +07:00
parent a1ddbd035b
commit fbff44ade6
3 changed files with 14 additions and 3 deletions

View File

@@ -115,6 +115,16 @@ invisible hit targets, no bare text that happens to have a click handler. If it
does something when you click it, it must look like it does something when you does something when you click it, it must look like it does something when you
click it. click it.
#### Display Consistency
The same data must be formatted identically everywhere it appears. Token and ETH
amounts are always displayed with exactly 4 decimal places (e.g. "1.0500 ETH",
"17.1900 USDT") — in balance lists, transaction lists, transaction details, send
confirmations, and any other context. Timestamps include both an ISO datetime
and a humanized relative age wherever shown. If a formatting rule applies in one
place, it applies in every place. Users should never see the same value rendered
differently on two screens.
#### Language & Labeling #### Language & Labeling
All user-facing text avoids crypto jargon wherever possible: All user-facing text avoids crypto jargon wherever possible:

View File

@@ -131,7 +131,8 @@ function showTxDetail(tx) {
$("tx-detail-from").textContent = tx.from; $("tx-detail-from").textContent = tx.from;
$("tx-detail-to").textContent = tx.to; $("tx-detail-to").textContent = tx.to;
$("tx-detail-value").textContent = tx.value + " " + tx.symbol; $("tx-detail-value").textContent = tx.value + " " + tx.symbol;
$("tx-detail-time").textContent = isoDate(tx.timestamp); $("tx-detail-time").textContent =
isoDate(tx.timestamp) + " (" + timeAgo(tx.timestamp) + ")";
$("tx-detail-status").textContent = tx.isError ? "Failed" : "Success"; $("tx-detail-status").textContent = tx.isError ? "Failed" : "Success";
showView("transaction"); showView("transaction");
} }

View File

@@ -7,8 +7,8 @@ const { log } = require("./log");
function formatTxValue(val) { function formatTxValue(val) {
const parts = val.split("."); const parts = val.split(".");
if (parts.length === 1) return val; if (parts.length === 1) return val + ".0000";
const dec = parts[1].slice(0, 6).replace(/0+$/, "") || "0"; const dec = (parts[1] + "0000").slice(0, 4);
return parts[0] + "." + dec; return parts[0] + "." + dec;
} }