diff --git a/templates/index.html b/templates/index.html
index 7f07d75..b42a77e 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -346,6 +346,50 @@
return html;
}
+ // Format address transactions nicely
+ function formatAddressTransactions(txs) {
+ if (!txs || txs.error) {
+ return `
Error: ${txs.error || 'Invalid transaction data'}
`;
+ }
+
+ if (!Array.isArray(txs) || txs.length === 0) {
+ return `No transactions found for this address
`;
+ }
+
+ const formatValue = (value) => (value / 1e6).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + ' HNS';
+ const formatTime = (timestamp) => new Date(timestamp * 1000).toLocaleString();
+
+ let html = `
+
+
+
Transactions (${txs.length})
+
+ ${txs.map((tx, i) => {
+ const totalInput = tx.inputs.reduce((sum, inp) => sum + (inp.coin?.value || 0), 0);
+ const totalOutput = tx.outputs.reduce((sum, out) => sum + out.value, 0);
+ return `
+
+
+
${tx.hash}
+
+ Block: ${tx.height >= 0 ? tx.height.toLocaleString() : 'Pending'}
+ Fee: ${formatValue(tx.fee)}
+ ${tx.inputs.length} in → ${tx.outputs.length} out
+
+
+ `;
+ }).join('')}
+
+
+
+ `;
+
+ return html;
+ }
+
// Format transaction data nicely
function formatTransactionData(tx) {
if (!tx || tx.error) {
@@ -539,7 +583,14 @@
}
updateURL('address', address);
const data = await apiCall(`tx/address/${address}`);
- displayResult('address-result', data);
+
+ // Use formatted display instead of raw JSON
+ const resultElement = document.getElementById('address-result');
+ if (data.error) {
+ resultElement.innerHTML = `Error: ${data.error}
`;
+ } else {
+ resultElement.innerHTML = formatAddressTransactions(data);
+ }
}
async function searchAddressCoins() {