From 1cf23f7f79f10ebe35adc1731391d9f50292840d Mon Sep 17 00:00:00 2001 From: zebra-lucky Date: Fri, 28 Nov 2025 05:59:36 +0200 Subject: [PATCH] scripts: update other scripts with wrap_main --- scripts/bond-calculator.py | 5 ++++- scripts/bumpfee.py | 6 ++++-- scripts/genwallet.py | 5 ++++- scripts/receive-payjoin.py | 15 +++++++++++++-- scripts/sendpayment.py | 6 ++++-- scripts/sendtomany.py | 5 ++++- scripts/tumbler.py | 6 +++++- scripts/yg-privacyenhanced.py | 5 ++++- scripts/yield-generator-basic.py | 5 ++++- 9 files changed, 46 insertions(+), 12 deletions(-) diff --git a/scripts/bond-calculator.py b/scripts/bond-calculator.py index 047d281..69349cc 100755 --- a/scripts/bond-calculator.py +++ b/scripts/bond-calculator.py @@ -9,6 +9,7 @@ from optparse import OptionParser import jmclient # install asyncioreactor from twisted.internet import reactor +from scripts_support import wrap_main, finalize_main_task from jmbase import EXIT_ARGERROR, jmprint, get_log, utxostr_to_utxo, EXIT_FAILURE from jmbitcoin import amount_to_sat, amount_to_str @@ -133,11 +134,13 @@ async def main() -> None: jmprint(f"Top {result['percentile']}% of the orderbook by value") +@wrap_main async def _main(): await main() if __name__ == "__main__": asyncio_loop = asyncio.get_event_loop() - asyncio_loop.create_task(_main()) + main_task = asyncio_loop.create_task(_main()) reactor.run() + finalize_main_task(main_task) diff --git a/scripts/bumpfee.py b/scripts/bumpfee.py index 84448c7..dcbde12 100755 --- a/scripts/bumpfee.py +++ b/scripts/bumpfee.py @@ -5,6 +5,7 @@ from decimal import Decimal import jmclient # install asyncioreactor from twisted.internet import reactor +from scripts_support import wrap_main, finalize_main_task from jmbase import get_log, hextobin, bintohex from jmbase.support import EXIT_SUCCESS, EXIT_FAILURE, EXIT_ARGERROR, jmprint, cli_prompt_user_yesno @@ -291,12 +292,13 @@ async def main(self): sys.exit(EXIT_FAILURE) +@wrap_main async def _main(): await main() - reactor.stop() if __name__ == "__main__": asyncio_loop = asyncio.get_event_loop() - asyncio_loop.create_task(_main()) + main_task = asyncio_loop.create_task(_main()) reactor.run() + finalize_main_task(main_task) diff --git a/scripts/genwallet.py b/scripts/genwallet.py index 812ca19..832334d 100755 --- a/scripts/genwallet.py +++ b/scripts/genwallet.py @@ -9,6 +9,7 @@ from optparse import OptionParser import jmclient # install asyncioreactor from twisted.internet import reactor +from scripts_support import wrap_main, finalize_main_task from pathlib import Path from jmclient import ( @@ -58,11 +59,13 @@ async def main(): wallet.close() +@wrap_main async def _main(): await main() if __name__ == "__main__": asyncio_loop = asyncio.get_event_loop() - asyncio_loop.create_task(_main()) + main_task = asyncio_loop.create_task(_main()) reactor.run() + finalize_main_task(main_task) diff --git a/scripts/receive-payjoin.py b/scripts/receive-payjoin.py index 446476a..0556eb6 100755 --- a/scripts/receive-payjoin.py +++ b/scripts/receive-payjoin.py @@ -7,6 +7,7 @@ import sys import jmclient # install asyncioreactor from twisted.internet import reactor +from scripts_support import wrap_main, finalize_main_task from jmbase import get_log, jmprint from jmclient import jm_single, load_program_config, \ @@ -17,6 +18,7 @@ from jmbase.support import EXIT_FAILURE, EXIT_ARGERROR from jmbitcoin import amount_to_sat jlog = get_log() + async def receive_payjoin_main(): parser = OptionParser(usage='usage: %prog [options] [wallet file] [amount-to-receive]') add_base_options(parser) @@ -86,6 +88,15 @@ async def receive_payjoin_main(): # JM is default, so must be switched off explicitly in this call: start_reactor(dhost, dport, bip78=True, jm_coinjoin=False, daemon=daemon) -if __name__ == "__main__": - receive_payjoin_main() + +@wrap_main +def _main(): + await receive_payjoin_main() jmprint('done') + + +if __name__ == "__main__": + asyncio_loop = asyncio.get_event_loop() + main_task = asyncio_loop.create_task(_main()) + reactor.run() + finalize_main_task(main_task) diff --git a/scripts/sendpayment.py b/scripts/sendpayment.py index 64e0caa..ccedd31 100755 --- a/scripts/sendpayment.py +++ b/scripts/sendpayment.py @@ -13,6 +13,7 @@ import pprint import jmclient # install asyncioreactor from twisted.internet import reactor +from scripts_support import wrap_main, finalize_main_task from jmclient import Taker, load_program_config, get_schedule,\ JMClientProtocolFactory, start_reactor, validate_address, is_burn_destination, \ @@ -419,13 +420,14 @@ async def main(): await taker_finished_future +@wrap_main async def _main(): await main() jmprint('done', "success") - reactor.stop() if __name__ == "__main__": asyncio_loop = asyncio.get_event_loop() - asyncio_loop.create_task(_main()) + main_task = asyncio_loop.create_task(_main()) reactor.run() + finalize_main_task(main_task) diff --git a/scripts/sendtomany.py b/scripts/sendtomany.py index 8140bfd..43d071e 100755 --- a/scripts/sendtomany.py +++ b/scripts/sendtomany.py @@ -11,6 +11,7 @@ import jmbitcoin as btc import jmclient # install asyncioreactor from twisted.internet import reactor +from scripts_support import wrap_main, finalize_main_task from jmbase import (get_log, jmprint, bintohex, utxostr_to_utxo, IndentedHelpFormatterWithNL, cli_prompt_user_yesno) @@ -125,6 +126,7 @@ async def main(): jm_single().bc_interface.pushtx(txsigned.serialize()) +@wrap_main async def _main(): await main() jmprint('done', "success") @@ -132,5 +134,6 @@ async def _main(): if __name__ == "__main__": asyncio_loop = asyncio.get_event_loop() - asyncio_loop.create_task(_main()) + main_task = asyncio_loop.create_task(_main()) reactor.run() + finalize_main_task(main_task) diff --git a/scripts/tumbler.py b/scripts/tumbler.py index 420d8d3..0248120 100755 --- a/scripts/tumbler.py +++ b/scripts/tumbler.py @@ -5,6 +5,7 @@ import sys import jmclient # install asyncioreactor from twisted.internet import reactor +from scripts_support import wrap_main, finalize_main_task import os import pprint @@ -202,6 +203,8 @@ async def main(): jm_single().config.getint("DAEMON", "daemon_port"), clientfactory, daemon=daemon) + +@wrap_main async def _main(): res = await main() print('done') @@ -209,5 +212,6 @@ async def _main(): if __name__ == "__main__": asyncio_loop = asyncio.get_event_loop() - asyncio_loop.create_task(_main()) + main_task = asyncio_loop.create_task(_main()) reactor.run() + finalize_main_task(main_task) diff --git a/scripts/yg-privacyenhanced.py b/scripts/yg-privacyenhanced.py index 4e8f407..d005720 100755 --- a/scripts/yg-privacyenhanced.py +++ b/scripts/yg-privacyenhanced.py @@ -6,6 +6,7 @@ import sys import jmclient # install asyncioreactor from twisted.internet import reactor +from scripts_support import wrap_main, finalize_main_task from jmbase import get_log, jmprint, EXIT_ARGERROR from jmbitcoin import amount_to_str @@ -112,6 +113,7 @@ class YieldGeneratorPrivacyEnhanced(YieldGeneratorBasic): return [order] +@wrap_main async def _main(): await ygmain(YieldGeneratorPrivacyEnhanced, nickserv_password='') jmprint('done', "success") @@ -119,5 +121,6 @@ async def _main(): if __name__ == "__main__": asyncio_loop = asyncio.get_event_loop() - asyncio_loop.create_task(_main()) + main_task = asyncio_loop.create_task(_main()) reactor.run() + finalize_main_task(main_task) diff --git a/scripts/yield-generator-basic.py b/scripts/yield-generator-basic.py index fab9fca..014ddf0 100755 --- a/scripts/yield-generator-basic.py +++ b/scripts/yield-generator-basic.py @@ -4,6 +4,7 @@ import asyncio import jmclient # install asyncioreactor from twisted.internet import reactor +from scripts_support import wrap_main, finalize_main_task from jmbase import jmprint from jmclient import YieldGeneratorBasic, ygmain @@ -12,6 +13,7 @@ from jmclient import YieldGeneratorBasic, ygmain # (You can also use command line flags; see --help for this script). +@wrap_main async def _main(): await ygmain(YieldGeneratorBasic, nickserv_password='') jmprint("done", "success") @@ -19,5 +21,6 @@ async def _main(): if __name__ == "__main__": asyncio_loop = asyncio.get_event_loop() - asyncio_loop.create_task(_main()) + main_task = asyncio_loop.create_task(_main()) reactor.run() + finalize_main_task(main_task)