Skip to content

Conversation

@F1r3Hydr4nt
Copy link
Collaborator

@F1r3Hydr4nt F1r3Hydr4nt commented Nov 19, 2025

Description of Changes

Added

  • 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
  • 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

Testing Procedure

Testing, along with coverage has been upgraded to a better structure. Legacy tests were ensured still pass.

  • I have added new unit tests
  • All tests pass locally
  • I have tested manually in my local environment

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have updated CHANGELOG.md with my changes
  • I have run the linter

jo7ueb and others added 30 commits August 13, 2025 11:58
…ption, master_certificate, peer_session, requested_certificate_set, verifiable_certificate) and remove sys.path hack in keys
…llet integration and callbacks\n\n- Closes #55, #54, #53, #52, #51, #50, #49, #48\n- Implement session manager + helpers and re-export PeerSession\n- Handshake (nonce-based), general message sign/verify, cert req/resp\n- Integrate wallet interface for HMAC/sign/verify + encryption hooks\n- Callback registration APIs and safer invocation (snapshot)\n- Reduce cognitive complexity and add defensive checks\n- Best-effort stop() and secure_send() delegate
Refactor SimplifiedHTTPTransport: improve error handling and payload …
fix(utils): Update utils module with latest changes and absolute imports
feat(auth/clients): Add and update client modules under auth/clients
feat(auth/transports): Add and update modules under auth/transports
refactor(chaintrackers): update imports to absolute paths and clean u…
chore(registry): translate comments to English and clean up code
@F1r3Hydr4nt F1r3Hydr4nt marked this pull request as ready for review November 25, 2025 03:26
F1r3Hydr4nt and others added 27 commits November 25, 2025 12:32
…mplementations

- Simplified method signatures by removing the unused `ctx` parameter.
- Updated all affected method references, including tests and internal utilities.
- Improved maintainability by aligning with streamlined parameter requirements.
- Adjusted test cases for compatibility with the updated methods.
…ine cryptographic method calls

- Updated cryptographic function arguments (`encrypt`, `decrypt`, `get_public_key`, `create_signature`) to align with BRC-100 flat structure (camelCase).
- Removed unused `originator` parameter from method calls for consistency.
- Improved TypeScript/Go parity by aligning method structures and argument naming conventions.
* 80%

* Refactoring for sonarQube
- Adjusted indentation for `encrypt_args` and `decrypt_args` dictionaries to maintain consistency and improve readability.
- Ensured alignment with Python code style guidelines.
…idation and backward compatibility

- Extended `_verify_your_nonce` to improve nonce verification for various scenarios, including session nonce matching and HMAC-based verification.
- Updated `SimplifiedHTTPTransport` with improved response handling, including special cases for error status codes.
- Enhanced varint reading and writing logic to handle special cases like `-1` (represented as `0xFFFFFFFFFFFFFFFF`) for better protocol compliance.
- Added backward compatibility to handler signature checks in transport logic.
- Refactored `WalletImpl` to `ProtoWallet` across the codebase for consistent naming with SDKs.
- Updated documentation and comments to reflect the new class name.
- Retained `WalletImpl` as a deprecated alias for backward compatibility.
- Adjusted all tests and imports to use `ProtoWallet`.
…TS/Go SDK compatibility

- Implemented `SymmetricKey` class for AES-GCM encryption/decryption, aligned with TS/Go SDK behavior.
- Defined `encrypt` and `decrypt` methods to support cross-SDK compliance.
- Added `test_symmetric_key.py` with basic functionality tests and compatibility vectors from TS/Go SDKs.
- Updated `ProtoWallet.encrypt` with AES-GCM encryption logic using the derived symmetric key.
- Enhanced `test_proto_wallet_encrypt_decrypt` to validate cross-SDK encryption format against Go/TS SDKs.
…anced type safety and SDK parity

- Replaced `Dict` arguments with specific `TypedDict` types (`GetPublicKeyArgs`, `EncryptArgs`, etc.) in method signatures.
- Updated internal logic to handle TypedDict structures, improving compatibility with TS/Go SDKs.
- Added backward-compatible support for tuple-based `protocolID` inputs in `get_public_key`.
- Extended tests to validate encryption, decryption, and argument handling.
- Enhanced type annotations in `wallet_interface.py` for clarity.
…llet` API

- Added handling for special string counterparty values (`self`, `anyone`) for TS/Go SDK parity.
- Enhanced argument handling with support for both camelCase and snake_case naming styles in `create_signature`, `verify_signature`, and related methods.
- Updated default values for `counterparty` to align with TS behavior (`self` for verify, `anyone` for create).
- Streamlined data type checks and normalizations in key-related methods.
- Extended tests to cover new behavior and ensure consistency across SDKs.
…avior

- Updated `counterparty` default to `SELF` (`type: 2`) for parity with TS SDK.
- Enhanced ciphertext handling in encryption to support list-to-bytes conversion.
- Adjusted decryption tests for compatibility with TS SDK's list-based plaintext format.
- Refactored `SimplifiedHTTPTransport.send` for parameter consistency.
…and related methods

- Removed the unused `ctx` parameter for simplified method signatures and improved maintainability.
- Updated all related methods, including `_send_general_message`, `_send_non_general_message`, and `_notify_handlers`.
- Adjusted test cases to align with the updated method signatures.
…idation

- Replaced `suppress(Exception)` with specific `try`/`except` blocks for clearer exception management.
- Added granular `ValueError` checks for incomplete or invalid data in `from_hex` and `from_reader` methods across `Transaction`, `TransactionInput`, and `TransactionOutput` classes.
- Improved error messages to specify missing or incomplete data fields.
- Updated docstrings to reflect changes in error handling behavior.
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
E Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants