diff --git a/bin/silkaj b/bin/silkaj index 72eb739beb6e1edfe52ee8752594bb059e393c31..61bfa060ceecebfb6f8dc8a9bb91c0d3de6d2431 100755 --- a/bin/silkaj +++ b/bin/silkaj @@ -18,6 +18,7 @@ along with Silkaj. If not, see <https://www.gnu.org/licenses/>. """ from sys import exit +from asyncio import get_event_loop from silkaj.network_tools import check_port, best_node, EndPoint from silkaj.cli_tools import manage_cmd @@ -27,4 +28,4 @@ if __name__ == "__main__": if not check_port(ep["port"]): exit(1) best_node(ep, True) - manage_cmd() + get_event_loop().run_until_complete(manage_cmd()) diff --git a/silkaj/cli_tools.py b/silkaj/cli_tools.py index 6ebb7f62fe7f30572644347bc872bd77ba13a129..c90e7bc4eaa6e9caf1384cd0d122c01561a72854 100644 --- a/silkaj/cli_tools.py +++ b/silkaj/cli_tools.py @@ -119,7 +119,7 @@ def usage(): ) -def manage_cmd(): +async def manage_cmd(): cli_args = Command() if cli_args.is_version_request(): message_exit(SILKAJ_VERSION) @@ -155,7 +155,7 @@ def manage_cmd(): currency_info() elif cli_args.subcmd == "diffi": - difficulties() + await difficulties() elif cli_args.subcmd == "net" or cli_args.subcmd == "network": if cli_args.contains_switches("sort"): diff --git a/silkaj/commands.py b/silkaj/commands.py index b0af8e67fcbfa821f796b178c1d5f886d395c2c9..234a3aa83ee14b0421f909d95b0314c57ee7f804 100644 --- a/silkaj/commands.py +++ b/silkaj/commands.py @@ -21,6 +21,7 @@ from os import system, popen from collections import OrderedDict from tabulate import tabulate from operator import itemgetter +from duniterpy.api.bma import blockchain from silkaj.wot import get_uid_from_pubkey from silkaj.network_tools import ( @@ -28,6 +29,7 @@ from silkaj.network_tools import ( get_request, best_node, EndPoint, + ClientInstance, HeadBlock, ) from silkaj.tools import convert_time, message_exit, CurrencySymbol @@ -106,14 +108,15 @@ def power(nbr, pow=0): return "{0:.1f} × 10^{1}".format(nbr, pow) -def difficulties(): +async def difficulties(): + client = ClientInstance().client while True: - diffi = get_request("blockchain/difficulties") + diffi = await client(blockchain.difficulties) levels = [ OrderedDict((i, d[i]) for i in ("uid", "level")) for d in diffi["levels"] ] diffi["levels"] = levels - current = get_request("blockchain/current") + current = await client(blockchain.current) issuers = 0 sorted_diffi = sorted(diffi["levels"], key=itemgetter("level"), reverse=True) for d in diffi["levels"]: @@ -136,6 +139,7 @@ def difficulties(): ) ) sleep(5) + await client.close() network_sort_keys = ["block", "member", "diffi", "uid"]