Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Android bindings are built and published by `.github/workflows/gradle-publish.ym

```bash
cargo test # All tests
cargo test modules::<module> # Single module (scanner, lnurl, onchain, activity, blocktank, boltz, trezor, jade, hardware_wallet, ur, pubky, paykit_route, pubky_swaps, usdt)
cargo test modules::<module> # Single module (scanner, lnurl, onchain, activity, blocktank, trezor, jade, hardware_wallet, ur, pubky, paykit_route, pubky_swaps, usdt)
```

## Lint & Format
Expand All @@ -35,7 +35,7 @@ Android bindings use ktlint via Gradle plugin (`org.jlleitschuh.gradle.ktlint`),
## Architecture

- `src/lib.rs` — UniFFI exports and module re-exports
- `src/modules/`: core modules: scanner, lnurl, onchain, activity, blocktank, boltz, trezor, jade, hardware_wallet, ur, pubky, paykit_route, pubky_swaps, usdt
- `src/modules/`: core modules: scanner, lnurl, onchain, activity, blocktank, trezor, jade, hardware_wallet, ur, pubky, paykit_route, pubky_swaps, usdt
- `bindings/` — Platform-specific binding outputs (ios/, android/, python/)
- `build.sh`, `build_ios.sh`, `build_android.sh`, `build_python.sh` — Build scripts

Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

## Unreleased

- Update `lightning` to 0.2.8.
- `regtest_mine`, `regtest_deposit`, `regtest_pay`, `regtest_get_payment` and `regtest_close_channel` take an optional `auth` (`user:password`), sent as basic auth to Blocktank servers that protect the regtest routes; a 401 returns a clear error.
- Wake: a default registration `timestamp` is one past the last in this process when needed, so two quick registrations no longer get 409 `stale_registration`. `WakeError::GatewayRejected` gains `server_time` and `retry_after_secs`. Add `wake_get_device` and `wake_send_test`. `wake_set_topics` now returns `WakeSubscription` with `unknown_topics` (breaking).
- Add `paykit_route_payment`, which picks how to pay a Paykit contact: directly when a held balance reaches one of the contact's endpoints, otherwise through the cheapest quoted service leg, such as a Spark withdrawal to the contact's on-chain address.
- Upgrade `trezor-connect-rs` to 10.0.1. The THP handshake now accepts a paired state only with a verified stored credential. A paired state without one, or an unknown state, returns `TrezorError::ConnectionError` instead of continuing to session creation. A malformed completion frame is now an error too, and the callback transport retries it like other temporary failures. A stored credential with a low-order device key no longer verifies, so the device pairs again.
- `onchain_compose_transaction` keeps the synced watch-only wallet per extended key, script type, network and Electrum URL, so later composes for the same account run an incremental sync that reuses stored transactions instead of a full sync. Every compose still syncs before building PSBTs. Composes with and without a fingerprint share one wallet. Against the staging regtest Electrum with the Trezor emulator account, a compose drops from about 7.5 s to about 3.4 s after the first one.
- Add a `wake` module for the wake push gateway: device key, secret and install id generation, a signed registration (`wake_prepare_registration`, `wake_sign_pubky_proof`, `wake_register`), decryption of legacy (v0) and v1 envelopes from any delivered push (`wake_decrypt_push`), and the device routes for acks, presence, topics and unregistering. Grants let a peer wake the device (`wake_create_grant`, `wake_list_grants`, `wake_revoke_grant`), and `wake_send_peer_wake` sends a peer wake with a grant token another device handed over. The v1 wire format is experimental until the apps adopt it. `register_device` and `test_notification` are unchanged.
- Remove the Boltz swap module, since the Boltz service has shut down. All `boltz*` functions and the Boltz types (`BoltzNetwork`, `BoltzSwapType`, `BoltzSwapStatus`, `BoltzPairInfo`, `SubmarineSwapResponse`, `ReverseSwapResponse`, `BoltzSwap`, `BoltzSwapEvent`, `BoltzError`, `BoltzEventListener`) are gone, along with the `boltz-client` dependency. `init_db` no longer creates or opens `boltz.db`, and leaves an existing one on disk untouched. Note that removing the `DbError.DbBoltzError` case changes exhaustive Kotlin `when` and Swift `switch` statements over `DbError`, which is source breaking for consumers.

## 0.5.16 - 2026-09-14

Expand Down
Loading
Loading