aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2020-08-14 21:12:11 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2020-08-21 12:36:53 +0000
commit844fb4e940478ca0ddf31115018326d667edc549 (patch)
treea851b659a5daf2b900eea6db65399eb9aaa8bcc8 /tests
parentMerge pull request #6586 (diff)
downloadmonero-844fb4e940478ca0ddf31115018326d667edc549.tar.xz
enforce claiming maximum coinbase amount
Claiming a slightly lesser amount does not yield the size gains that were seen pre rct, so this closes a fingerprinting vector
Diffstat (limited to 'tests')
-rw-r--r--tests/core_tests/block_validation.cpp16
-rw-r--r--tests/core_tests/block_validation.h12
-rw-r--r--tests/core_tests/chaingen_main.cpp2
3 files changed, 30 insertions, 0 deletions
diff --git a/tests/core_tests/block_validation.cpp b/tests/core_tests/block_validation.cpp
index 10b1b9af4..fb8ddbe11 100644
--- a/tests/core_tests/block_validation.cpp
+++ b/tests/core_tests/block_validation.cpp
@@ -655,3 +655,19 @@ bool gen_block_late_v1_coinbase_tx::generate(std::vector<test_event_entry>& even
return true;
}
+
+bool gen_block_low_coinbase::generate(std::vector<test_event_entry>& events) const
+{
+ BLOCK_VALIDATION_INIT_GENERATE();
+
+ block blk_1;
+ std::vector<size_t> block_weights;
+ generator.construct_block(blk_1, cryptonote::get_block_height(blk_0) + 1, cryptonote::get_block_hash(blk_0),
+ miner_account, blk_0.timestamp + DIFFICULTY_TARGET_V2, COIN + generator.get_already_generated_coins(cryptonote::get_block_hash(blk_0)),
+ block_weights, {}, HF_VERSION_EXACT_COINBASE);
+ events.push_back(blk_1);
+
+ DO_CALLBACK(events, "check_block_purged");
+
+ return true;
+}
diff --git a/tests/core_tests/block_validation.h b/tests/core_tests/block_validation.h
index 39eba0829..0dd4e145c 100644
--- a/tests/core_tests/block_validation.h
+++ b/tests/core_tests/block_validation.h
@@ -218,3 +218,15 @@ struct get_test_options<gen_block_late_v1_coinbase_tx> {
hard_forks, 0
};
};
+
+struct gen_block_low_coinbase : public gen_block_verification_base<1>
+{
+ bool generate(std::vector<test_event_entry>& events) const;
+};
+template<>
+struct get_test_options<gen_block_low_coinbase> {
+ const std::pair<uint8_t, uint64_t> hard_forks[3] = {std::make_pair(1, 0), std::make_pair(HF_VERSION_EXACT_COINBASE, 1), std::make_pair(0, 0)};
+ const cryptonote::test_options test_options = {
+ hard_forks, 0
+ };
+};
diff --git a/tests/core_tests/chaingen_main.cpp b/tests/core_tests/chaingen_main.cpp
index 38382b95f..9895d4814 100644
--- a/tests/core_tests/chaingen_main.cpp
+++ b/tests/core_tests/chaingen_main.cpp
@@ -264,6 +264,8 @@ int main(int argc, char* argv[])
GENERATE_AND_PLAY(gen_bp_tx_invalid_wrong_amount);
GENERATE_AND_PLAY(gen_bp_tx_invalid_borromean_type);
+ GENERATE_AND_PLAY(gen_block_low_coinbase);
+
el::Level level = (failed_tests.empty() ? el::Level::Info : el::Level::Error);
if (!list_tests)
{