Files
hash-wallet/cw_wownero
jwinterm f08ae897e6 fix(wownero): hold the history mutex while reading transactions
The 1.0.5 build 15 macOS test crashed with SIGSEGV in
WOWNERO_TransactionInfo_amount on the main thread, near the end of a
restore sync. TransactionHistory_refresh runs on a background isolate
under txHistoryMutex and frees the TransactionInfo objects it replaces;
getAllSubaddresses() and getTransaction() read those objects without
the mutex, so a read that overlaps a refresh dereferences freed memory.
The wallet cache had not been stored, so the next launch synced again.

Upstream fixed the same race for Monero in #3188 and in the v6.4.5
coin-control change; this ports both to cw_wownero. getAllSubaddresses()
and getTransaction() take the mutex and become async, which carries
through the subaddress list, its app proxy and the configure interface.
The subaddress list now fetches before clearing, so the observable list
is never empty while the fetch is pending, and addSubaddress and
setLabelSubaddress await the update before callers read the new address.

The coin-control change check compared a Transaction with 1 and was
always false; it now uses the transaction's direction, as Monero does.
2026-10-31 12:50:36 -04:00
..
2024-07-04 22:43:17 +03:00
2024-07-04 22:43:17 +03:00
2024-07-04 22:43:17 +03:00
2024-07-04 22:43:17 +03:00
2026-10-24 23:49:29 -04:00

cw_wownero

Wownero wallet module for Cake Wallet, providing a Monero-family wallet with Wownero-specific APIs and bindings.

Features

  • Create/open/restore Wownero wallets; accounts and subaddresses.
  • Build/sign/broadcast transactions; history and unspent outputs.
  • Platform interface and method channel for native bindings.
  • Exception types for setup, creation, opening, and restore flows.

Usage

See lib/api/ and high-level wrappers like wownero_wallet.dart and wownero_wallet_service.dart for end-to-end wallet lifecycle and usage.