diff --git a/cw_bitcoin/lib/bitcoin_wallet_addresses.dart b/cw_bitcoin/lib/bitcoin_wallet_addresses.dart index 52696a14a..5f0fd99de 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_addresses.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_addresses.dart @@ -31,6 +31,9 @@ abstract class BitcoinWalletAddressesBase extends ElectrumWalletAddresses with S silentPaymentWallets = [silentPaymentWallet!]; } + @override + final walletAddressTypes = BITCOIN_ADDRESS_TYPES; + static const OLD_SP_PATH = "m/352'/1'/0'/#'/0"; static const BITCOIN_ADDRESS_TYPES = [ SegwitAddressType.p2wpkh, @@ -53,6 +56,8 @@ abstract class BitcoinWalletAddressesBase extends ElectrumWalletAddresses with S @override Future<void> init() async { + super.init(); + // TODO: if restored from snapshot if (allAddresses.where((address) => address.type == SegwitAddressType.p2wpkh).isEmpty) { diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 10668e8ae..f92f6d0b1 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -1349,7 +1349,7 @@ abstract class ElectrumWalletBase await save(); } else if (response.completed) { - checkAddressesGap(); + // checkAddressesGap(); } } diff --git a/cw_bitcoin/lib/electrum_wallet_addresses.dart b/cw_bitcoin/lib/electrum_wallet_addresses.dart index d9a2fbe6f..cfd9fd82b 100644 --- a/cw_bitcoin/lib/electrum_wallet_addresses.dart +++ b/cw_bitcoin/lib/electrum_wallet_addresses.dart @@ -65,17 +65,17 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { @computed List<BaseBitcoinAddressRecord> get selectedReceiveAddresses => - receiveAddressesByType[_addressPageType]!; + receiveAddressesByType[_addressPageType] ?? []; @computed List<BaseBitcoinAddressRecord> get selectedChangeAddresses => - receiveAddressesByType[_addressPageType]!; + changeAddressesByType[_addressPageType] ?? []; List<BaseBitcoinAddressRecord> getAddressesByType( BitcoinAddressType type, [ bool isChange = false, ]) => - isChange ? changeAddressesByType[type]! : receiveAddressesByType[type]!; + (isChange ? changeAddressesByType[type] : receiveAddressesByType[type]) ?? []; @computed BitcoinAddressType get addressPageType => _addressPageType; @@ -282,7 +282,6 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { @action void updateAddressesByType() { - receiveAddressesByType.clear(); walletAddressTypes.forEach((type) { receiveAddressesByType[type] = _allAddresses.where((addr) => _isAddressByType(addr, type)).toList(); diff --git a/cw_bitcoin/lib/litecoin_wallet_addresses.dart b/cw_bitcoin/lib/litecoin_wallet_addresses.dart index 1faa8eeb5..7daab74d6 100644 --- a/cw_bitcoin/lib/litecoin_wallet_addresses.dart +++ b/cw_bitcoin/lib/litecoin_wallet_addresses.dart @@ -37,6 +37,11 @@ abstract class LitecoinWalletAddressesBase extends ElectrumWalletAddresses with printV("initialized with ${mwebAddrs.length} mweb addresses"); } + @override + final walletAddressTypes = LITECOIN_ADDRESS_TYPES; + + static const LITECOIN_ADDRESS_TYPES = [SegwitAddressType.p2wpkh]; + final ObservableList<LitecoinMWEBAddressRecord> mwebAddresses; late final Bip32Slip10Secp256k1? mwebHd; diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart index f534128bf..5f22d408b 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart @@ -20,6 +20,11 @@ abstract class BitcoinCashWalletAddressesBase extends ElectrumWalletAddresses wi super.initialAddressPageType, }) : super(walletInfo); + @override + final walletAddressTypes = BITCOIN_CASH_ADDRESS_TYPES; + + static const BITCOIN_CASH_ADDRESS_TYPES = [P2pkhAddressType.p2pkh]; + @override Future<void> init() async { await generateInitialAddresses(type: P2pkhAddressType.p2pkh);