Skip to content

Releases: synonymdev/bitkit-core

v0.1.73

16 Jun 14:58
6d4c352

Choose a tag to compare

Publish stripped Android release AARs with separate native debug symbols.

v0.1.72

11 Jun 21:12
2bf6b33

Choose a tag to compare

Refs synonymdev/bitkit-android#982

  • Publishes Bitkit Core 0.1.72 artifacts for Android and iOS.
  • Android package: com.synonym:bitkit-core-android:0.1.72.
  • Android package workflow: 27374790491.
  • Android native release builds require .debug_info DWARF metadata and 16 KB LOAD alignment.

v0.1.70

05 Jun 17:22
3e15037

Choose a tag to compare

Publishes Android artifacts with native debug metadata and 16 KB page-size alignment validation for crash symbolication.

Android Package

0.1.70

Related PRs

v0.1.69

04 Jun 21:31
3a19f23

Choose a tag to compare

Publishes Android artifacts with native debug metadata for crash symbolication.

v0.1.68

04 Jun 16:11
75bf69e

Choose a tag to compare

Unifies the onchain AccountInfoError blocking boundary for account info, transaction history, transaction detail, and compose transaction APIs. Includes regenerated v0.1.68 Android, iOS, and Python artifacts.

v0.1.67

03 Jun 23:08
0a485ce

Choose a tag to compare

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::SyncError results.
  • Return typed AccountInfoError for 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

29 May 17:50
99ffc3b

Choose a tag to compare

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 EventListener trait (#[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 WatcherParams record: watcher_id, extended_key, electrum_url, optional network / account_type (auto-detected from the key prefix when omitted), and optional gap_limit (defaults to 20).
  • New WatcherEvent enum: TransactionsChanged { transactions, balance, tx_count, block_height, account_type }, Error { message }, Disconnected { message }, Reconnected.
  • Implementation (src/modules/onchain/listener.rs):
    • Uses Electrum blockchain.scripthash.subscribe for detection; a short-timeout ping() drains pushed notifications off the socket without a fixed poll interval.
    • Runs the wallet + Electrum client (both !Send) on one dedicated std thread 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 Disconnected event and an exponential-backoff reconnect (capped at 60s) that emits Reconnected; 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.
  • New WatcherError variant on AccountInfoError.

v0.1.65

29 May 13:19
a1d78cb

Choose a tag to compare

v0.1.65 Pre-release
Pre-release

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 EventListener trait (#[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 WatcherParams record: watcher_id, extended_key, electrum_url, optional network / account_type (auto-detected from the key prefix when omitted), and optional gap_limit (defaults to 20).
  • New WatcherEvent enum: TransactionsChanged { transactions, balance, tx_count, block_height, account_type }, Error { message }, Disconnected { message }, Reconnected.
  • Implementation (src/modules/onchain/listener.rs):
    • Uses Electrum blockchain.scripthash.subscribe for detection; a short-timeout ping() drains pushed notifications off the socket without a fixed poll interval.
    • Runs the wallet + Electrum client (both !Send) on one dedicated std thread 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 Disconnected event and an exponential-backoff reconnect (capped at 60s) that emits Reconnected; 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.
  • New WatcherError variant on AccountInfoError.

v0.1.64

29 May 00:59
a7577cc

Choose a tag to compare

v0.1.63

27 May 17:03
ddc4c8d

Choose a tag to compare

v0.1.63 Pre-release
Pre-release
Regenerate Python recovery bindings