refactor: rename addresses when matched by receive type

This commit is contained in:
Rafael Saes 2024-02-15 18:29:03 -03:00
parent 8cd1693b6b
commit b3a6a79363
4 changed files with 15 additions and 13 deletions

View file

@ -115,8 +115,9 @@ abstract class ElectrumWalletBase
@observable
SyncStatus syncStatus;
List<String> get scriptHashes =>
walletAddresses.addresses.map((addr) => scriptHash(addr.address, network: network)).toList();
List<String> get scriptHashes => walletAddresses.addressesByReceiveType
.map((addr) => scriptHash(addr.address, network: network))
.toList();
List<String> get publicScriptHashes => walletAddresses.allAddresses
.where((addr) => !addr.isHidden)

View file

@ -31,7 +31,8 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
Map<String, int>? initialRegularAddressIndex,
Map<String, int>? initialChangeAddressIndex,
}) : _addresses = ObservableList<BitcoinAddressRecord>.of((initialAddresses ?? []).toSet()),
addresses = ObservableList<BitcoinAddressRecord>.of((<BitcoinAddressRecord>[]).toSet()),
addressesByReceiveType =
ObservableList<BitcoinAddressRecord>.of((<BitcoinAddressRecord>[]).toSet()),
receiveAddresses = ObservableList<BitcoinAddressRecord>.of((initialAddresses ?? [])
.where((addressRecord) => !addressRecord.isHidden && !addressRecord.isUsed)
.toSet()),
@ -57,7 +58,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
final ObservableList<BitcoinAddressRecord> _addresses;
// Matched by addressPageType
late ObservableList<BitcoinAddressRecord> addresses;
late ObservableList<BitcoinAddressRecord> addressesByReceiveType;
final ObservableList<BitcoinAddressRecord> receiveAddresses;
final ObservableList<BitcoinAddressRecord> changeAddresses;
final ElectrumClient electrumClient;
@ -89,7 +90,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
previousAddressRecord != null && previousAddressRecord!.type == addressPageType;
if (previousAddressMatchesType &&
typeMatchingReceiveAddresses.first.address != addresses.first.address) {
typeMatchingReceiveAddresses.first.address != addressesByReceiveType.first.address) {
receiveAddress = previousAddressRecord!.address;
} else {
receiveAddress = typeMatchingReceiveAddresses.first.address;
@ -137,7 +138,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
BitcoinAddressRecord? previousAddressRecord;
@computed
int get totalCountOfReceiveAddresses => addresses.fold(0, (acc, addressRecord) {
int get totalCountOfReceiveAddresses => addressesByReceiveType.fold(0, (acc, addressRecord) {
if (!addressRecord.isHidden) {
return acc + 1;
}
@ -145,7 +146,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
});
@computed
int get totalCountOfChangeAddresses => addresses.fold(0, (acc, addressRecord) {
int get totalCountOfChangeAddresses => addressesByReceiveType.fold(0, (acc, addressRecord) {
if (addressRecord.isHidden) {
return acc + 1;
}
@ -195,7 +196,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
}
BitcoinAddressRecord generateNewAddress({String label = ''}) {
final newAddressIndex = addresses.fold(
final newAddressIndex = addressesByReceiveType.fold(
0, (int acc, addressRecord) => addressRecord.isHidden == false ? acc + 1 : acc);
final address = BitcoinAddressRecord(
@ -241,8 +242,8 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
@action
void updateAddressesByMatch() {
addresses.clear();
addresses.addAll(_addresses.where(_isAddressPageTypeMatch).toList());
addressesByReceiveType.clear();
addressesByReceiveType.addAll(_addresses.where(_isAddressPageTypeMatch).toList());
}
@action

View file

@ -328,7 +328,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store {
@override
String signMessage(String message, {String? address = null}) {
final index = address != null
? walletAddresses.addresses
? walletAddresses.allAddresses
.firstWhere((element) => element.address == AddressUtils.toLegacyAddress(address))
.index
: null;

View file

@ -100,7 +100,7 @@ class CWBitcoin extends Bitcoin {
@override
List<String> getAddresses(Object wallet) {
final bitcoinWallet = wallet as ElectrumWallet;
return bitcoinWallet.walletAddresses.addresses
return bitcoinWallet.walletAddresses.addressesByReceiveType
.map((BitcoinAddressRecord addr) => addr.address)
.toList();
}
@ -109,7 +109,7 @@ class CWBitcoin extends Bitcoin {
@computed
List<ElectrumSubAddress> getSubAddresses(Object wallet) {
final electrumWallet = wallet as ElectrumWallet;
return electrumWallet.walletAddresses.addresses
return electrumWallet.walletAddresses.addressesByReceiveType
.map((BitcoinAddressRecord addr) => ElectrumSubAddress(
id: addr.index,
name: addr.name,