mirror of
https://github.com/skot/ESP-Miner.git
synced 2025-03-26 17:51:45 +01:00
stratum: add an additional test to validate bm_job construction
This commit is contained in:
parent
d583332f3b
commit
3d6d27b101
@ -75,6 +75,31 @@ TEST_CASE("Validate bm job construction", "[mining]")
|
||||
TEST_ASSERT_EQUAL_UINT8_ARRAY(expected_midstate_bin, job.midstate, 32);
|
||||
}
|
||||
|
||||
// Values calculated from esp-miner/components/stratum/test/verifiers/bm1397.py
|
||||
TEST_CASE("Validate bm job construction 2", "[mining]")
|
||||
{
|
||||
const char * notify_json_str = "{\"id\":null,\"method\":\"mining.notify\","
|
||||
"\"params\":[\"21554471e8\",\"8bc8707eb169ad3bda101ae60c8d48bd00aff68a00006c8b0000000000000000\",\"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4b03d8130cfabe6d6db0ba74b36edc62c9268c945b53ebf1a7865b88bcdd40235a7a63d0f5ed5b6c400100000000000000\",\"e8714455212f736c7573682f00000000033de04728000000001976a9147c154ed1dc59609e3d26abb2df2ea3d587cd8c4188ac00000000000000002c6a4c2952534b424c4f434b3ae8c3686251b5ced65b6a65ea3e0491ac2975cd87c02b0640d3ec3c20005167770000000000000000266a24aa21a9eddffbecb5ef0a46324a3dd902fa84509a38d2c91548768845db5d6c2de0e33f6100000000\","
|
||||
"[\"8ef6b79382a1fc5152c7e69b2dd4e3795ed758d6fe7748ef4d96e3ad8ac180b8\",\"5b6e1cfecd94050b763c2c6a08d4caabd54daee665aa8e41b53b39ec76b62707\",\"f85b768f83fffbb3927f7f440cb57a5ed386f368aae88ad9b9d92e7bc1cdce15\",\"e51b9391c39019d8a2a27becc048cc770f5d33b49a29779fdc7bed04767ca962\",\"9f5d08316ead260455ec532a58935411a3eecf3c9948a52325de495d7dd7b776\",\"57e10cad23a646ad3a87fcd34eae454567dbd44946e746ee6310a86b98afa4ac\",\"f3b65cc08b25901b657efb22f0a9a23e1a61ce1e268f801d8cfe782b4a0c5e5d\",\"648e00fe2a57dca155c7d4260bc52273b28adb42e1bceb45d5ee03f4a4c5d174\",\"43ad393f7efe4b7a29775dbbc10b3b2737e9457764a7b39bc8ac6b470b968ac8\",\"4964b9b2bf601dfb2bd62067acafe556650412b1e6fe32df48c39310f7dc255d\",\"44d354ac57fcb68b408df7f5396122195384914dd2db13d5766c334fc48c2069\",\"568514a2db82a055772218f52db2f5fa157c37a9ba16c1a239819e57f0d16218\"],"
|
||||
"\"20000004\",\"1705ae3a\",\"6470e2a1\",true]}";
|
||||
mining_notify params = parse_mining_notify_message(notify_json_str);
|
||||
char * coinbase_tx = construct_coinbase_tx(params.coinbase_1, params.coinbase_2, "336508070fca95", "0000000000000000");
|
||||
char * merkle_root = calculate_merkle_root_hash(coinbase_tx, (uint8_t(*)[32])params.merkle_branches, params.n_merkle_branches);
|
||||
bm_job job = construct_bm_job(¶ms, merkle_root);
|
||||
|
||||
uint8_t expected_midstate_bin[32];
|
||||
hex2bin("5FD281AF6A1750EAEE502C04067738BD46C82FC22112FFE797CE7F035D276126", expected_midstate_bin, 32);
|
||||
// bytes are reversed for the midstate on the bm job command packet
|
||||
reverse_bytes(expected_midstate_bin, 32);
|
||||
TEST_ASSERT_EQUAL_UINT8_ARRAY(expected_midstate_bin, job.midstate, 32);
|
||||
TEST_ASSERT_EQUAL_UINT32(0x1705ae3a, job.target);
|
||||
TEST_ASSERT_EQUAL_UINT32(0x6470e2a1, job.ntime);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x8a, job.merkle_root[28]);
|
||||
TEST_ASSERT_EQUAL_UINT8(0xdd, job.merkle_root[29]);
|
||||
TEST_ASSERT_EQUAL_UINT8(0xa8, job.merkle_root[30]);
|
||||
TEST_ASSERT_EQUAL_UINT8(0x6a, job.merkle_root[31]);
|
||||
}
|
||||
|
||||
TEST_CASE("Test extranonce 2 generation", "[mining extranonce2]")
|
||||
{
|
||||
char * first = extranonce_2_generate(0, 4);
|
||||
|
Loading…
x
Reference in New Issue
Block a user