electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

estimate_fee.py (914B)


      1 #!/usr/bin/env python3
      2 import json
      3 import asyncio
      4 from statistics import median
      5 from numbers import Number
      6 
      7 from electrum.network import filter_protocol, Network
      8 from electrum.util import create_and_start_event_loop, log_exceptions
      9 from electrum.simple_config import SimpleConfig
     10 
     11 
     12 config = SimpleConfig()
     13 
     14 loop, stopping_fut, loop_thread = create_and_start_event_loop()
     15 network = Network(config)
     16 network.start()
     17 
     18 @log_exceptions
     19 async def f():
     20     try:
     21         peers = await network.get_peers()
     22         peers = filter_protocol(peers)
     23         results = await network.send_multiple_requests(peers, 'blockchain.estimatefee', [2])
     24         print(json.dumps(results, indent=4))
     25         feerate_estimates = filter(lambda x: isinstance(x, Number), results.values())
     26         print(f"median feerate: {median(feerate_estimates)}")
     27     finally:
     28         stopping_fut.set_result(1)
     29 
     30 asyncio.run_coroutine_threadsafe(f(), loop)