diff --git a/src/popup/views/transactionDetail.js b/src/popup/views/transactionDetail.js
index d24e040..bbfb0d9 100644
--- a/src/popup/views/transactionDetail.js
+++ b/src/popup/views/transactionDetail.js
@@ -158,8 +158,9 @@ function render() {
loadCalldata(tx.hash, tx.to);
}
- $("tx-detail-time").textContent =
- isoDate(tx.timestamp) + " (" + timeAgo(tx.timestamp) + ")";
+ const isoStr = isoDate(tx.timestamp);
+ $("tx-detail-time").innerHTML =
+ copyableHtml(isoStr) + " (" + escapeHtml(timeAgo(tx.timestamp)) + ")";
$("tx-detail-status").textContent = tx.isError ? "Failed" : "Success";
showView("transaction");
diff --git a/src/popup/views/txStatus.js b/src/popup/views/txStatus.js
index e8dee6e..66edb5d 100644
--- a/src/popup/views/txStatus.js
+++ b/src/popup/views/txStatus.js
@@ -59,6 +59,16 @@ function txHashHtml(hash) {
);
}
+function blockNumberHtml(blockNumber) {
+ const num = String(blockNumber);
+ const link = `https://etherscan.io/block/${num}`;
+ const extLink = `${EXT_ICON}`;
+ return (
+ `${escapeHtml(num)}` +
+ extLink
+ );
+}
+
function attachCopyHandlers(viewId) {
document
.getElementById(viewId)
@@ -189,7 +199,7 @@ function renderSuccess() {
$("success-tx-to").innerHTML = toAddressHtml(d.to);
}
- $("success-tx-block").textContent = String(d.blockNumber);
+ $("success-tx-block").innerHTML = blockNumberHtml(d.blockNumber);
$("success-tx-hash").innerHTML = txHashHtml(d.hash);
// Show decoded calldata details if present