bool leveldb_validate_block::is_output_spent(
    const output_point& outpoint)
{
    input_point input_spend;
    if (!common_->fetch_spend(outpoint, input_spend))
        return false;
    // Lookup block height. Is the spend after the fork point?
    return transaction_exists(input_spend.hash);
}
bool validate_block_impl::is_output_spent(
    const chain::output_point& outpoint) const
{
    hash_digest out_hash;
    const auto result = chain_.get_outpoint_transaction(out_hash, outpoint);
    if (!result)
        return false;

    // Lookup block height. Is the spend after the fork point?
    return transaction_exists(out_hash);
}