All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
get_payments_by_qr_codenow verifies that the plaintext Bitcoin address parsed from a scanned QR code matches the address decrypted viabranta_id/branta_secret, raisingBrantaPaymentExceptionwithreason=BrantaPaymentExceptionReason.Tamperedon mismatch. Closes a gap where an attacker could swap the visible address in abitcoin:URI while leaving a legitimate, verifiedbranta_id/branta_secretpair untouched (ported frombranta-js3.2.1)
PaymentBuilder.set_child_platform(name, logo_url, logo_light_url)— allows master-switch platforms to associate a child platform with a payment on POSTPayment.child_platformfield (optionalPlatform) to hold the child platform data before submission- Removed tracked
__pycache__files and ensured they are covered by.gitignore
- Initial release of the Branta Python SDK
- Feature-parity port of
branta-js3.1.4 andbranta-dotnet3.1.6 BrantaServicewithget_payments,get_payments_by_qr_code,add_payment, andis_api_key_validPaymentBuilderfluent builder for constructingPaymentobjectsQRParserfor parsing Bitcoin and Lightning URI QR codes- AES-256-GCM encryption with deterministic and random nonce modes
- Zero-knowledge (ZK) destination support for Bitcoin addresses, BOLT-11, Ark, and silent payments
- Metadata DEK-envelope encryption
PrivacyMode.Strict(default) andPrivacyMode.Looseenforcement- HMAC-SHA256 signing support for parent platform use
- Full type annotations and async/await throughout
- Unit and integration tests with full branch coverage