@ -1367,7 +1367,7 @@ static uint64_t decodeRct(const rct::rctSig & rv, const crypto::key_derivation &
}
}
//----------------------------------------------------------------------------------------------------
void wallet2 : : scan_output ( const cryptonote : : transaction & tx , const crypto : : public_key & tx_pub_key , size_t i , tx_scan_info_t & tx_scan_info , int & num_vouts_received , std : : unordered_map < cryptonote : : subaddress_index , uint64_t > & tx_money_got_in_outs , std : : vector < size_t > & outs )
void wallet2 : : scan_output ( const cryptonote : : transaction & tx , const crypto : : public_key & tx_pub_key , size_t i , tx_scan_info_t & tx_scan_info , int & num_vouts_received , std : : unordered_map < cryptonote : : subaddress_index , uint64_t > & tx_money_got_in_outs , std : : vector < size_t > & outs , bool pool )
{
THROW_WALLET_EXCEPTION_IF ( i > = tx . vout . size ( ) , error : : wallet_internal_error , " Invalid vout index " ) ;
@ -1378,7 +1378,7 @@ void wallet2::scan_output(const cryptonote::transaction &tx, const crypto::publi
CRITICAL_REGION_LOCAL ( password_lock ) ;
if ( ! m_encrypt_keys_after_refresh )
{
boost : : optional < epee : : wipeable_string > pwd = m_callback - > on_get_password ( " output received " ) ;
boost : : optional < epee : : wipeable_string > pwd = m_callback - > on_get_password ( pool ? " output found in pool " : " output received " ) ;
THROW_WALLET_EXCEPTION_IF ( ! pwd , error : : password_needed , tr ( " Password is needed to compute key image for incoming monero " ) ) ;
THROW_WALLET_EXCEPTION_IF ( ! verify_password ( * pwd ) , error : : password_needed , tr ( " Invalid password: password is needed to compute key image for incoming monero " ) ) ;
decrypt_keys ( * pwd ) ;
@ -1582,7 +1582,7 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
if ( tx_scan_info [ i ] . received )
{
hwdev . conceal_derivation ( tx_scan_info [ i ] . received - > derivation , tx_pub_key , additional_tx_pub_keys . data , derivation , additional_derivations ) ;
scan_output ( tx , tx_pub_key , i , tx_scan_info [ i ] , num_vouts_received , tx_money_got_in_outs , outs );
scan_output ( tx , tx_pub_key , i , tx_scan_info [ i ] , num_vouts_received , tx_money_got_in_outs , outs , pool );
}
}
}
@ -1605,7 +1605,7 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
if ( tx_scan_info [ i ] . received )
{
hwdev . conceal_derivation ( tx_scan_info [ i ] . received - > derivation , tx_pub_key , additional_tx_pub_keys . data , derivation , additional_derivations ) ;
scan_output ( tx , tx_pub_key , i , tx_scan_info [ i ] , num_vouts_received , tx_money_got_in_outs , outs );
scan_output ( tx , tx_pub_key , i , tx_scan_info [ i ] , num_vouts_received , tx_money_got_in_outs , outs , pool );
}
}
}
@ -1621,7 +1621,7 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
boost : : unique_lock < hw : : device > hwdev_lock ( hwdev ) ;
hwdev . set_mode ( hw : : device : : NONE ) ;
hwdev . conceal_derivation ( tx_scan_info [ i ] . received - > derivation , tx_pub_key , additional_tx_pub_keys . data , derivation , additional_derivations ) ;
scan_output ( tx , tx_pub_key , i , tx_scan_info [ i ] , num_vouts_received , tx_money_got_in_outs , outs );
scan_output ( tx , tx_pub_key , i , tx_scan_info [ i ] , num_vouts_received , tx_money_got_in_outs , outs , pool );
}
}
}
@ -2715,7 +2715,7 @@ std::shared_ptr<std::map<std::pair<uint64_t, uint64_t>, size_t>> wallet2::create
return cache ;
}
//----------------------------------------------------------------------------------------------------
void wallet2 : : refresh ( bool trusted_daemon , uint64_t start_height , uint64_t & blocks_fetched , bool & received_money )
void wallet2 : : refresh ( bool trusted_daemon , uint64_t start_height , uint64_t & blocks_fetched , bool & received_money , bool check_pool )
{
if ( m_light_wallet ) {
@ -2897,7 +2897,7 @@ void wallet2::refresh(bool trusted_daemon, uint64_t start_height, uint64_t & blo
try
{
// If stop() is called we don't need to check pending transactions
if ( m_run . load ( std : : memory_order_relaxed ) )
if ( check_pool & & m_run . load ( std : : memory_order_relaxed ) )
update_pool_state ( refreshed ) ;
}
catch ( . . . )