Merge branch 'decomposetransfix' of https://github.com/laanwj/bitcoin

This commit is contained in:
Gavin Andresen 2012-02-06 14:50:59 -05:00
commit 30999ec6f9

View File

@ -47,49 +47,35 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *
// //
// Credit // Credit
// //
TransactionRecord sub(hash, nTime); BOOST_FOREACH(const CTxOut& txout, wtx.vout)
sub.credit = nNet;
if (wtx.IsCoinBase())
{ {
// Generated if(wallet->IsMine(txout))
sub.type = TransactionRecord::Generated;
if (nCredit == 0)
{ {
int64 nUnmatured = 0; TransactionRecord sub(hash, nTime);
BOOST_FOREACH(const CTxOut& txout, wtx.vout) CBitcoinAddress address;
nUnmatured += wallet->GetCredit(txout); sub.idx = parts.size(); // sequence number
sub.credit = nUnmatured; sub.credit = txout.nValue;
} if (wtx.IsCoinBase())
}
else
{
bool foundAddress = false;
// Received by Bitcoin Address
BOOST_FOREACH(const CTxOut& txout, wtx.vout)
{
if(wallet->IsMine(txout))
{ {
CBitcoinAddress address; // Generated
if (ExtractAddress(txout.scriptPubKey, address) && wallet->HaveKey(address)) sub.type = TransactionRecord::Generated;
{
sub.type = TransactionRecord::RecvWithAddress;
sub.address = address.ToString();
foundAddress = true;
break;
}
} }
} else if (ExtractAddress(txout.scriptPubKey, address) && wallet->HaveKey(address))
if(!foundAddress) {
{ // Received by Bitcoin Address
// Received by IP connection, or other non-address transaction like OP_EVAL sub.type = TransactionRecord::RecvWithAddress;
sub.type = TransactionRecord::RecvFromOther; sub.address = address.ToString();
sub.address = mapValue["from"]; }
else
{
// Received by IP connection (deprecated features), or a multisignature or other non-simple transaction
sub.type = TransactionRecord::RecvFromOther;
sub.address = mapValue["from"];
}
parts.append(sub);
} }
} }
parts.append(sub);
} }
else else
{ {