diff --git a/ci/test/04_install.sh b/ci/test/04_install.sh index e409df62eb..7df24e4490 100755 --- a/ci/test/04_install.sh +++ b/ci/test/04_install.sh @@ -90,13 +90,13 @@ CI_EXEC df -h if [ "$RUN_FUZZ_TESTS" = "true" ]; then export DIR_FUZZ_IN=${DIR_QA_ASSETS}/fuzz_seed_corpus/ if [ ! -d "$DIR_FUZZ_IN" ]; then - CI_EXEC git clone --depth=1 https://github.com/bitcoin-core/qa-assets "${DIR_QA_ASSETS}" + CI_EXEC git clone --depth=1 https://github.com/ElementsProject/qa-assets "${DIR_QA_ASSETS}" fi elif [ "$RUN_UNIT_TESTS" = "true" ] || [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then export DIR_UNIT_TEST_DATA=${DIR_QA_ASSETS}/unit_test_data/ if [ ! -d "$DIR_UNIT_TEST_DATA" ]; then CI_EXEC mkdir -p "$DIR_UNIT_TEST_DATA" - CI_EXEC curl --location --fail https://github.com/bitcoin-core/qa-assets/raw/main/unit_test_data/script_assets_test.json -o "${DIR_UNIT_TEST_DATA}/script_assets_test.json" + CI_EXEC curl --location --fail https://github.com/ElementsProject/qa-assets/raw/main/unit_test_data/script_assets_test.json -o "${DIR_UNIT_TEST_DATA}/script_assets_test.json" fi fi diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp index cfb489685a..2cb81e4d94 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -1686,7 +1686,7 @@ static void AssetTest(const UniValue& test) size_t idx = test["index"].get_int64(); uint32_t test_flags{ParseScriptFlags(test["flags"].get_str())}; bool fin = test.exists("final") && test["final"].get_bool(); - // ELEMENTS FIXME: update feature_taproot.py --dumptests to actually output these + // ELEMENTS: feature_taproot.py --dumptests outputs this field uint256 hash_genesis_block = test.exists("hash_genesis_block") ? uint256S(test["hash_genesis_block"].get_str()) : uint256{}; if (test.exists("success")) { @@ -1727,6 +1727,8 @@ BOOST_AUTO_TEST_CASE(script_assets_test) { // See src/test/fuzz/script_assets_test_minimizer.cpp for information on how to generate // the script_assets_test.json file used by this test. + // ELEMENTS: qa-assets repo can be cloned here https://github.com/ElementsProject/qa-assets + // then set DIR_UNIT_TEST_DATA env var to /path/to/qa-assets/unit_test_data when running this test const char* dir = std::getenv("DIR_UNIT_TEST_DATA"); BOOST_WARN_MESSAGE(dir != nullptr, "Variable DIR_UNIT_TEST_DATA unset, skipping script_assets_test"); @@ -1746,12 +1748,11 @@ BOOST_AUTO_TEST_CASE(script_assets_test) BOOST_CHECK(tests.isArray()); BOOST_CHECK(tests.size() > 0); -/* - ELEMENTS: temporarily disabled until we implement the new Taproot sighash and upload new qa-assets + g_con_elementsmode = true; for (size_t i = 0; i < tests.size(); i++) { AssetTest(tests[i]); } -*/ + g_con_elementsmode = false; file.close(); } diff --git a/test/functional/feature_taproot.py b/test/functional/feature_taproot.py index bce612a2f6..3c16c1f078 100755 --- a/test/functional/feature_taproot.py +++ b/test/functional/feature_taproot.py @@ -21,6 +21,7 @@ from test_framework.messages import ( CTxOut, CTxOutValue, CTxOutWitness, + ser_uint256, uint256_from_str, SEQUENCE_FINAL, ) @@ -1225,12 +1226,15 @@ def dump_json_test(tx, input_utxos, idx, success, failure): # Determine flags to dump flags = LEGACY_FLAGS if spender.comment.startswith("legacy/") or spender.comment.startswith("inactive/") else TAPROOT_FLAGS + hash_genesis_block = bytearray(ser_uint256(g_genesis_hash)) + hash_genesis_block.reverse() fields = [ ("tx", tx.serialize().hex()), ("prevouts", [x.output.serialize().hex() for x in input_utxos]), ("index", idx), ("flags", flags), - ("comment", spender.comment) + ("comment", spender.comment), + ("hash_genesis_block", hash_genesis_block.hex()) ] # The "final" field indicates that a spend should be always valid, even with more validation flags enabled