monero fixes (#1581)
* correct comparision while syncing * fix issue from report 25916.txt * return proper address even if numSubaddresses returned 0
cyan committed
Aug 7, 2024 at 18:12 UTC
96e4a4eb6c41a0a3c541a617073096ef96c1492f
5 files changed
+13
-5
cw_monero/lib/api/subaddress_list.dart
+5
-1
@@ -42,12 +42,16 @@ class Subaddress {
42
43
List<Subaddress> getAllSubaddresses() {
44
final size = monero.Wallet_numSubaddresses(wptr!, accountIndex: subaddress!.accountIndex);
45
- return List.generate(size, (index) {
45
+ final list = List.generate(size, (index) {
46
return Subaddress(
47
accountIndex: subaddress!.accountIndex,
48
addressIndex: index,
49
);
50
}).reversed.toList();
51
+ if (list.length == 0) {
52
+ list.add(Subaddress(addressIndex: subaddress!.accountIndex, accountIndex: 0));
53
+ }
54
+ return list;
55
}
56
57
void addSubaddressSync({required int accountIndex, required String label}) {
cw_monero/lib/api/wallet.dart
+1
-1
@@ -131,7 +131,7 @@ void storeSync() async {
131
return monero.Wallet_synchronized(Pointer.fromAddress(addr));
132
});
133
if (lastStorePointer == wptr!.address &&
134
- lastStoreHeight + 5000 < monero.Wallet_blockChainHeight(wptr!) &&
134
+ lastStoreHeight + 5000 > monero.Wallet_blockChainHeight(wptr!) &&
135
!synchronized) {
136
return;
137
}
cw_monero/lib/monero_wallet_addresses.dart
+1
-1
@@ -109,7 +109,7 @@ abstract class MoneroWalletAddressesBase extends WalletAddresses with Store {
109
accountIndex: accountIndex,
110
defaultLabel: defaultLabel,
111
usedAddresses: usedAddresses.toList());
112
- subaddress = subaddressList.subaddresses.last;
112
+ subaddress = (subaddressList.subaddresses.isEmpty) ? Subaddress(id: 0, address: address, label: defaultLabel) : subaddressList.subaddresses.last;
113
address = subaddress!.address;
114
}
115
cw_wownero/lib/api/subaddress_list.dart
+5
-1
@@ -41,12 +41,16 @@ class Subaddress {
41
42
List<Subaddress> getAllSubaddresses() {
43
final size = wownero.Wallet_numSubaddresses(wptr!, accountIndex: subaddress!.accountIndex);
44
- return List.generate(size, (index) {
44
+ final list = List.generate(size, (index) {
45
return Subaddress(
46
accountIndex: subaddress!.accountIndex,
47
addressIndex: index,
48
);
49
}).reversed.toList();
50
+ if (list.isEmpty) {
51
+ list.add(Subaddress(addressIndex: 0, accountIndex: subaddress!.accountIndex));
52
+ }
53
+ return list;
54
}
55
56
void addSubaddressSync({required int accountIndex, required String label}) {
cw_wownero/lib/wownero_wallet_addresses.dart
+1
-1
@@ -109,7 +109,7 @@ abstract class WowneroWalletAddressesBase extends WalletAddresses with Store {
109
accountIndex: accountIndex,
110
defaultLabel: defaultLabel,
111
usedAddresses: usedAddresses.toList());
112
- subaddress = subaddressList.subaddresses.last;
112
+ subaddress = (subaddressList.subaddresses.isEmpty) ? Subaddress(id: 0, address: address, label: defaultLabel) : subaddressList.subaddresses.last;
113
address = subaddress!.address;
114
}
115