Files
hash-wallet/cw_dogecoin
3b100eae33 CW1612: AnyPay Service Layer (#3516)
* fix android CI

* feat: add anypay core models, parser and routing engine

* feat: add anypay resolver, anypay service and wallet switch service

* refactor: route the send page payment flow through anypay service

* fix: show message when there's no swap providers for a pair and reset the trade guard on dismissal

* refactor: merge the swap from network and send to network decision pages together and clean up anypay widgets

* feat: reapply deep links to a currently open send flow and register the solana scheme

* feat: add support for zcash address detection to anypay and other minor fixes

* refactor: remove trailing icon

* feat: hide swap flow for sp and mweb addresses

* feat: enhance zcash address detection and deeplink handling

* fix: pin bitcoin_base

* refactor: Move the anypay decision navigation out of the send page and address minor review comments

* refactor: Move the anypay decision navigation out of the send page and address minor review comments

* feat: handle exception in switch service and mvoe balance compute to call site

* refactor: combine anypay entry points to one and extract selected mode widget

---------

Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
2026-08-20 09:35:44 +02:00
..

cw_dogecoin

Dogecoin wallet module using the shared Bitcoin Electrum implementation (cw_bitcoin) configured for Dogecoin mainnet.

Features

  • Derive keys via BIP‑39; Dogecoin HD paths using bitcoin_base.
  • Connect to Electrum nodes; maintain address sets and UTXOs.
  • Create/sign/broadcast DOGE transactions with configurable fee rate.
  • Address book and index management (receive/change, auto-generate settings).
  • Message signing and verification.

Getting started

Create/open via DogecoinWalletService in the app using WalletType.dogecoin. Ensure Electrum nodes are configured for Dogecoin.

final wallet = await DogeCoinWallet.create(
  mnemonic: '...',
  password: 'secret',
  walletInfo: walletInfo,
  unspentCoinsInfo: unspentCoinsBox,
  encryptionFileUtils: encryption,
);

Usage

Estimate fee and send:

final feeRate = wallet.feeRate(BitcoinCashTransactionPriority.medium); // example priority mapping
final pending = await wallet.createTransaction(
  outputs: [
    BitcoinTransactionOutput(
      address: 'D...',
      amount: 1 * 100000000, // 1 DOGE in koinu
    ),
  ],
  feeRate: feeRate,
);
final txHash = await pending.commit();

Additional information

  • See lib/src/ for classes: DogeCoinWallet, DogeCoinWalletAddresses.
  • Relies on core Electrum features in cw_bitcoin for UTXO selection and persistence.