Test RandomX generateblock RPC

This commit is contained in:
Capri 2026-09-16 19:40:51 +00:00
commit 3004998f83
Signed by: VextaProject
SSH key fingerprint: SHA256:739BZv8LvIDY2tR7lXLy/IQ6MaGTQtYcG9GNvCjmpVM

View file

@ -34,6 +34,17 @@ class RandomXGetBlockTemplateTest(DigiByteTestFramework):
"randomx",
)
self.log.info("RandomX generateblock is rejected before activation")
assert_raises_rpc_error(
-8,
"RandomX is not active yet",
node.generateblock,
ADDRESS_BCRT1_UNSPENDABLE_DESCRIPTOR,
[],
"randomx",
invalid_call=False,
)
self.log.info("Default GBT remains SHA256D before activation")
sha_template = node.getblocktemplate(NORMAL_GBT_REQUEST_PARAMS)
assert_equal(sha_template["height"], 1)
@ -264,6 +275,26 @@ class RandomXGetBlockTemplateTest(DigiByteTestFramework):
assert_equal(reloaded_block["pow_algo"], "randomx")
assert_equal(reloaded_block["pow_hash"], mined_block["pow_hash"])
self.log.info("generateblock mines a real RandomX block")
generated = self.generateblock(
node,
ADDRESS_BCRT1_UNSPENDABLE_DESCRIPTOR,
[],
"randomx",
sync_fun=self.no_op,
)
assert_equal(node.getblockcount(), 6)
generated_block = node.getblock(generated["hash"])
assert_equal(
generated_block["version"] & BLOCK_VERSION_ALGO,
BLOCK_VERSION_RANDOMX,
)
assert_equal(generated_block["pow_algo_id"], 1)
assert_equal(generated_block["pow_algo"], "randomx")
assert generated_block["pow_hash"] is not None
assert generated_block["pow_hash"] != generated_block["hash"]
if __name__ == "__main__":
RandomXGetBlockTemplateTest().main()