Database indexing: Full Address history, fix balances, add db file locks
This commit is contained in:
+6
-6
@@ -1,9 +1,9 @@
|
||||
extends layout
|
||||
|
||||
block content
|
||||
- var balance = (address.received - address.sent) / 100000000;
|
||||
- var sent = address.sent /100000000
|
||||
- var received = address.received / 100000000
|
||||
- var balance = ((address.received - address.sent) / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
|
||||
- var sent = (address.sent /100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true})
|
||||
- var received = (address.received / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true})
|
||||
img.qrcode.pull-right.hidden-xs(src='/qr/' + address.a_id)
|
||||
.col-xs-12.col-md-10.col-md-offset-1
|
||||
.panel.panel-default.panel-address-summary
|
||||
@@ -34,11 +34,11 @@ block content
|
||||
tbody
|
||||
tr
|
||||
if settings.show_sent_received == true
|
||||
td #{sent.toFixed(8)}
|
||||
td #{sent}
|
||||
if address.a_id !== 'coinbase'
|
||||
if settings.show_sent_received == true
|
||||
td #{received.toFixed(8)}
|
||||
td #{balance.toFixed(8)}
|
||||
td #{received}
|
||||
td #{balance}
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
strong #{settings.locale.ex_latest_transactions}
|
||||
|
||||
+4
-3
@@ -91,10 +91,11 @@ block content
|
||||
a(href='/tx/' + txn.txid) #{txn.txid}
|
||||
td #{txn.vout.length}
|
||||
if txn.vout.length > 0
|
||||
- var total = txn.total / 100000000
|
||||
td #{total.toFixed(8)}
|
||||
- var total = (txn.total / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
|
||||
td #{total}
|
||||
else
|
||||
td #{txn.total.toFixed(8)}
|
||||
- var total = (txn.total).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
|
||||
td #{total}
|
||||
td.view_tx
|
||||
a(href='/tx/' + txn.txid)
|
||||
span.glyphicon.glyphicon-eye-open
|
||||
|
||||
@@ -29,20 +29,21 @@ script.
|
||||
if(out > 0 && vin > 0) {
|
||||
amount = (out - vin) / 100000000
|
||||
if (amount < 0) {
|
||||
amount = amount * -1
|
||||
$("td:eq(2)", row).html("-" + amount.toFixed(8)).addClass("info");
|
||||
amount = (amount * -1).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
|
||||
$("td:eq(2)", row).html("-" + amount).addClass("info");
|
||||
} else if (amount > 0) {
|
||||
ammount = amount.toFixed(8);
|
||||
amount = amount.toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
|
||||
$("td:eq(2)", row).html("+" + amount).addClass("info");
|
||||
} else {
|
||||
$("td:eq(2)", row).html(amount.toFixed(8)).addClass("info");
|
||||
amount = amount.toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
|
||||
$("td:eq(2)", row).html(amount).addClass("info");
|
||||
}
|
||||
}else if(out > 0) {
|
||||
amount = out / 100000000;
|
||||
$("td:eq(2)", row).html("+" + amount.toFixed(8)).addClass("success");
|
||||
amount = (out / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
|
||||
$("td:eq(2)", row).html("+" + amount).addClass("success");
|
||||
}else{
|
||||
amount = vin / 100000000;
|
||||
$("td:eq(2)", row).html("-" + amount.toFixed(8)).addClass("danger");
|
||||
amount = (vin / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
|
||||
$("td:eq(2)", row).html("-" + amount).addClass("danger");
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@@ -10,8 +10,10 @@ table.table.table-hover.table-bordered(cellspacing="0")
|
||||
- var count = 0
|
||||
each item in balance
|
||||
- count = count + 1
|
||||
- var itemFixed = item.balance / 100000000
|
||||
- var percentage = (itemFixed / stats.supply) * 100
|
||||
- var itemFixed = (parseInt(item.balance) / 100000000);
|
||||
- var itemFixedParts = itemFixed.toFixed(0).toString().split(".");
|
||||
- var itemFixedStr = itemFixedParts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",") + (itemFixedParts[1] ? "." + itemFixedParts[1] : "");
|
||||
- var percentage = (itemFixed / stats.supply) * 100;
|
||||
tr
|
||||
td(style='text-align:center;')
|
||||
=count
|
||||
@@ -19,6 +21,6 @@ table.table.table-hover.table-bordered(cellspacing="0")
|
||||
a(href='/address/' + item.a_id) #{item.a_id}
|
||||
include ./rl_labels.pug
|
||||
td.hidden-xs
|
||||
=itemFixed.toFixed(8)
|
||||
=itemFixedStr
|
||||
td.hidden-xs(style='text-align:center;')
|
||||
=percentage.toFixed(2)
|
||||
@@ -8,8 +8,10 @@ table.table.table-hover.table-bordered(cellspacing="0")
|
||||
tbody
|
||||
- var count = 0
|
||||
each item in received
|
||||
- count = count + 1
|
||||
- var itemFixed = item.received / 100000000
|
||||
- count = count + 1;
|
||||
- var itemFixed = (parseInt(item.received) / 100000000);
|
||||
- var itemFixedParts = itemFixed.toFixed(0).toString().split(".");
|
||||
- var itemFixedStr = itemFixedParts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",") + (itemFixedParts[1] ? "." + itemFixedParts[1] : "");
|
||||
tr
|
||||
td(style='text-align:center;')
|
||||
=count
|
||||
@@ -17,4 +19,4 @@ table.table.table-hover.table-bordered(cellspacing="0")
|
||||
a(href='/address/' + item.a_id) #{item.a_id}
|
||||
include ./rl_labels.pug
|
||||
td.hidden-xs
|
||||
=itemFixed.toFixed(8)
|
||||
=itemFixedStr
|
||||
+1
-1
@@ -44,7 +44,7 @@ block content
|
||||
json.data[i]['txid'] = "<a href='/tx/" + json.data[i]['txid'] + "'>" + json.data[i]['txid'] + "</a>";
|
||||
json.data[i]['blockindex'] = "<a href='/block/" + json.data[i]['blockhash'] + "'>" + json.data[i]['blockindex'] + "</a>";
|
||||
var amount = json.data[i]['total'] / 100000000;
|
||||
json.data[i]['total'] = amount.toFixed(8);
|
||||
json.data[i]['total'] = amount.toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true});
|
||||
json.data[i]['recipients'] = json.data[i]['vout'].length;
|
||||
}
|
||||
return json.data;
|
||||
|
||||
+3
-3
@@ -26,14 +26,14 @@ html
|
||||
$('##{active}').addClass('active');
|
||||
function update_stats(){
|
||||
$.ajax({url: '/ext/summary', success: function(json){
|
||||
$("#supply").text(json.data[0].supply);
|
||||
$("#supply").text(parseInt(parseFloat(json.data[0].supply).toFixed(0)).toLocaleString('en'));
|
||||
$("#masternodeCountOnline").text(json.data[0].masternodeCountOnline).prop("alt", json.data[0].masternodeCountOnline+" nodes online").prop("title", json.data[0].masternodeCountOnline+" nodes online");
|
||||
$("#masternodeCountOffline").text(json.data[0].masternodeCountOffline).prop("alt", json.data[0].masternodeCountOffline+" unreachable nodes").prop("title", json.data[0].masternodeCountOffline+" unreachable nodes");
|
||||
$("#spnMasternodeCountOnline").prop("alt", json.data[0].masternodeCountOnline+" nodes online").prop("title", json.data[0].masternodeCountOnline+" nodes online");
|
||||
$("#spnMasternodeCountOffline").prop("alt", json.data[0].masternodeCountOffline+" unreachable nodes").prop("title", json.data[0].masternodeCountOffline+" unreachable nodes");
|
||||
$("#difficulty").text(json.data[0].difficulty);
|
||||
$("#difficulty").text(json.data[0].difficulty.toFixed(2));
|
||||
$("#difficultyHybrid").text(json.data[0].difficultyHybrid);
|
||||
$("#hashrate").text(json.data[0].hashrate);
|
||||
$("#hashrate").text(parseFloat(json.data[0].hashrate).toLocaleString('en'));
|
||||
$("#lastPrice").text(json.data[0].lastPrice.toFixed(8));
|
||||
$("#lblConnections").text(json.data[0].connections + ' connections');
|
||||
$("#lblBlockcount").text(json.data[0].blockcount + ' blocks');
|
||||
|
||||
+3
-3
@@ -45,11 +45,11 @@ block content
|
||||
json.data[i]['txid'] = "<a href='/tx/" + json.data[i]['txid'] + "' target='_blank'>" + json.data[i]['txid'] + "</a>"
|
||||
var amount = json.data[i]['total'] / 100000000;
|
||||
if (amount > '#{flagb}') {
|
||||
json .data[i]['total'] = "<label class='label label-danger'>" + amount + "</label>";
|
||||
json .data[i]['total'] = "<label class='label label-danger'>" + amount.toLocaleString('en') + "</label>";
|
||||
} else if (amount > '#{flaga}') {
|
||||
json .data[i]['total'] = "<label class='label label-warning'>" + amount + "</label>";
|
||||
json .data[i]['total'] = "<label class='label label-warning'>" + amount.toLocaleString('en') + "</label>";
|
||||
} else {
|
||||
json .data[i]['total'] = "<label class='label label-success'>" + amount + "</label>";
|
||||
json .data[i]['total'] = "<label class='label label-success'>" + amount.toLocaleString('en') + "</label>";
|
||||
}
|
||||
}
|
||||
return json.data;
|
||||
|
||||
+8
-4
@@ -64,25 +64,29 @@ block content
|
||||
th
|
||||
div.pull-left(style='background-color:#d9534f;width:20px;height:20px;margin-right:6px;')
|
||||
span #{settings.locale.rl_top25}
|
||||
td #{parseFloat(dista.total).toFixed(8)}
|
||||
- var total = parseFloat(dista.total).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true})
|
||||
td #{total}
|
||||
td.text-center #{parseFloat(dista.percent).toFixed(2)}
|
||||
tr
|
||||
th
|
||||
div.pull-left(style='background-color:#5cb85c;width:20px;height:20px;margin-right:6px;')
|
||||
span #{settings.locale.rl_top50}
|
||||
td #{parseFloat(distb.total).toFixed(8)}
|
||||
- var total = parseFloat(distb.total).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true})
|
||||
td #{total}
|
||||
td.text-center #{parseFloat(distb.percent).toFixed(2)}
|
||||
tr
|
||||
th
|
||||
div.pull-left(style='background-color:#428bca;width:20px;height:20px;margin-right:6px;')
|
||||
span #{settings.locale.rl_top75}
|
||||
td #{parseFloat(distc.total).toFixed(8)}
|
||||
- var total = parseFloat(distc.total).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true})
|
||||
td #{total}
|
||||
td.text-center #{parseFloat(distc.percent).toFixed(2)}
|
||||
tr
|
||||
th
|
||||
div.pull-left(style='background-color:#222;width:20px;height:20px;margin-right:6px;')
|
||||
span #{settings.locale.rl_top100}
|
||||
td #{parseFloat(distd.total).toFixed(8)}
|
||||
- var total = parseFloat(distd.total).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true})
|
||||
td #{total}
|
||||
td.text-center #{parseFloat(distd.percent).toFixed(2)}
|
||||
tr
|
||||
th
|
||||
|
||||
+18
-17
@@ -71,7 +71,7 @@ block content
|
||||
tr.info(style='text-align:center')
|
||||
td #{settings.locale.new_coins}
|
||||
else
|
||||
- var ramount = r.amount / 100000000
|
||||
- var ramount = (r.amount / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true})
|
||||
tr
|
||||
td
|
||||
if r.addresses != 'private_tx'
|
||||
@@ -79,9 +79,9 @@ block content
|
||||
=r.addresses
|
||||
else
|
||||
=settings.locale.hidden_sender
|
||||
td.danger.hidden-xs #{ramount.toFixed(8)}
|
||||
td.danger.hidden-xs #{ramount}
|
||||
tr.hidden-lg.hidden-md
|
||||
td.danger #{ramount.toFixed(8)} #{settings.symbol}
|
||||
td.danger #{ramount} #{settings.symbol}
|
||||
else
|
||||
tr.info(style='text-align:center')
|
||||
td #{settings.locale.proof_of_stake}
|
||||
@@ -89,36 +89,37 @@ block content
|
||||
.panel.panel-default
|
||||
.panel-heading
|
||||
strong #{settings.locale.tx_recipients}
|
||||
table.table.table-bordered.table-striped.summary-table
|
||||
table.table.table-bordered.table-striped.summary-table
|
||||
thead
|
||||
tr
|
||||
th #{settings.locale.tx_address}
|
||||
th.hidden-xs #{settings.locale.mkt_amount} (#{settings.symbol})
|
||||
tbody
|
||||
each r in tx.vout
|
||||
if tx.vout.length > 0
|
||||
- var ramount = r.amount / 100000000
|
||||
if tx.vout.length > 0
|
||||
- var ramount = (r.amount / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true})
|
||||
tr
|
||||
if r.addresses != 'private_tx'
|
||||
td
|
||||
a.loading(href='/address/' + r.addresses)
|
||||
=r.addresses
|
||||
td.success.hidden-xs #{ramount.toFixed(8)}
|
||||
td
|
||||
a.loading(href='/address/' + r.addresses)
|
||||
=r.addresses
|
||||
td.success.hidden-xs #{ramount}
|
||||
else if r.amount > 0
|
||||
td
|
||||
=settings.locale.hidden_recipient
|
||||
td.success.hidden-xs #{ramount.toFixed(8)}
|
||||
td.success.hidden-xs #{ramount}
|
||||
else
|
||||
td(colspan='2')
|
||||
=settings.locale.hidden_recipient
|
||||
tr.hidden-lg.hidden-md
|
||||
td.success #{ramount.toFixed(8)} #{settings.symbol}
|
||||
td.success #{ramount} #{settings.symbol}
|
||||
else
|
||||
- var ramount = (r.amount / 100000000).toLocaleString('en',{'minimumFractionDigits':2,'maximumFractionDigits':8,'useGrouping':true})
|
||||
tr
|
||||
td
|
||||
a.loading(href='/address/' + r.addresses)
|
||||
=r.addresses
|
||||
td.success.hidden-xs #{ramount.toFixed(8)}
|
||||
td
|
||||
a.loading(href='/address/' + r.addresses)
|
||||
=r.addresses
|
||||
td.success.hidden-xs #{ramount}
|
||||
tr.hidden-lg.hidden-md
|
||||
td.success #{ramount.toFixed(8)} #{settings.symbol}
|
||||
td.success #{ramount} #{settings.symbol}
|
||||
.footer-padding
|
||||
Reference in New Issue
Block a user