Files
hash-wallet/cw_decred
20f1ceb651 CW-1513/CW-1610: Add account archival and UI improvements (#3600)
* add ability to hide accounts

* remove import

* merge

* merge

* fix loading accounts when styleSettings are not saved yet

* merge

* auto-reformat

* small fixes

* proper reload on card unhide

* block hiding last card

* fixup

* revert formatting-only changes

* liner fixes

* fix overflows

* card layout as separate class to prevent index errors

* fix mini card on addresses page

* block opening customizers if wallet is syncing

* switch to BlocProvider.value to prevent auto dispose

* imports

* fix fiat balance

* Improve homescreen layout and account access

* Add homescreen layout regression tests

* improve account management w/ education + archival flows

* reorganize wallet-specific settings

* preserve account archival during dismissal

* fix: align account visuals with design feedback

* minor account & archival visual corrections

* simplify wallet settings + account UI state

* generalise education carousel & dismissal tracking

* refactor account UI flows + minor improvements

* minor refactors and improvement

* pass account balances as Money and format at display

* use fresh full balance for account archival check

* refactor BalanceCard w/ MoneyText + cleanup

* minor card_customizer cleanup

* rework card customizer flow

---------

Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-10-10 02:07:41 +02:00
..
2025-03-21 04:18:47 +02:00
2025-03-21 04:18:47 +02:00
2025-03-21 04:18:47 +02:00
2025-03-21 04:18:47 +02:00
2025-03-21 04:18:47 +02:00
2025-03-21 04:18:47 +02:00
2026-08-26 01:01:52 +08:00

cw_decred

Decred wallet module that bridges to the native libdcrwallet via FFI. Provides high‑level methods to create/load wallets, sync, query balances/transactions, build and broadcast transactions, and sign/verify messages.

Features

  • FFI bindings to libdcrwallet with an isolate‑based request/response model.
  • Initialize, create, load, close wallets; watch‑only creation.
  • Start sync with optional peer list; query sync status and best block.
  • Query balances, list transactions and unspents, rescan from height.
  • Create signed transactions and broadcast raw transactions.
  • Export wallet seed; change wallet password.
  • Address management (new external address, default pubkey, address lists).
  • Message signing and verification.

Getting started

Ensure the platform library is available:

  • Android/Linux: libdcrwallet.so
  • Apple: embedded cw_decred.framework/cw_decred

Initialize and load a wallet:

final lib = await Libwallet.spawn();
await lib.initLibdcrwallet('', 'info');
await lib.loadWallet(jsonEncode({ /* libdcrwallet config */ }));
await lib.startSync('wallet.db', '');
final status = await lib.syncStatus('wallet.db');

Usage

Create, sign, and broadcast a transaction:

final signed = await lib.createSignedTransaction('wallet.db', jsonEncode({
  // inputs/outputs and policy for libdcrwallet
}));
final txid = await lib.sendRawTransaction('wallet.db', signed);

Additional information

  • See lib/api/ for the isolate wrapper (libdcrwallet.dart) and low‑level bindings.
  • Errors are surfaced via the PayloadResult struct; some calls support throwOnError in higher‑level wrappers.