store() on bad network (#1543)

* fix: for storing on bad network connection.

* feat from standup

* fix missing declaration

* remove forcing trusted daemon flag [skip ci]

---------

Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
This commit is contained in:
cyan
2024-07-21 03:43:09 +03:00
committed by GitHub
co-authored by OmarHatem
parent 341e06196d
commit 7514d851ce
2 changed files with 29 additions and 2 deletions
+15 -1
View File
@@ -121,9 +121,23 @@ void setRecoveringFromSeed({required bool isRecovery}) =>
monero.Wallet_setRecoveringFromSeed(wptr!, recoveringFromSeed: isRecovery);
final storeMutex = Mutex();
int lastStorePointer = 0;
int lastStoreHeight = 0;
void storeSync() async {
await storeMutex.acquire();
final addr = wptr!.address;
final synchronized = await Isolate.run(() {
return monero.Wallet_synchronized(Pointer.fromAddress(addr));
});
if (lastStorePointer == wptr!.address &&
lastStoreHeight + 5000 < monero.Wallet_blockChainHeight(wptr!) &&
!synchronized) {
return;
}
lastStorePointer = wptr!.address;
lastStoreHeight = monero.Wallet_blockChainHeight(wptr!);
await storeMutex.acquire();
await Isolate.run(() {
monero.Wallet_store(Pointer.fromAddress(addr));
});
+14 -1
View File
@@ -126,9 +126,22 @@ void setRecoveringFromSeed({required bool isRecovery}) =>
wownero.Wallet_setRecoveringFromSeed(wptr!, recoveringFromSeed: isRecovery);
final storeMutex = Mutex();
int lastStorePointer = 0;
int lastStoreHeight = 0;
void storeSync() async {
await storeMutex.acquire();
final addr = wptr!.address;
final synchronized = await Isolate.run(() {
return wownero.Wallet_synchronized(Pointer.fromAddress(addr));
});
if (lastStorePointer == wptr!.address &&
lastStoreHeight + 5000 < wownero.Wallet_blockChainHeight(wptr!) &&
!synchronized) {
return;
}
lastStorePointer = wptr!.address;
lastStoreHeight = wownero.Wallet_blockChainHeight(wptr!);
await storeMutex.acquire();
Isolate.run(() {
wownero.Wallet_store(Pointer.fromAddress(addr));
});