ttxbroadcast.py - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
ttxbroadcast.py (943B)
---
1 #!/usr/bin/env python3
2 #
3 # Connect to lots of servers and broadcast a given tx to each.
4
5 import sys
6 import asyncio
7
8 from electrum.network import filter_protocol, Network
9 from electrum.util import create_and_start_event_loop, log_exceptions
10 from electrum.simple_config import SimpleConfig
11
12
13 try:
14 rawtx = sys.argv[1]
15 except:
16 print("usage: txbroadcast rawtx")
17 sys.exit(1)
18
19 config = SimpleConfig()
20
21 loop, stopping_fut, loop_thread = create_and_start_event_loop()
22 network = Network(config)
23 network.start()
24
25 @log_exceptions
26 async def f():
27 try:
28 peers = await network.get_peers()
29 peers = filter_protocol(peers)
30 results = await network.send_multiple_requests(peers, 'blockchain.transaction.broadcast', [rawtx])
31 for server, resp in results.items():
32 print(f"result: server={server}, response={resp}")
33 finally:
34 stopping_fut.set_result(1)
35
36 asyncio.run_coroutine_threadsafe(f(), loop)