Merge pull request #168 from nahuhh/monero_speed

interface: xmr.py allow startup with a busy daemon
This commit is contained in:
tecnovert 2024-11-27 06:36:26 +00:00 committed by GitHub
commit 25cfcc7cee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 4 deletions

View file

@ -999,6 +999,12 @@ class BasicSwap(BaseApp):
except Exception as e:
self.log.error("Sanity checks failed: %s", str(e))
elif c in (Coins.XMR, Coins.WOW):
try:
ci.ensureWalletExists()
except Exception as e:
self.log.warning("Can't open %s wallet, could be locked.", ci.coin_name())
continue
elif c == Coins.LTC:
ci_mweb = self.ci(Coins.LTC_MWEB)
is_encrypted, _ = self.getLockedState()

View file

@ -114,7 +114,7 @@ class XMRInterface(CoinInterface):
log_str: str = ""
have_cc_tor_opt = "use_tor" in chain_client_settings
if have_cc_tor_opt and chain_client_settings["use_tor"] is False:
log_str = " bypassing proxy (use_tor false for XMR)"
log_str = f" bypassing proxy (use_tor false for {self.coin_name()})"
elif have_cc_tor_opt is False and is_private_ip_address(rpchost):
log_str = " bypassing proxy (private ip address)"
else:
@ -186,16 +186,19 @@ class XMRInterface(CoinInterface):
self.rpc_wallet("open_wallet", params)
# TODO Remove `refresh` after upstream fix to refresh on open_wallet
self.rpc_wallet("refresh")
except Exception:
self._log.debug(f"Failed to open {self.coin_name()} wallet")
except Exception as e:
if "no connection to daemon" in str(e):
self._log.debug(f"{self.coin_name()} {e}")
return # bypass refresh error to allow startup with a busy daemon
try:
# TODO Remove `store` after upstream fix to autosave on close_wallet
self.rpc_wallet("store")
self.rpc_wallet("close_wallet")
self._log.debug(f"Attempt to save and close {self.coin_name()} wallet")
except Exception as e:
self._log.debug(f"{self.coin_name()}: {e}")
pass
self.rpc_wallet("open_wallet", params)
# TODO Remove `refresh` after upstream fix to refresh on open_wallet
self.rpc_wallet("refresh")