diff --git a/js/waves.ui.js b/js/waves.ui.js
index e798523301..121aa6734d 100644
--- a/js/waves.ui.js
+++ b/js/waves.ui.js
@@ -161,40 +161,86 @@ var Waves = (function(Waves, $, undefined) {
//Auto Updating Voting Page Items
},
'mBB-history': function updateHistory() {
+
+ Waves.apiRequest(Waves.api.transactions.unconfirmed, function(unconfirmedTransactions) {
- Waves.getAddressHistory(Waves.address, function(history) {
- var transactionHistory = history[0];
- var appContainer = '';
-
- transactionHistory.sort(function(x, y){
- return y.timestamp - x.timestamp;
- });
+ Waves.getAddressHistory(Waves.address, function(history) {
+ var transactionHistory = history[0];
+ var appContainer = '';
+
+ var signatureKeys = []; //Prevent double-entry with unconfirmed transactions
+
+ if(unconfirmedTransactions.length > 0) {
+
+ $.each(unconfirmedTransactions, function(keyunc, dataunc) {
+
+ if(dataunc.sender === Waves.address.getRawAddress() || dataunc.recipient === Waves.address.getRawAddress()) {
+
+ var senderClass = 'class="unconfirmed wavesTable-txIn"';
+ var paymentType = 'Incoming ';
+ if(dataunc.sender === Waves.address.getRawAddress()) {
+
+ senderClass = 'class="unconfirmed wavesTable-txOut"';
+ paymentType = 'Outgoing ';
+ }
+
+ var sender = dataunc.sender !== undefined ?
+ Waves.Addressing.fromRawAddress(dataunc.sender).getDisplayAddress() :
+ "none";
- $.each(transactionHistory, function(historyKey, historyValue) {
+ signatureKeys.push(dataunc.signature);
+
+ appContainer += '
';
+ appContainer += ''+Waves.formatTimestamp(dataunc.timestamp)+' | ';
+ appContainer += '' +paymentType + Waves.transactionType(dataunc.type)+' | ';
+ appContainer += ''+ sender +' | ';
+ appContainer += ''+ Waves.Addressing.fromRawAddress(dataunc.recipient).getDisplayAddress()+' | ';
+ appContainer += ''+dataunc.fee+' WVL | ';
+ appContainer += ''+Waves.formatAmount(dataunc.amount)+' WAVE | ';
+ appContainer += '
';
+
+ }
+
+ });
- var senderClass = 'class="wavesTable-txIn"';
- var paymentType = 'Incoming ';
- if(historyValue.sender === Waves.address.getRawAddress()) {
-
- senderClass = 'class="wavesTable-txOut"';
- paymentType = 'Outgoing ';
}
+
+ transactionHistory.sort(function(x, y){
+ return y.timestamp - x.timestamp;
+ });
+
+ $.each(transactionHistory, function(historyKey, historyValue) {
+
+ var senderClass = 'class="wavesTable-txIn"';
+ var paymentType = 'Incoming ';
+ if(historyValue.sender === Waves.address.getRawAddress()) {
+
+ senderClass = 'class="wavesTable-txOut"';
+ paymentType = 'Outgoing ';
+ }
+
+ var sender = historyValue.sender !== undefined ?
+ Waves.Addressing.fromRawAddress(historyValue.sender).getDisplayAddress() :
+ "none";
+
+ if(signatureKeys.indexOf(historyValue.signature) === -1) {
+
+ appContainer += '';
+ appContainer += ''+Waves.formatTimestamp(historyValue.timestamp)+' | ';
+ appContainer += ''+paymentType + Waves.transactionType(historyValue.type)+' | ';
+ appContainer += ''+ sender +' | ';
+ appContainer += ''+ Waves.Addressing.fromRawAddress(historyValue.recipient).getDisplayAddress()+' | ';
+ appContainer += ''+historyValue.fee+' WVL | ';
+ appContainer += ''+Waves.formatAmount(historyValue.amount)+' WAVE | ';
+ appContainer += '
';
+
+ }
+
+ });
- var sender = historyValue.sender !== undefined ?
- Waves.Addressing.fromRawAddress(historyValue.sender).getDisplayAddress() :
- "none";
-
- appContainer += '';
- appContainer += ''+Waves.formatTimestamp(historyValue.timestamp)+' | ';
- appContainer += ''+paymentType + Waves.transactionType(historyValue.type)+' | ';
- appContainer += ''+ sender +' | ';
- appContainer += ''+ Waves.Addressing.fromRawAddress(historyValue.recipient).getDisplayAddress()+' | ';
- appContainer += ''+historyValue.fee+' WVL | ';
- appContainer += ''+Waves.formatAmount(historyValue.amount)+' WAVE | ';
- appContainer += '
';
+ $("#transactionhistory").html(appContainer);
});
- $("#transactionhistory").html(appContainer);
});
},