fix: address list

This commit is contained in:
Rafael Saes 2025-01-24 17:37:57 -03:00
parent 309dca9ac9
commit be1b964967
5 changed files with 19 additions and 5 deletions

View file

@ -31,6 +31,9 @@ abstract class BitcoinWalletAddressesBase extends ElectrumWalletAddresses with S
silentPaymentWallets = [silentPaymentWallet!]; silentPaymentWallets = [silentPaymentWallet!];
} }
@override
final walletAddressTypes = BITCOIN_ADDRESS_TYPES;
static const OLD_SP_PATH = "m/352'/1'/0'/#'/0"; static const OLD_SP_PATH = "m/352'/1'/0'/#'/0";
static const BITCOIN_ADDRESS_TYPES = [ static const BITCOIN_ADDRESS_TYPES = [
SegwitAddressType.p2wpkh, SegwitAddressType.p2wpkh,
@ -53,6 +56,8 @@ abstract class BitcoinWalletAddressesBase extends ElectrumWalletAddresses with S
@override @override
Future<void> init() async { Future<void> init() async {
super.init();
// TODO: if restored from snapshot // TODO: if restored from snapshot
if (allAddresses.where((address) => address.type == SegwitAddressType.p2wpkh).isEmpty) { if (allAddresses.where((address) => address.type == SegwitAddressType.p2wpkh).isEmpty) {

View file

@ -1349,7 +1349,7 @@ abstract class ElectrumWalletBase
await save(); await save();
} else if (response.completed) { } else if (response.completed) {
checkAddressesGap(); // checkAddressesGap();
} }
} }

View file

@ -65,17 +65,17 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
@computed @computed
List<BaseBitcoinAddressRecord> get selectedReceiveAddresses => List<BaseBitcoinAddressRecord> get selectedReceiveAddresses =>
receiveAddressesByType[_addressPageType]!; receiveAddressesByType[_addressPageType] ?? [];
@computed @computed
List<BaseBitcoinAddressRecord> get selectedChangeAddresses => List<BaseBitcoinAddressRecord> get selectedChangeAddresses =>
receiveAddressesByType[_addressPageType]!; changeAddressesByType[_addressPageType] ?? [];
List<BaseBitcoinAddressRecord> getAddressesByType( List<BaseBitcoinAddressRecord> getAddressesByType(
BitcoinAddressType type, [ BitcoinAddressType type, [
bool isChange = false, bool isChange = false,
]) => ]) =>
isChange ? changeAddressesByType[type]! : receiveAddressesByType[type]!; (isChange ? changeAddressesByType[type] : receiveAddressesByType[type]) ?? [];
@computed @computed
BitcoinAddressType get addressPageType => _addressPageType; BitcoinAddressType get addressPageType => _addressPageType;
@ -282,7 +282,6 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
@action @action
void updateAddressesByType() { void updateAddressesByType() {
receiveAddressesByType.clear();
walletAddressTypes.forEach((type) { walletAddressTypes.forEach((type) {
receiveAddressesByType[type] = receiveAddressesByType[type] =
_allAddresses.where((addr) => _isAddressByType(addr, type)).toList(); _allAddresses.where((addr) => _isAddressByType(addr, type)).toList();

View file

@ -37,6 +37,11 @@ abstract class LitecoinWalletAddressesBase extends ElectrumWalletAddresses with
printV("initialized with ${mwebAddrs.length} mweb addresses"); printV("initialized with ${mwebAddrs.length} mweb addresses");
} }
@override
final walletAddressTypes = LITECOIN_ADDRESS_TYPES;
static const LITECOIN_ADDRESS_TYPES = [SegwitAddressType.p2wpkh];
final ObservableList<LitecoinMWEBAddressRecord> mwebAddresses; final ObservableList<LitecoinMWEBAddressRecord> mwebAddresses;
late final Bip32Slip10Secp256k1? mwebHd; late final Bip32Slip10Secp256k1? mwebHd;

View file

@ -20,6 +20,11 @@ abstract class BitcoinCashWalletAddressesBase extends ElectrumWalletAddresses wi
super.initialAddressPageType, super.initialAddressPageType,
}) : super(walletInfo); }) : super(walletInfo);
@override
final walletAddressTypes = BITCOIN_CASH_ADDRESS_TYPES;
static const BITCOIN_CASH_ADDRESS_TYPES = [P2pkhAddressType.p2pkh];
@override @override
Future<void> init() async { Future<void> init() async {
await generateInitialAddresses(type: P2pkhAddressType.p2pkh); await generateInitialAddresses(type: P2pkhAddressType.p2pkh);