{
if (wallet->mapAddressBook.count(address))
{
- strHTML += "<b>" + tr("From") + ":</b> " + tr("unknown") + "<br>";
+ for (unsigned int i = 0; i < wtx.vin.size(); i++)
+ {
+ uint256 hash;
+ const CTxIn& vin = wtx.vin[i];
+ hash.SetHex(vin.prevout.hash.ToString());
+ CTransaction wtxPrev;
+ uint256 hashBlock = 0;
+ if (!GetTransaction(hash, wtxPrev, hashBlock))
+ {
+ strHTML += "<b>" + tr("From") + ":</b> " + tr("unknown") + "<br>";
+ continue;
+ }
+ CTxDestination senderAddress;
+ if (!ExtractDestination(wtxPrev.vout[vin.prevout.n].scriptPubKey, senderAddress) )
+ {
+ strHTML += "<b>" + tr("From") + ":</b> " + tr("unknown") + "<br>";
+ }
+ else
+ {
+ strHTML += "<b>" + tr("From") + ":</b> ";
+ strHTML += GUIUtil::HtmlEscape(CBitcoinAddress(senderAddress).ToString());
+ strHTML += "<br>";
+ }
+ }
strHTML += "<b>" + tr("To") + ":</b> ";
strHTML += GUIUtil::HtmlEscape(CBitcoinAddress(address).ToString());
if (!wallet->mapAddressBook[address].empty())