Merge pull request #369 from tecnovert/prepare

prepare: start Particl daemon only once.
This commit is contained in:
tecnovert
2025-10-02 18:26:49 +00:00
committed by GitHub

View File

@@ -1768,7 +1768,7 @@ def finalise_daemon(d):
fp.close()
def test_particl_encryption(data_dir, settings, chain, use_tor_proxy):
def test_particl_encryption(data_dir, settings, chain, use_tor_proxy, extra_opts):
swap_client = None
daemons = []
daemon_args = ["-noconnect", "-nodnsseed", "-nofindpeers", "-nostaking"]
@@ -1805,10 +1805,12 @@ def test_particl_encryption(data_dir, settings, chain, use_tor_proxy):
"Must set WALLET_ENCRYPTION_PWD to add coin when Particl wallet is encrypted"
)
swap_client.ci(c).unlockWallet(WALLET_ENCRYPTION_PWD)
extra_opts["particl_daemon"] = daemons[-1]
finally:
if swap_client:
swap_client.finalise()
del swap_client
if "particl_daemon" not in extra_opts:
for d in daemons:
finalise_daemon(d)
@@ -1904,6 +1906,11 @@ def initialise_wallets(
]
extra_config = {"stdout_to_file": True, "coin_name": coin_name}
if c == Coins.PART and "particl_daemon" in extra_opts:
daemons.append(extra_opts["particl_daemon"])
del extra_opts["particl_daemon"]
else:
daemons.append(
startDaemon(
coin_settings["datadir"],
@@ -2973,14 +2980,20 @@ def main():
"tor_control_password", None
)
try:
if particl_wallet_mnemonic != "none":
# Ensure Particl wallet is unencrypted or correct password is supplied
test_particl_encryption(data_dir, settings, chain, use_tor_proxy)
# Keep daemon running to use in initialise_wallets
test_particl_encryption(
data_dir, settings, chain, use_tor_proxy, extra_opts
)
settings["chainclients"][add_coin] = chainclients[add_coin]
if not no_cores:
prepareCore(add_coin, known_coins[add_coin], settings, data_dir, extra_opts)
prepareCore(
add_coin, known_coins[add_coin], settings, data_dir, extra_opts
)
if not (prepare_bin_only or upgrade_cores):
prepareDataDir(
@@ -3001,6 +3014,10 @@ def main():
)
save_config(config_path, settings)
finally:
if "particl_daemon" in extra_opts:
finalise_daemon(extra_opts["particl_daemon"])
del extra_opts["particl_daemon"]
logger.info(f"Done. Coin {add_coin} successfully added.")
return 0