Watchonly transactions are marked in transaction history
This commit is contained in:
parent
ffd40da361
commit
d2692f6116
3 changed files with 17 additions and 4 deletions
|
@ -70,16 +70,19 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
|
|||
sub.type = TransactionRecord::Generated;
|
||||
}
|
||||
|
||||
sub.involvesWatchAddress = mine == MINE_WATCH_ONLY;
|
||||
parts.append(sub);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bool involvesWatchAddress = false;
|
||||
isminetype fAllFromMe = MINE_SPENDABLE;
|
||||
BOOST_FOREACH(const CTxIn& txin, wtx.vin)
|
||||
{
|
||||
isminetype mine = wallet->IsMine(txin);
|
||||
if(mine == MINE_WATCH_ONLY) involvesWatchAddress = true;
|
||||
if(fAllFromMe > mine) fAllFromMe = mine;
|
||||
}
|
||||
|
||||
|
@ -87,6 +90,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
|
|||
BOOST_FOREACH(const CTxOut& txout, wtx.vout)
|
||||
{
|
||||
isminetype mine = wallet->IsMine(txout);
|
||||
if(mine == MINE_WATCH_ONLY) involvesWatchAddress = true;
|
||||
if(fAllToMe > mine) fAllToMe = mine;
|
||||
}
|
||||
|
||||
|
@ -97,6 +101,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
|
|||
|
||||
parts.append(TransactionRecord(hash, nTime, TransactionRecord::SendToSelf, "",
|
||||
-(nDebit - nChange), nCredit - nChange));
|
||||
parts.last().involvesWatchAddress = involvesWatchAddress;
|
||||
}
|
||||
else if (fAllFromMe)
|
||||
{
|
||||
|
@ -141,6 +146,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
|
|||
}
|
||||
sub.debit = -nValue;
|
||||
|
||||
sub.involvesWatchAddress = involvesWatchAddress;
|
||||
parts.append(sub);
|
||||
}
|
||||
}
|
||||
|
@ -150,6 +156,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
|
|||
// Mixed debit transaction, can't break down payees
|
||||
//
|
||||
parts.append(TransactionRecord(hash, nTime, TransactionRecord::Other, "", nNet, 0));
|
||||
parts.last().involvesWatchAddress = involvesWatchAddress;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -137,6 +137,9 @@ public:
|
|||
/** Status: can change with block chain update */
|
||||
TransactionStatus status;
|
||||
|
||||
/** Whether the transaction was sent/received with a watch-only address */
|
||||
bool involvesWatchAddress;
|
||||
|
||||
/** Return the unique identifier for this transaction (part) */
|
||||
QString getTxID() const;
|
||||
|
||||
|
|
|
@ -390,19 +390,22 @@ QVariant TransactionTableModel::txAddressDecoration(const TransactionRecord *wtx
|
|||
|
||||
QString TransactionTableModel::formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const
|
||||
{
|
||||
// mark transactions involving watch-only addresses:
|
||||
QString watchAddress = wtx->involvesWatchAddress ? " (w) " : "";
|
||||
|
||||
switch(wtx->type)
|
||||
{
|
||||
case TransactionRecord::RecvFromOther:
|
||||
return QString::fromStdString(wtx->address);
|
||||
return QString::fromStdString(wtx->address) + watchAddress;
|
||||
case TransactionRecord::RecvWithAddress:
|
||||
case TransactionRecord::SendToAddress:
|
||||
case TransactionRecord::Generated:
|
||||
return lookupAddress(wtx->address, tooltip);
|
||||
return lookupAddress(wtx->address, tooltip) + watchAddress;
|
||||
case TransactionRecord::SendToOther:
|
||||
return QString::fromStdString(wtx->address);
|
||||
return QString::fromStdString(wtx->address) + watchAddress;
|
||||
case TransactionRecord::SendToSelf:
|
||||
default:
|
||||
return tr("(n/a)");
|
||||
return tr("(n/a)") + watchAddress;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue