fix: incorrect balance in send card (#2158)

* fix: incorrect balance in send card

* fix: ensure that all unique Unspent are used in calculation
This commit is contained in:
cyan 2025-04-04 12:56:07 +02:00 committed by GitHub
parent e842e818d9
commit fd16a099ea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 5 deletions

View file

@ -21,4 +21,9 @@ class Unspent with UnspentComparable {
bool get isP2wpkh =>
address.startsWith('bc') || address.startsWith('tb') || address.startsWith('ltc');
@override
String toString() {
return 'Unspent(address: $address, hash: $hash, value: $value, vout: $vout, keyImage: $keyImage, isSending: $isSending, isFrozen: $isFrozen, isChange: $isChange, note: $note)';
}
}

View file

@ -156,8 +156,8 @@ abstract class UnspentCoinsListViewModelBase with Store {
await _updateUnspents();
Set<String> seen = {};
for (final item in _getSpecificUnspents(overrideCoinTypeToSpendFrom)) {
if (seen.contains(item.hash)) continue;
seen.add(item.hash);
if (seen.contains(item.toString())) continue;
seen.add(item.toString());
if (item.isFrozen || !item.isSending) continue;
total += item.value;
}
@ -166,8 +166,6 @@ abstract class UnspentCoinsListViewModelBase with Store {
@action
void _updateUnspentCoinsInfo() {
items.clear();
final unspents = _getUnspents()
.map((elem) {
try {
@ -201,7 +199,7 @@ abstract class UnspentCoinsListViewModelBase with Store {
.toList();
unspents.sort((a, b) => b.value.compareTo(a.value));
items.clear();
items.addAll(unspents);
}