Releases: synonymdev/bitkit-core
v0.1.73
v0.1.72
Refs synonymdev/bitkit-android#982
- Publishes Bitkit Core
0.1.72artifacts for Android and iOS. - Android package:
com.synonym:bitkit-core-android:0.1.72. - Android package workflow: 27374790491.
- Android native release builds require
.debug_infoDWARF metadata and 16 KB LOAD alignment.
v0.1.70
v0.1.69
v0.1.68
v0.1.67
Hardens the native on-chain lookup boundary related to Android production crash #982.
The affected Android production build reported SIGABRT during normal wallet and Lightning usage. Available symbolication maps the raw Play PCs into libbitkitcore.so, near the Electrum and BDK address-info blocking task, but the production tag does not prove one specific app route.
Changes:
- Convert panics and Tokio task failures in the address-info blocking worker into typed
AccountInfoError::SyncErrorresults. - Return typed
AccountInfoErrorfor malformed Electrum data, disconnects, address and network mismatches, and balance overflow. - Add focused coverage for empty history and UTXOs, malformed Electrum responses, network disconnects, network mismatches, and task panics.
- Regenerate iOS and Android native artifacts for
bitkitcore 0.1.67.
v0.1.66
What's Changed
Adds an on-chain transaction watcher for extended public keys. A caller starts a watcher for an xpub and receives typed WatcherEvents via an EventListener callback.
Description
- New
EventListenertrait (#[uniffi::export(with_foreign)]) for receiving typed callbacks, implementable from Swift/Kotlin/Python. - New FFI functions:
onchain_start_watcher,onchain_stop_watcher,onchain_stop_all_watchers. - New
WatcherParamsrecord:watcher_id,extended_key,electrum_url, optionalnetwork/account_type(auto-detected from the key prefix when omitted), and optionalgap_limit(defaults to 20). - New
WatcherEventenum:TransactionsChanged { transactions, balance, tx_count, block_height, account_type },Error { message },Disconnected { message },Reconnected. - Implementation (
src/modules/onchain/listener.rs):- Uses Electrum
blockchain.scripthash.subscribefor detection; a short-timeoutping()drains pushed notifications off the socket without a fixed poll interval. - Runs the wallet + Electrum client (both
!Send) on one dedicatedstdthread per watcher rather than occupying a Tokio blocking-pool slot for the watcher's lifetime. - Init ordering is sync → subscribe → sync to close the sync/subscribe race window.
- Self-healing connection: lost connections trigger a
Disconnectedevent and an exponential-backoff reconnect (capped at 60s) that emitsReconnected; a failed resync is retried so a popped notification is never dropped. - Per-watcher generation guard so a tearing-down watcher can't evict a newer watcher reusing the same
watcher_id. - Gap limit is extended automatically as new addresses are used.
- Uses Electrum
- New
WatcherErrorvariant onAccountInfoError.
v0.1.65
What's Changed
Adds an on-chain transaction watcher for extended public keys. A caller starts a watcher for an xpub and receives typed WatcherEvents via an EventListener callback.
Description
- New
EventListenertrait (#[uniffi::export(with_foreign)]) for receiving typed callbacks, implementable from Swift/Kotlin/Python. - New FFI functions:
onchain_start_watcher,onchain_stop_watcher,onchain_stop_all_watchers. - New
WatcherParamsrecord:watcher_id,extended_key,electrum_url, optionalnetwork/account_type(auto-detected from the key prefix when omitted), and optionalgap_limit(defaults to 20). - New
WatcherEventenum:TransactionsChanged { transactions, balance, tx_count, block_height, account_type },Error { message },Disconnected { message },Reconnected. - Implementation (
src/modules/onchain/listener.rs):- Uses Electrum
blockchain.scripthash.subscribefor detection; a short-timeoutping()drains pushed notifications off the socket without a fixed poll interval. - Runs the wallet + Electrum client (both
!Send) on one dedicatedstdthread per watcher rather than occupying a Tokio blocking-pool slot for the watcher's lifetime. - Init ordering is sync → subscribe → sync to close the sync/subscribe race window.
- Self-healing connection: lost connections trigger a
Disconnectedevent and an exponential-backoff reconnect (capped at 60s) that emitsReconnected; a failed resync is retried so a popped notification is never dropped. - Per-watcher generation guard so a tearing-down watcher can't evict a newer watcher reusing the same
watcher_id. - Gap limit is extended automatically as new addresses are used.
- Uses Electrum
- New
WatcherErrorvariant onAccountInfoError.
v0.1.64
What's Changed
- feat(trezor): return typed PassphraseResponse](#91)
- feat: add legacy RN close recovery sweep](#92)
- ci: fix Android package publish token](#93)
Full Changelog: v0.1.63...v0.1.64
v0.1.63
Regenerate Python recovery bindings