aboutsummaryrefslogtreecommitdiff
path: root/src/qt/transactionrecord.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2011-12-28 11:14:05 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2011-12-28 11:14:05 +0100
commit56c6e3696d0f8e222395be00f9e532412781b339 (patch)
tree0e9a63c0a0e63ca2beafc4e954cb69bcddddc05f /src/qt/transactionrecord.cpp
parent625b56de6491170ad6a2e45c57d974fca6160750 (diff)
downloadbitcoin-56c6e3696d0f8e222395be00f9e532412781b339.tar.xz
Fix transaction type in UI: not all tx'es with "from"/"to" field are necessarily IP tx'es
- Also, prepare for OP_EVAL by calling all transactions without bitcoin address "SendToOther"/"RecvFromOther", (IP tx'es are so rare they can be put together with funky EV_EVAL scripts)
Diffstat (limited to 'src/qt/transactionrecord.cpp')
-rw-r--r--src/qt/transactionrecord.cpp39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp
index f3dbd45c6d..2cd135df34 100644
--- a/src/qt/transactionrecord.cpp
+++ b/src/qt/transactionrecord.cpp
@@ -64,17 +64,10 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
sub.credit = nUnmatured;
}
}
- else if (!mapValue["from"].empty() || !mapValue["message"].empty())
- {
- // Received by IP connection
- sub.type = TransactionRecord::RecvFromIP;
- if (!mapValue["from"].empty())
- sub.address = mapValue["from"];
- }
else
{
+ bool foundAddress = false;
// Received by Bitcoin Address
- sub.type = TransactionRecord::RecvWithAddress;
BOOST_FOREACH(const CTxOut& txout, wtx.vout)
{
if(wallet->IsMine(txout))
@@ -82,11 +75,19 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
CBitcoinAddress address;
if (ExtractAddress(txout.scriptPubKey, address) && wallet->HaveKey(address))
{
+ sub.type = TransactionRecord::RecvWithAddress;
sub.address = address.ToString();
+ foundAddress = true;
+ break;
}
- break;
}
}
+ if(!foundAddress)
+ {
+ // Received by IP connection, or other non-address transaction like OP_EVAL
+ sub.type = TransactionRecord::RecvFromOther;
+ sub.address = mapValue["from"];
+ }
}
parts.append(sub);
}
@@ -127,21 +128,19 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
// from a transaction sent back to our own address.
continue;
}
- else if(!mapValue["to"].empty())
+
+ CBitcoinAddress address;
+ if (ExtractAddress(txout.scriptPubKey, address))
{
- // Sent to IP
- sub.type = TransactionRecord::SendToIP;
- sub.address = mapValue["to"];
+ // Sent to Bitcoin Address
+ sub.type = TransactionRecord::SendToAddress;
+ sub.address = address.ToString();
}
else
{
- // Sent to Bitcoin Address
- sub.type = TransactionRecord::SendToAddress;
- CBitcoinAddress address;
- if (ExtractAddress(txout.scriptPubKey, address))
- {
- sub.address = address.ToString();
- }
+ // Sent to IP, or other non-address transaction like OP_EVAL
+ sub.type = TransactionRecord::SendToOther;
+ sub.address = mapValue["to"];
}
int64 nValue = txout.nValue;