mirror of
https://github.com/bitcoin/bips.git
synced 2026-11-09 19:47:16 +00:00
Now PSBT_OUT_SP_V0_INFO provides labeled-spend public key not the base-spend public key. Modify test vector with labeled-spend key to the same recipient from: two sp outputs - output 0 uses label=3 / output 1 uses label=1 to: three sp outputs (same scan key) - output 0 uses label=1, outputs 1 and 2 uses label=2 (same spend key) This vector excercises the BIP375 sorting outputs with same scan key properly. The next commit will fix the validation logic and address this failing test. bump ChangeLog to 0.1.3
BIP-375 Validation Reference
A reference validation implementation for BIP-375: Sending Silent Payments with PSBTs.
Core Files
validator/bip352_crypto.py- Silent payment output script derivationvalidator/inputs.py- PSBT input utility functionsvalidator/psbt_bip375.py- BIP-375 specific PSBT/PSBTMap extensionsvalidator/validate_psbt.py- Main BIP-375 validation functionstest_runner.py- Test infrastructure (executable)
Dependencies
deps/bitcoin_test/psbt.py- Bitcoin test framework PSBT module - PR #21283deps/bitcoin_test/messages.py- Bitcoin test framework primitives and message structuresdeps/dleq.py- Reference DLEQ implementation from BIP-374deps/secp256k1lab/- vendored copy of secp256k1lab library at version 1.0.0
Testing
Run Tests
python test_runner.py # Run all tests
python test_runner.py -v # Verbose mode with detailed validation status
python test_runner.py -vv # More verbose with validation check failure reason
python test_runner.py -f vectors.json # Use custom test vector file
Generating Test Vectors
Test vectors were generated using test_generator.py