@ -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
sub . type = TransactionRecord : : Generated ;
if ( nCredit = = 0 )
{
int64 nUnmatured = 0 ;
BOOST_FOREACH ( const CTxOut & txout , wtx . vout )
nUnmatured + = wallet - > GetCredit ( txout ) ;
sub . credit = nUnmatured ;
}
}
else
{
{
bool foundAddress = false ;
if ( wallet - > IsMine ( txout ) )
// Received by Bitcoin Address
BOOST_FOREACH ( const CTxOut & txout , wtx . vout )
{
{
if ( wallet - > IsMine ( txout ) )
TransactionRecord sub ( hash , nTime ) ;
CBitcoinAddress address ;
sub . idx = parts . size ( ) ; // sequence number
sub . credit = txout . nValue ;
if ( wtx . IsCoinBase ( ) )
{
{
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
{
{