Fix tx amount display to 4 decimal places, add relative time to tx detail
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
Cette révision appartient à :
2026-02-26 03:19:42 +07:00
Parent a1ddbd035b
révision fbff44ade6
3 fichiers modifiés avec 14 ajouts et 3 suppressions
+10
Voir le fichier
@@ -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:
+2 -1
Voir le fichier
@@ -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");
} }
+2 -2
Voir le fichier
@@ -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;
} }