Test rejection of unknown PoW algorithms

This commit is contained in:
Capri 2026-09-16 18:02:25 +00:00
commit cc320f4980
Signed by: VextaProject
SSH key fingerprint: SHA256:739BZv8LvIDY2tR7lXLy/IQ6MaGTQtYcG9GNvCjmpVM

View file

@ -336,6 +336,36 @@ BOOST_AUTO_TEST_CASE(mempool_locks_reorg)
}
}
BOOST_AUTO_TEST_CASE(unknown_pow_algo_rejected)
{
const uint256 genesis_hash = Params().GenesisBlock().GetHash();
auto block = GoodBlock(genesis_hash);
CBlockHeader header = block->GetBlockHeader();
// Use an unsupported algorithm bit pattern.
header.nVersion &= ~BLOCK_VERSION_ALGO;
header.nVersion |= (3 << 8);
BOOST_REQUIRE_EQUAL(header.GetAlgo(), ALGO_UNKNOWN);
BlockValidationState state;
const std::vector<CBlockHeader> headers{header};
BOOST_CHECK(!Assert(m_node.chainman)->ProcessNewBlockHeaders(
headers,
state,
Params()));
BOOST_CHECK(
state.GetResult() ==
BlockValidationResult::BLOCK_INVALID_HEADER);
BOOST_CHECK_EQUAL(
state.GetRejectReason(),
"unknown-pow-algo");
}
BOOST_AUTO_TEST_CASE(witness_commitment_index)
{
CScript pubKey;