From 323fe963bcbf39bae8de9794596595dc94533754 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Thu, 31 Jul 2025 16:44:45 +0000 Subject: [PATCH] constants: NETS_LIST to have deterministic ordering Currently running the help command lists the supported chains in random order. This patch changes the ordering to be lexicographical. ``` $ ./run_electrum --help usage: run_electrum [-h] [--version] [-v VERBOSITY] [-D ELECTRUM_PATH] [-w WALLET_PATH] [-P] [--testnet] [--signet] [--mainnet] [--simnet] [--regtest] [--testnet4] [-o] [--rpcuser RPCUSER] [--rpcpassword RPCPASSWORD] [--forgetconfig] ... [...] global options: -v VERBOSITY Set verbosity (log levels) -D ELECTRUM_PATH, --dir ELECTRUM_PATH electrum directory -w WALLET_PATH, --wallet WALLET_PATH wallet path -P, --portable Use local 'electrum_data' directory --testnet Use testnet chain --signet Use signet chain --mainnet Use mainnet chain --simnet Use simnet chain --regtest Use regtest chain --testnet4 Use testnet4 chain -o, --offline Run offline --rpcuser RPCUSER RPC user --rpcpassword RPCPASSWORD RPC password --forgetconfig Forget config on exit Run 'electrum help ' to see the help for a command ``` ``` $ python3 -c "import electrum.constants as k; print(k.NETS_LIST)" (, , , , , ) $ python3 -c "import electrum.constants as k; print(k.NETS_LIST)" (, , , , , ) ``` --- electrum/constants.py | 1 + 1 file changed, 1 insertion(+) diff --git a/electrum/constants.py b/electrum/constants.py index f3da2303d..91aea6306 100644 --- a/electrum/constants.py +++ b/electrum/constants.py @@ -251,6 +251,7 @@ class BitcoinSignet(BitcoinTestnet): NETS_LIST = tuple(all_subclasses(AbstractNet)) # type: Sequence[Type[AbstractNet]] +NETS_LIST = tuple(sorted(NETS_LIST, key=lambda x: x.NET_NAME)) assert len(NETS_LIST) == len(set([chain.NET_NAME for chain in NETS_LIST])), "NET_NAME must be unique for each concrete AbstractNet" assert len(NETS_LIST) == len(set([chain.datadir_subdir() for chain in NETS_LIST])), "datadir must be unique for each concrete AbstractNet"