From d1e066c609485e92b7956f5edd92b02235ceb86e Mon Sep 17 00:00:00 2001 From: sowle Date: Wed, 2 Aug 2023 22:55:09 +0200 Subject: [PATCH] coretests: various fixes for alias tests --- tests/core_tests/alias_tests.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/tests/core_tests/alias_tests.cpp b/tests/core_tests/alias_tests.cpp index 039f65eb..170a92f1 100644 --- a/tests/core_tests/alias_tests.cpp +++ b/tests/core_tests/alias_tests.cpp @@ -926,6 +926,7 @@ gen_alias_too_much_reward::gen_alias_too_much_reward() bool gen_alias_too_much_reward::generate(std::vector& events) const { // pay for alias far too much and see, if it's ok + // UPDATE: since HF4 it's not ok, the reward must be precise uint64_t ts = test_core_time::get_time(); @@ -1039,12 +1040,12 @@ bool gen_alias_too_small_reward::generate(std::vector& events) std::list txs; for (size_t i = 0; i < aliases_count; ++i) { - uint64_t alias_reward = get_alias_coast_from_fee(aliases[i].name, TESTS_DEFAULT_FEE); + uint64_t alias_reward = get_alias_coast_from_fee(aliases[i].name, ALIAS_VERY_INITAL_COAST); transaction tx = AUTO_VAL_INIT(tx); - DO_CALLBACK(events, "mark_invalid_tx"); // should be rejected, because it's paid TX_POOL_MINIMUM_FEE / 10 - if (!make_tx_reg_alias(events, generator, blk_1, aliases[i].name, aliases[i].addr, ALIAS_VERY_INITAL_COAST / 10, miner_acc, tx, used_sources)) - return false; + DO_CALLBACK(events, "mark_invalid_tx"); // should be rejected, because it's paid ALIAS_VERY_INITAL_COAST / 10 + r = make_tx_reg_alias(events, generator, blk_1, aliases[i].name, aliases[i].addr, ALIAS_VERY_INITAL_COAST / 10, miner_acc, tx, used_sources); + CHECK_AND_ASSERT_MES(r, false, "make_tx_reg_alias failed, i: " << i); // this block commented due to new fee median rules, TODO: review // DO_CALLBACK(events, "mark_invalid_tx"); // should be rejected, because it's paid TX_POOL_MINIMUM_FEE / 10 less then required @@ -1052,8 +1053,9 @@ bool gen_alias_too_small_reward::generate(std::vector& events) // return false; // should be accepted - if (!make_tx_reg_alias(events, generator, blk_1, aliases[i].name, aliases[i].addr, alias_reward, miner_acc, tx, used_sources)) - return false; + tx = transaction{}; + r = make_tx_reg_alias(events, generator, blk_1, aliases[i].name, aliases[i].addr, alias_reward, miner_acc, tx, used_sources); + CHECK_AND_ASSERT_MES(r, false, "make_tx_reg_alias failed, i: " << i); txs.push_back(tx); } @@ -1106,11 +1108,13 @@ bool gen_alias_too_small_reward::make_tx_reg_alias(std::vector std::vector sources; uint64_t amount = alias_reward + TESTS_DEFAULT_FEE; - r = fill_tx_sources(sources, events, prev_block, miner_acc.get_keys(), amount, 0, used_sources); + r = fill_tx_sources(sources, events, prev_block, miner_acc.get_keys(), amount, 0, used_sources, /* check for spends: */ true, /* check for unlock time: */ true); CHECK_AND_ASSERT_MES(r, false, "fill_tx_sources failed, requested money: " << print_money_brief(amount)); std::vector destinations; - destinations.push_back(tx_destination_entry(alias_reward, reward_acc.get_public_address())); + tx_destination_entry burn_dst(alias_reward, reward_acc.get_public_address()); + burn_dst.flags = tx_destination_entry_flags::tdef_explicit_native_asset_id; // burning outs need to have this flag to facilitate balance check + destinations.push_back(burn_dst); uint64_t sources_amount = get_sources_total_amount(sources); if (sources_amount > alias_reward + TESTS_DEFAULT_FEE) destinations.push_back(tx_destination_entry(sources_amount - (alias_reward + TESTS_DEFAULT_FEE), miner_acc.get_public_address())); // change @@ -1119,6 +1123,7 @@ bool gen_alias_too_small_reward::make_tx_reg_alias(std::vector uint64_t tx_version = get_tx_version(get_block_height(prev_block), m_hardforks); r = construct_tx(miner_acc.get_keys(), sources, destinations, extra, empty_attachment, tx, tx_version, stub, uint64_t(0)); CHECK_AND_ASSERT_MES(r, false, "construct_tx failed"); + PRINT_EVENT_N_TEXT(events, "make_tx_reg_alias -> construct_tx()"); events.push_back(tx); append_vector_by_another_vector(used_sources, sources); @@ -1217,7 +1222,7 @@ bool gen_alias_switch_and_check_block_template::generate(std::vector