bip-0375/deps/dleq.py copied dleq_* functions from bip-0374/reference.py and could go out of sync (#2262, #2304). Replace with a loader so the validator uses bip-0374/reference.py.
To run the tests:
python bip-0375/test_runner.py
cc BIP authors @andrewtoth, @achow101, @josibake for feedback
bip-0375/deps/dleq.py was a copy of bip-0374/reference.py
and could go out of sync. Replace the copy with a loader so
the validator always uses the current BIP-374 reference.py.
tACK 503119d
I suggest also dropping bip-0375/deps/secp256k1lab in this PR, with its README entry, and pointing its path in test_runner.py to bip-0374/secp256k1lab/src. I tried this locally and the 43 tests pass. The path change is needed: with the copy dropped and the path unchanged, importing validator.inputs before deps.dleq fails with ModuleNotFoundError: No module named 'secp256k1lab'.
At 503119d that copy is no longer used. deps/dleq.py loads bip-0374/reference.py, which puts bip-0374/secp256k1lab/src at the front of sys.path. This happens before the validator's first secp256k1lab import. So the validator already runs on BIP-374's copy, as python3 -v bip-0375/test_runner.py shows. The tests pass either way because the two copies are identical today. If they drift apart, no test will notice, and the README will still list the unused copy as a dependency.