diff --git a/src/currency_core/blockchain_storage.h b/src/currency_core/blockchain_storage.h index 0a584e5f..5bf57ad4 100644 --- a/src/currency_core/blockchain_storage.h +++ b/src/currency_core/blockchain_storage.h @@ -897,7 +897,7 @@ namespace currency { //with hard fork 4 make it network rule to have at least 10 confirmations - if (this->get_current_blockchain_size() - max_related_block_height > CURRENCY_HF4_MANDATORY_MIN_COINAGE) + if (this->get_current_blockchain_size() - max_related_block_height < CURRENCY_HF4_MANDATORY_MIN_COINAGE) { LOG_ERROR("Coinage rule broken(mainblock): h = " << this->get_current_blockchain_size() << ", max_related_block_height=" << max_related_block_height << ", tx: " << get_transaction_hash(validated_tx)); return false; diff --git a/tests/core_tests/chaingen_main.cpp b/tests/core_tests/chaingen_main.cpp index 71f53761..74d3d8f7 100644 --- a/tests/core_tests/chaingen_main.cpp +++ b/tests/core_tests/chaingen_main.cpp @@ -1232,7 +1232,7 @@ int main(int argc, char* argv[]) GENERATE_AND_PLAY(hard_fork_2_tx_payer_in_wallet); GENERATE_AND_PLAY(hard_fork_2_tx_receiver_in_wallet); GENERATE_AND_PLAY(hard_fork_2_tx_extra_alias_entry_in_wallet); - GENERATE_AND_PLAY(hard_fork_2_auditable_addresses_basics); + GENERATE_AND_PLAY_HF(hard_fork_2_auditable_addresses_basics, "2-*"); GENERATE_AND_PLAY(hard_fork_2_no_new_structures_before_hf); GENERATE_AND_PLAY(hard_fork_2_awo_wallets_basic_test); GENERATE_AND_PLAY(hard_fork_2_awo_wallets_basic_test); @@ -1250,7 +1250,7 @@ int main(int argc, char* argv[]) GENERATE_AND_PLAY(atomic_test_altchain_simple); GENERATE_AND_PLAY(atomic_test_check_hardfork_rules); - GENERATE_AND_PLAY(isolate_auditable_and_proof); + GENERATE_AND_PLAY_HF(isolate_auditable_and_proof, "2-*"); GENERATE_AND_PLAY(zarcanum_basic_test); diff --git a/tests/core_tests/hard_fork_2.cpp b/tests/core_tests/hard_fork_2.cpp index 92d2d130..b4700f0e 100644 --- a/tests/core_tests/hard_fork_2.cpp +++ b/tests/core_tests/hard_fork_2.cpp @@ -612,7 +612,6 @@ bool hard_fork_2_tx_extra_alias_entry_in_wallet::c1(currency::core& c, size_t ev //------------------------------------------------------------------------------ hard_fork_2_auditable_addresses_basics::hard_fork_2_auditable_addresses_basics() - : hard_fork_2_base_test(23) { REGISTER_CALLBACK_METHOD(hard_fork_2_auditable_addresses_basics, c1); } @@ -644,6 +643,8 @@ bool hard_fork_2_auditable_addresses_basics::generate(std::vector(out).amount != MK_TEST_COINS(5)) continue; // skip change uint8_t mix_attr = boost::get(boost::get(out).target).mix_attr; @@ -677,6 +678,9 @@ bool hard_fork_2_auditable_addresses_basics::c1(currency::core& c, size_t ev_ind // make sure all Bob's outputs has mix_attr = 1 for (auto& out : tx.vout) { + if (out.type() != typeid(tx_out_bare)) + continue; // skip if we're in postzarcanum era + if (boost::get(out).amount != MK_TEST_COINS(1)) continue; // skip change uint8_t mix_attr = boost::get(boost::get(out).target).mix_attr; @@ -702,6 +706,9 @@ bool hard_fork_2_auditable_addresses_basics::c1(currency::core& c, size_t ev_ind // make sure all Bob's outputs has mix_attr = 1 for (auto& out : tx.vout) { + if (out.type() != typeid(tx_out_bare)) + continue; // skip if we're in postzarcanum era + if (boost::get(out).amount != MK_TEST_COINS(1)) continue; // skip change uint8_t mix_attr = boost::get(boost::get(out).target).mix_attr; diff --git a/tests/core_tests/hard_fork_2.h b/tests/core_tests/hard_fork_2.h index 849fc679..98b3b472 100644 --- a/tests/core_tests/hard_fork_2.h +++ b/tests/core_tests/hard_fork_2.h @@ -41,7 +41,7 @@ struct hard_fork_2_tx_extra_alias_entry_in_wallet : public hard_fork_2_base_test bool c1(currency::core& c, size_t ev_index, const std::vector& events); }; -struct hard_fork_2_auditable_addresses_basics : public hard_fork_2_base_test +struct hard_fork_2_auditable_addresses_basics : public wallet_test //hard_fork_2_base_test { hard_fork_2_auditable_addresses_basics(); bool generate(std::vector& events) const;