bool leveldb_validate_block::is_output_spent( const output_point& previous_output, size_t index_in_parent, size_t input_index) { // Search for double spends // This must be done in both chain AND orphan // Searching chain when this tx is an orphan is redundant but // it does not happen enough to care if (is_output_spent(previous_output)) return true; else if (orphan_is_spent(previous_output, index_in_parent, input_index)) return true; return false; }
bool validate_block_impl::is_output_spent( const chain::output_point& previous_output, size_t index_in_parent, size_t input_index) const { // Search for double spends. This must be done in both chain AND orphan. // Searching chain when this tx is an orphan is redundant but it does not // happen enough to care. if (is_output_spent(previous_output)) return true; if (orphan_is_spent(previous_output, index_in_parent, input_index)) return true; return false; }