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