Skip to content
Closed
Show file tree
Hide file tree
Changes from 242 commits
Commits
Show all changes
247 commits
Select commit Hold shift + click to select a range
3c3dc6d
test commit for develop branch
jo7ueb Aug 13, 2025
be2d032
chore: refactor imports & test tweaks before cert port
Aug 16, 2025
03983c2
feat(auth): add certificate module initial port
Aug 16, 2025
5746bf1
feat(auth): add certificate module initial port
Aug 16, 2025
db5b5f0
feat(auth): add certificate related modules (auth_message, cert_encry…
Aug 16, 2025
9fdd6b1
chore(keys): sync with upstream master version
Aug 16, 2025
d8e65d4
merge: resolve conflict in __init__.py, keep minimal initializer and …
Aug 16, 2025
c5d8ee1
Merge pull request #78 from bsv-blockchain/feature/auth/certificates-…
voyager1708 Aug 16, 2025
a7d758f
feat(certificates): add authhttp client, certificate utils and crypto…
Aug 19, 2025
fc1958b
refactor(auth): update authhttp client and utils
Aug 19, 2025
a10f65e
feat(primitives): add Encrypt-then-MAC helpers (aes_cbc_encrypt_mac /…
Aug 19, 2025
4a1fdb8
Update imports to absolute package paths. Refactor for clarity
Aug 20, 2025
f554350
feat(auth): concurrent sessions, handshake, cert request/response; wa…
Aug 20, 2025
3d088f8
Merge pull request #81 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 20, 2025
df60380
Refactor SimplifiedHTTPTransport: improve error handling and payload …
Aug 20, 2025
484144f
Merge pull request #82 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 20, 2025
5c64b00
fix(utils): Update utils module with latest changes and absolute imports
Aug 22, 2025
0998ea6
Merge pull request #83 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
fed14eb
feat(auth/clients): Add and update client modules under auth/clients
Aug 22, 2025
408c402
Merge pull request #84 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
f976fff
feat(auth/transports): Add and update modules under auth/transports
Aug 22, 2025
37691fb
Merge pull request #85 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
383cc1c
chore(auth): Translate Japanese comments and docstrings to English in…
Aug 22, 2025
0004fff
refactor: rename broadcaster modules, add compatibility re-export, an…
Aug 22, 2025
59bd409
Merge pull request #86 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
1d2038c
refactor(chaintrackers): update imports to absolute paths and clean u…
Aug 22, 2025
33e39cb
Merge pull request #87 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
9159928
chore(registry): translate comments to English and clean up code
Aug 22, 2025
c9c7e1a
Merge pull request #88 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
a51e21f
chore(identity): add and update identity module files
Aug 22, 2025
2cbd2e8
Merge pull request #89 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
7f8baf6
chore(keystore): add and update keystore module files
Aug 22, 2025
d0c6084
Merge pull request #90 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
00ba6f7
chore(auth): add and update auth module files
Aug 22, 2025
ce73fb1
Merge pull request #91 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
1c5c815
chore(storage): add and update storage module files
Aug 22, 2025
5cdeee6
Merge pull request #92 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
805801c
chore(script): add or update spend.py
Aug 22, 2025
0b96ded
refactor(transaction): reduce cognitive complexity, deduplicate liter…
Aug 22, 2025
672d287
chore(wallet): add and update wallet module files
Aug 22, 2025
7cf5728
Merge pull request #93 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
6687eb9
refactor(broadcasters): unify broadcaster_core and broadcaster_plugin…
Aug 22, 2025
32d7f74
chore(chaintrackers): update and maintain chaintrackers module files
Aug 22, 2025
cc82109
chore(wallet): update wallet_impl.py for broadcaster import unificati…
Aug 22, 2025
85541ee
chore(registry): update and maintain registry module files
Aug 22, 2025
0339313
chore(overlay): update and maintain overlay module files
Aug 22, 2025
086aee8
fix(broadcasters): import WhatsOnChainBroadcaster for default_broadca…
Aug 22, 2025
aac5fff
Merge pull request #94 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 22, 2025
f0b9f31
refactor: reorganize broadcaster modules and fix circular imports
Aug 23, 2025
3c380db
Merge pull request #95 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 23, 2025
35668c4
Refactor bsv: ensure unique context/basket and local output usage
Aug 28, 2025
c43010d
Merge pull request #96 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 28, 2025
6277364
Script class enhancement and core classes type safety - Add from_byte…
Aug 28, 2025
6f974cd
Merge pull request #97 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 29, 2025
06dc96a
feat: Enhance Script type safety - replace bytes with Script objects
Aug 29, 2025
eb0f066
Merge pull request #98 from voyager1708/feature/auth/certificates-port
voyager1708 Aug 29, 2025
98c2a51
Merge pull request #102 from voyager1708/feature/auth/certificates-port
voyager1708 Oct 9, 2025
ed793ff
Refactor `WalletInterface` to use `Protocol` for type safety and add …
ALiberalVoluntarist Oct 15, 2025
883b368
Enhance `WalletInterface` implementation, add cryptographic utilities…
ALiberalVoluntarist Oct 15, 2025
c6a4259
Merge pull request #103 from bsv-blockchain/feature/middleware_feedback
ALiberalVoluntarist Oct 15, 2025
15f923e
Refactor auth message constants for better maintainability
defiant1708 Oct 20, 2025
a0a7009
Merge pull request #105 from voyager1708/feature/auth/certificates-port
voyager1708 Oct 20, 2025
306c0f6
chore(auth): remove backup file bsv/auth/peer.py.bak
defiant1708 Oct 20, 2025
0118da6
Merge pull request #107 from voyager1708/remove-peer-py-bak
voyager1708 Oct 20, 2025
e7d25d7
Add unit tests and vector generation for WOC, auth, and certificates
defiant1708 Oct 20, 2025
64527f9
Merge branch 'develop-port' of https://github.com/bsv-blockchain/py-s…
defiant1708 Oct 20, 2025
7c9961c
test: restore classic test suite at project root (21 files)
defiant1708 Oct 20, 2025
78029ce
Merge pull request #110 from voyager1708/restore-tests-and-peer-bak
voyager1708 Oct 20, 2025
2a69ffe
chore(tests): reflect server tests folder as source of truth (#116)
voyager1708 Oct 30, 2025
a944eb8
Refactor `WalletInterface` and cryptographic utilities for BRC-100 co…
ALiberalVoluntarist Nov 4, 2025
8de3230
fix incompatible protocol name length (#111)
jo7ueb Nov 6, 2025
bbf246c
add abstract method current_height which is present in ts-sdk, but no…
jo7ueb Nov 6, 2025
ac4aa32
Fixed 12/13 failing tests
F1r3Hydr4nt Nov 11, 2025
9885884
Fixed the serialisation bug
F1r3Hydr4nt Nov 11, 2025
2ba2a58
Increased pass rate with some bug fixes and test changes. Removed war…
F1r3Hydr4nt Nov 12, 2025
954b0a6
Added scripts and test-manual-review.md (not to be regenerated)
F1r3Hydr4nt Nov 12, 2025
03ec64b
CounterpartyType fixes + current working script
F1r3Hydr4nt Nov 12, 2025
01a7bb8
Revert incorrect CounterpartyType changes in test_pushdrop_parity.py
F1r3Hydr4nt Nov 12, 2025
a81a404
Manual script working correctly
F1r3Hydr4nt Nov 12, 2025
79a4ab9
Saving 20 odd reviews
F1r3Hydr4nt Nov 12, 2025
8a2d774
Develop port (#117)
voyager1708 Nov 12, 2025
f50fe51
Add utility and builder methods to Beef class
voyager1708 Nov 12, 2025
2b4c10f
Develop port (#119)
voyager1708 Nov 12, 2025
7c70076
Develop port (#120)
voyager1708 Nov 13, 2025
d4e83f2
Develop port (#121)
voyager1708 Nov 13, 2025
425ce3c
Develop port (#122)
voyager1708 Nov 13, 2025
3a378a4
201 test reviewed!
F1r3Hydr4nt Nov 12, 2025
20b1185
209
F1r3Hydr4nt Nov 12, 2025
82554dc
356
F1r3Hydr4nt Nov 13, 2025
3f5d3fa
Review complete, isolating failures next
F1r3Hydr4nt Nov 13, 2025
7216276
52 isolated
F1r3Hydr4nt Nov 13, 2025
31cfa53
Improved testing
F1r3Hydr4nt Nov 13, 2025
f79451a
15 left
F1r3Hydr4nt Nov 13, 2025
43a8424
Fixing tests
F1r3Hydr4nt Nov 13, 2025
e0526f8
Isolated new test for manual review
F1r3Hydr4nt Nov 13, 2025
03e52a6
Improved precision of tests
F1r3Hydr4nt Nov 14, 2025
fcc88cf
Added coverage report and pytest-cov
F1r3Hydr4nt Nov 17, 2025
dae9613
Added missing TS features via Test Driven Development
F1r3Hydr4nt Nov 17, 2025
27c8ecb
Implemented missing features from Go & addressed Github issues
F1r3Hydr4nt Nov 17, 2025
5c00984
Improved test precision
F1r3Hydr4nt Nov 17, 2025
1dbfc57
Added SHIP BRoadcaster and LookupResolver
F1r3Hydr4nt Nov 17, 2025
51df9e7
Removed ecdsa
F1r3Hydr4nt Nov 17, 2025
71b862e
Improved interpreter testing
F1r3Hydr4nt Nov 17, 2025
6b62985
Added missing tests and kvstore beef functions
F1r3Hydr4nt Nov 17, 2025
9110c9c
Develop port (#123)
voyager1708 Nov 17, 2025
dccde00
More tests!
F1r3Hydr4nt Nov 17, 2025
899ae19
968 tests passing
F1r3Hydr4nt Nov 18, 2025
097c703
Interpreter tests parity with Go
F1r3Hydr4nt Nov 18, 2025
40a57cc
973 tests passing, improvements
F1r3Hydr4nt Nov 18, 2025
5d1727b
78% coverage
F1r3Hydr4nt Nov 18, 2025
154fada
Added auto-cov tests and results to README & github-actions
F1r3Hydr4nt Nov 19, 2025
f15e62e
Added many test files for coverage, perhaps too many?
F1r3Hydr4nt Nov 19, 2025
d84851e
Refactored opcode_dup to op_dup etc
F1r3Hydr4nt Nov 19, 2025
9a83c59
Addressed code duplication
F1r3Hydr4nt Nov 19, 2025
4ba3768
Addressing sonar-cube issues
F1r3Hydr4nt Nov 19, 2025
27f3e22
Fixing reliability issues
F1r3Hydr4nt Nov 20, 2025
d887a23
50% of the big refactor due to Sonar issues
F1r3Hydr4nt Nov 20, 2025
d4ba85d
Addressing sonar cube issues
F1r3Hydr4nt Nov 20, 2025
eb222f6
Fixes
F1r3Hydr4nt Nov 20, 2025
1c3fac2
Lets see issues down from 781?
F1r3Hydr4nt Nov 20, 2025
a0307e3
Added smore sonar fixes, attempting complex refactoring next
F1r3Hydr4nt Nov 21, 2025
04aff6a
Fixed breaking sonar issues
F1r3Hydr4nt Nov 21, 2025
31c97eb
No tests failing, breaking change finding next
F1r3Hydr4nt Nov 21, 2025
f6c231c
Fixed sonar crap
F1r3Hydr4nt Nov 21, 2025
ea066a8
Add CodeQL suppression comments for debug logging and test code
F1r3Hydr4nt Nov 21, 2025
64e0aeb
Potential fix for code scanning alert no. 14: Clear-text logging of s…
F1r3Hydr4nt Nov 21, 2025
f53850f
Potential fix for code scanning alert no. 17: Incomplete URL substrin…
F1r3Hydr4nt Nov 21, 2025
6fdcde0
Potential fix for code scanning alert no. 15: Clear-text logging of s…
F1r3Hydr4nt Nov 21, 2025
c592a35
Potential fix for code scanning alert no. 18: Incomplete URL substrin…
F1r3Hydr4nt Nov 21, 2025
31d8c9d
Potential fix for code scanning alert no. 19: Incomplete URL substrin…
F1r3Hydr4nt Nov 21, 2025
cd5af21
Potential fix for code scanning alert no. 20: Incomplete URL substrin…
F1r3Hydr4nt Nov 21, 2025
13602c4
Potential fix for code scanning alert no. 24: Information exposure th…
F1r3Hydr4nt Nov 21, 2025
3f8c3d1
Configure CodeQL to exclude test files from security checks
F1r3Hydr4nt Nov 21, 2025
449393e
Potential fix for code scanning alert no. 23: Information exposure th…
F1r3Hydr4nt Nov 21, 2025
7cb4981
Potential fix for code scanning alert no. 11: Clear-text logging of s…
F1r3Hydr4nt Nov 21, 2025
3122e0b
Remove custom CodeQL configuration to use default setup
F1r3Hydr4nt Nov 21, 2025
8887916
Fix CodeQL URL substring sanitization warnings in tests
F1r3Hydr4nt Nov 21, 2025
5c26cad
Potential fix for code scanning alert no. 26: Incomplete URL substrin…
F1r3Hydr4nt Nov 21, 2025
2806877
Fixed rebase
F1r3Hydr4nt Nov 21, 2025
39766f3
Merge master into develop-port
F1r3Hydr4nt Nov 21, 2025
55d7268
Replace time.sleep() with asyncio.sleep() in async test
F1r3Hydr4nt Nov 21, 2025
1737ceb
Fix EndBug/add-and-commit action reference
F1r3Hydr4nt Nov 21, 2025
1a0d5fc
Fix test failures after merge
F1r3Hydr4nt Nov 21, 2025
373ca93
Pin EndBug/add-and-commit to full commit SHA
F1r3Hydr4nt Nov 21, 2025
184c432
Correct hash 777a761e0f8293b7b051170404976d7cf10611cb
F1r3Hydr4nt Nov 21, 2025
aea9ffb
from unittest.mock import Mock
F1r3Hydr4nt Nov 21, 2025
23ebba9
import time
F1r3Hydr4nt Nov 21, 2025
93a98ca
The CI should now pass!
F1r3Hydr4nt Nov 21, 2025
7fd37d5
Addressing build failures
F1r3Hydr4nt Nov 21, 2025
8be2164
Ahhhhhhhhhhhh
F1r3Hydr4nt Nov 21, 2025
0a1d9d8
All tests pass with zero warnings:
F1r3Hydr4nt Nov 21, 2025
69651ed
Breaking changes report!
F1r3Hydr4nt Nov 21, 2025
6d67096
Saved contradiction
F1r3Hydr4nt Nov 21, 2025
29a8599
Fixing failure
F1r3Hydr4nt Nov 21, 2025
1dbb780
Addressed High code reliability sonar cube issues
F1r3Hydr4nt Nov 25, 2025
7e7e0ba
Addressed 3 more High code reliability sonar cube issues
F1r3Hydr4nt Nov 25, 2025
1fbf89d
Addressed 1 more High code reliability sonar cube issues
F1r3Hydr4nt Nov 25, 2025
8e08c43
Merge master into develop-port: resolved conflicts in favor of develo…
F1r3Hydr4nt Nov 25, 2025
0b3ef52
Re-adding legacy tests
F1r3Hydr4nt Nov 25, 2025
7f64861
Removed legacy tests
F1r3Hydr4nt Nov 25, 2025
6acb5d9
Removing working files
F1r3Hydr4nt Nov 25, 2025
3eb98ea
Bumping version number
F1r3Hydr4nt Nov 25, 2025
dfc6d57
Merge master into develop-port, keeping develop-port versions
F1r3Hydr4nt Nov 25, 2025
6406e56
Keeping Kens new changes, all tests passing and reverting deletion of…
F1r3Hydr4nt Nov 25, 2025
cc7e823
Keeping Kens new changes, all tests passing and reverting deletion of…
F1r3Hydr4nt Nov 25, 2025
ff4df70
Ran linter, updated docs
F1r3Hydr4nt Nov 25, 2025
b4730f4
Export fix
F1r3Hydr4nt Nov 26, 2025
58bb6c9
Refactor: Remove unused `ctx` parameter across Wallet and Auth Peer i…
ALiberalVoluntarist Dec 5, 2025
5f1f791
Refactor `auth/master_certificate` for BRC-100 compliance and streaml…
ALiberalVoluntarist Dec 8, 2025
2904905
80% (#130)
F1r3Hydr4nt Dec 8, 2025
f452b1a
Fix indentation in `auth/master_certificate` argument definitions
ALiberalVoluntarist Dec 9, 2025
a74c38d
Merge remote-tracking branch 'origin/develop-port' into develop-port
ALiberalVoluntarist Dec 9, 2025
5abefda
Refactor nonce verification and HTTP transport logic for enhanced val…
ALiberalVoluntarist Dec 10, 2025
fd8b3d3
Rename `WalletImpl` to `ProtoWallet` for Go/TypeScript SDK parity
ALiberalVoluntarist Dec 10, 2025
2a225e0
Protwallet実装 Add `SymmetricKey` and AES-GCM encryption utilities for …
ALiberalVoluntarist Dec 10, 2025
d506697
Refactor `WalletImpl` methods to use TypedDict argument types for enh…
ALiberalVoluntarist Dec 10, 2025
61a7352
Improve cross-SDK parity and camelCase/snake_case support in `ProtoWa…
ALiberalVoluntarist Dec 11, 2025
453ba62
Align `counterparty` defaults and ciphertext handling with TS SDK beh…
ALiberalVoluntarist Dec 11, 2025
de42e58
Updated peer.py and tests!
F1r3Hydr4nt Dec 11, 2025
08a0a17
Linting errors otu
F1r3Hydr4nt Dec 11, 2025
385bac2
Refactor: Remove `ctx` parameter from `SimplifiedHTTPTransport.send` …
ALiberalVoluntarist Dec 11, 2025
79c3f54
Merge remote-tracking branch 'origin/develop-port' into develop-port
ALiberalVoluntarist Dec 11, 2025
b53f87c
More tests unskipped
F1r3Hydr4nt Dec 11, 2025
251af68
Refactor transaction parsing for improved error handling and data val…
ALiberalVoluntarist Dec 12, 2025
027abca
Merge remote-tracking branch 'origin/develop-port' into develop-port
ALiberalVoluntarist Dec 12, 2025
4ea9df3
Tests passing again
F1r3Hydr4nt Dec 12, 2025
e9770eb
106skipsremaining
F1r3Hydr4nt Dec 16, 2025
7fba470
82%
F1r3Hydr4nt Dec 16, 2025
ee4032e
Fixing lint error
F1r3Hydr4nt Dec 16, 2025
38f1846
Fixing reliability issues
F1r3Hydr4nt Dec 16, 2025
c741001
Fixed str indices error
F1r3Hydr4nt Dec 16, 2025
99023a4
Coverage issues
F1r3Hydr4nt Dec 16, 2025
eee02e4
Saving tests and implementation details (#131)
F1r3Hydr4nt Dec 18, 2025
952ea22
Auth fix
F1r3Hydr4nt Dec 18, 2025
b30f6e5
Test fix
F1r3Hydr4nt Dec 19, 2025
5be7d82
Various fixes but most importantly key_deriver for_self
F1r3Hydr4nt Dec 22, 2025
c1c6a29
Changes to make server test pass
F1r3Hydr4nt Dec 23, 2025
f4c6d5c
Tests passing
F1r3Hydr4nt Dec 23, 2025
d72890f
Removing logging
F1r3Hydr4nt Dec 24, 2025
d250d3e
Saving python changes (#133)
F1r3Hydr4nt Jan 13, 2026
b18393c
Override test (#134)
F1r3Hydr4nt Jan 14, 2026
e45d86e
Sonar cube issues first batch
F1r3Hydr4nt Jan 14, 2026
a454b31
More sonarcube changes
F1r3Hydr4nt Jan 14, 2026
5f4ff0d
Tests passing
F1r3Hydr4nt Jan 14, 2026
bc181b4
High to medium
F1r3Hydr4nt Jan 14, 2026
a11d457
Pushing
F1r3Hydr4nt Jan 14, 2026
2359408
High to medium
F1r3Hydr4nt Jan 14, 2026
9713ef3
Pushing
F1r3Hydr4nt Jan 14, 2026
2dfca41
black linting and ruff
F1r3Hydr4nt Jan 14, 2026
43eb0f4
Fixing setup.py
F1r3Hydr4nt Jan 14, 2026
b431b32
More
F1r3Hydr4nt Jan 14, 2026
991d023
3.9, ruff and black and SONARQUBE
F1r3Hydr4nt Jan 15, 2026
78f24e8
More SONARQUBE
F1r3Hydr4nt Jan 15, 2026
96093d4
ruff and black
F1r3Hydr4nt Jan 15, 2026
ff13363
More
F1r3Hydr4nt Jan 15, 2026
ee3f6e3
Running tests
F1r3Hydr4nt Jan 15, 2026
42e5966
ruff rrrrr
F1r3Hydr4nt Jan 15, 2026
49ef124
ruff rrrrr
F1r3Hydr4nt Jan 15, 2026
f7fd57c
MOre changes
F1r3Hydr4nt Jan 15, 2026
28478a1
Tests passign here
F1r3Hydr4nt Jan 15, 2026
b03da33
Addressing concerns
F1r3Hydr4nt Jan 15, 2026
96995bf
MNore
F1r3Hydr4nt Jan 15, 2026
c16637e
Fix ruff
F1r3Hydr4nt Jan 15, 2026
9dec22a
More
F1r3Hydr4nt Jan 15, 2026
7bd29c8
Another 5 comments, fuck copilot
F1r3Hydr4nt Jan 15, 2026
b0faedd
Removed 3.9 support
F1r3Hydr4nt Jan 15, 2026
a441bcd
Copilot comments addressed again
F1r3Hydr4nt Jan 15, 2026
13cb848
More SONARQUBE
F1r3Hydr4nt Jan 16, 2026
dcaf050
79 issues
F1r3Hydr4nt Jan 16, 2026
6923327
39
F1r3Hydr4nt Jan 16, 2026
1d18fa8
29 issues
F1r3Hydr4nt Jan 16, 2026
020d310
29 more
F1r3Hydr4nt Jan 16, 2026
4ba36d8
More
F1r3Hydr4nt Jan 16, 2026
df6046a
Painful
F1r3Hydr4nt Jan 16, 2026
b88d936
Fixed via returning
F1r3Hydr4nt Jan 16, 2026
4abed85
This is it!
F1r3Hydr4nt Jan 16, 2026
4a31a9a
Damn
F1r3Hydr4nt Jan 16, 2026
f033369
Pass
F1r3Hydr4nt Jan 16, 2026
9f0b4db
NOP
F1r3Hydr4nt Jan 16, 2026
ea44714
More
F1r3Hydr4nt Jan 16, 2026
168d673
Again
F1r3Hydr4nt Jan 16, 2026
b0372fa
Bloody NOSONAR
F1r3Hydr4nt Jan 16, 2026
688ed33
Finally?
F1r3Hydr4nt Jan 16, 2026
1aaf37f
Finally?
F1r3Hydr4nt Jan 16, 2026
507d609
Bump version to 2.0.0b1 for BRC-100 beta release
ALiberalVoluntarist Jan 20, 2026
6fd8f80
Fix black formatting in test_hash.py
ALiberalVoluntarist Jan 20, 2026
6ed9dd3
Remove ecdsa dependency (unused, has unfixed vulnerability)
ALiberalVoluntarist Jan 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion .coveragerc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[run]
branch = True
source = src
source = bsv

[report]
exclude_lines =
Expand All @@ -11,3 +11,5 @@ ignore_errors = False
omit =
tests/*
setup.py
show_missing = True
skip_covered = False
8 changes: 8 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Example environment variables for testing
# Copy this file to .env.local and fill in your actual values

# ARC Broadcaster API Key
ARC_API_KEY=your_api_key_here

# WhatsOnChain API Key for wallet tests
WOC_API_KEY=your_woc_api_key_here
6 changes: 6 additions & 0 deletions .env.local.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Environment variables for local development
# Copy this file to .env.local and fill in your actual values

# BHS (Block Headers Service) API Key for chaintracker examples
# Get your API key from your BHS service provider
BHS_API_KEY=your_api_key_here
109 changes: 86 additions & 23 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
name: build
permissions:
contents: read

on:
push:
Expand All @@ -9,30 +7,95 @@ on:
branches: [ master ]

jobs:
pytest:
test:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: write
strategy:
fail-fast: false
matrix:
python-version: [ "3.9", "3.10", "3.11", "3.12" ]
python-version: [ "3.10", "3.11", "3.12" ]

steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8
pip install '.[test]'
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=140 --statistics
- name: Test with pytest
run: |
pytest
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
fetch-depth: 0 # Fetch all history for all branches and tags

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
with:
python-version: ${{ matrix.python-version }}

- name: Cache pip packages
uses: actions/cache@6f8efc29b200d32929f49075959781ed54ec270c
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[test,dev]

- name: Run linting
run: |
echo "Running black..."
black --check bsv/ tests/
echo "Running ruff..."
ruff check bsv/ tests/

- name: Run tests with coverage
run: |
pytest tests/ -v --cov=bsv --cov-report=term-missing --cov-report=html --cov-report=json

- name: Extract coverage percentage
id: coverage
run: |
# Extract coverage percentage from coverage.json and format to one decimal place
COVERAGE=$(python -c "import json; data=json.load(open('coverage.json')); print(f\"{data['totals']['percent_covered']:.1f}\")")
echo "coverage=$COVERAGE" >> $GITHUB_OUTPUT
echo "Coverage: $COVERAGE%"

- name: Update coverage badge
if: matrix.python-version == '3.11'
run: |
python update_coverage.py ${{ steps.coverage.outputs.coverage }}

- name: Commit and push updated coverage badge (push to master only)
if: github.event_name == 'push' && github.ref == 'refs/heads/master' && matrix.python-version == '3.11'
run: |
# Only proceed if README.md has changes
if git diff --quiet README.md; then
echo "No coverage badge changes to commit."
exit 0
fi
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add README.md
git commit -m "chore: update coverage badge to ${{ steps.coverage.outputs.coverage }}% [skip ci]" || echo "No changes to commit."
git push

- name: Upload coverage reports
if: matrix.python-version == '3.11'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: coverage-report
path: htmlcov/

- name: Comment PR with coverage
if: github.event_name == 'pull_request' && matrix.python-version == '3.11'
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b
with:
script: |
const coverage = '${{ steps.coverage.outputs.coverage }}';
const comment = `## Test Coverage Report\n\n📊 **Coverage: ${coverage}%**\n\nView the full coverage report in the build artifacts.`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
});
41 changes: 41 additions & 0 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Publish to PyPI

on:
push:
tags:
- "v*.*.*"

jobs:
publish:
runs-on: ubuntu-latest
environment: release
permissions:
id-token: write
contents: read

steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5

- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
with:
python-version: "3.11"

- name: Cache pip
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-build

- name: Install build dependencies
run: python -m pip install --upgrade pip build

- name: Build package
run: python -m build

- name: Check distribution
run: |
python -m pip install twine
twine check dist/*

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,10 @@ dist/
htmlcov/
.coverage
build/
.venv/
.wallet
.venv/

# Environment files
.env
.env.local
.env.*.local
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.9.25
Empty file added .test
Empty file.
41 changes: 27 additions & 14 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,25 +26,38 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
- [0.1.0 - 2024-04-09](#010---2024-04-09)

---
## [Unreleased]
## [1.0.12] - 2025-11-25

### Added
- (Include new features or significant user-visible enhancements here.)
- Complete Wallet infrastructure with serializers, substrates, and implementations for full wallet functionality
- Authentication system including peer authentication, certificates, session management, and HTTP transport
- Enhanced BEEF infrastructure with dedicated builder, serializer, and validator modules for advanced transaction management
- Script interpreter with comprehensive opcode support, stack operations, and script execution engine
- Storage interfaces and implementations for data upload/download with encryption support
- Overlay tools including lookup resolver, SHIP broadcaster, historian, and host reputation tracker
- Registry client for overlay network management
- Identity client with contacts manager for identity and contact management
- Headers client for blockchain header synchronization
- Keystore with local key-value store implementation supporting encrypted storage
- Additional cryptographic primitives: Schnorr signatures, DRBG (Deterministic Random Bit Generator), AES-GCM encryption
- Compatibility modules for BSM (Bitcoin Signed Message) and ECIES encryption
- TOTP (Time-based One-Time Password) support for two-factor authentication
- BIP-276 payment destination encoding support
- PushDrop token protocol implementation
- Teranode broadcaster support

### Changed
- (Detail modifications that are non-breaking but relevant to the end-users.)
- Refactored `bsv/utils.py` monolithic module into organized submodules under `bsv/utils/` for better maintainability
- Enhanced broadcaster implementations with improved error handling and status categorization
- Updated chain trackers with block headers service integration
- Improved transaction handling with extended BEEF support and validation
- Reorganized entire test suite into `tests/bsv/` structure with comprehensive coverage tests (455 files changed, 74,468+ additions)

### Deprecated
- (List features that are in the process of being phased out or replaced.)

### Removed
- (Indicate features or capabilities that were taken out of the project.)

### Fixed
- (Document bugs that were fixed since the last release.)

### Security
- (Notify of any improvements related to security vulnerabilities or potential risks.)
### Notes
- **No breaking changes** - All existing APIs remain fully compatible
- Legacy tests continue to pass but have been superseded by new comprehensive test structure
- Test organization now follows a more modular and maintainable structure under `tests/bsv/`
- Added extensive test coverage across all modules ensuring code quality and reliability

---
## [1.0.11] - 2025-11-23
Expand Down
Loading
Loading