From 1355f849c34cf507f070760138ae9bc2a368cf1b Mon Sep 17 00:00:00 2001 From: SomberNight Date: Thu, 29 May 2025 15:31:27 +0000 Subject: [PATCH] constants.py: reorganise file hierarchy in `chains/` --- .../chains/{ => mainnet}/checkpoints.json | 0 .../fallback_lnnodes.json} | 0 electrum/chains/{ => mainnet}/servers.json | 0 .../servers.json} | 0 .../checkpoints.json} | 0 .../fallback_lnnodes.json} | 0 .../servers.json} | 0 .../checkpoints.json} | 0 .../fallback_lnnodes.json} | 0 .../servers.json} | 0 .../checkpoints.json} | 0 .../servers.json} | 0 electrum/constants.py | 48 ++++++++++--------- 13 files changed, 26 insertions(+), 22 deletions(-) rename electrum/chains/{ => mainnet}/checkpoints.json (100%) rename electrum/chains/{fallback_lnnodes_mainnet.json => mainnet/fallback_lnnodes.json} (100%) rename electrum/chains/{ => mainnet}/servers.json (100%) rename electrum/chains/{servers_regtest.json => regtest/servers.json} (100%) rename electrum/chains/{checkpoints_signet.json => signet/checkpoints.json} (100%) rename electrum/chains/{fallback_lnnodes_signet.json => signet/fallback_lnnodes.json} (100%) rename electrum/chains/{servers_signet.json => signet/servers.json} (100%) rename electrum/chains/{checkpoints_testnet.json => testnet/checkpoints.json} (100%) rename electrum/chains/{fallback_lnnodes_testnet3.json => testnet/fallback_lnnodes.json} (100%) rename electrum/chains/{servers_testnet.json => testnet/servers.json} (100%) rename electrum/chains/{checkpoints_testnet4.json => testnet4/checkpoints.json} (100%) rename electrum/chains/{servers_testnet4.json => testnet4/servers.json} (100%) diff --git a/electrum/chains/checkpoints.json b/electrum/chains/mainnet/checkpoints.json similarity index 100% rename from electrum/chains/checkpoints.json rename to electrum/chains/mainnet/checkpoints.json diff --git a/electrum/chains/fallback_lnnodes_mainnet.json b/electrum/chains/mainnet/fallback_lnnodes.json similarity index 100% rename from electrum/chains/fallback_lnnodes_mainnet.json rename to electrum/chains/mainnet/fallback_lnnodes.json diff --git a/electrum/chains/servers.json b/electrum/chains/mainnet/servers.json similarity index 100% rename from electrum/chains/servers.json rename to electrum/chains/mainnet/servers.json diff --git a/electrum/chains/servers_regtest.json b/electrum/chains/regtest/servers.json similarity index 100% rename from electrum/chains/servers_regtest.json rename to electrum/chains/regtest/servers.json diff --git a/electrum/chains/checkpoints_signet.json b/electrum/chains/signet/checkpoints.json similarity index 100% rename from electrum/chains/checkpoints_signet.json rename to electrum/chains/signet/checkpoints.json diff --git a/electrum/chains/fallback_lnnodes_signet.json b/electrum/chains/signet/fallback_lnnodes.json similarity index 100% rename from electrum/chains/fallback_lnnodes_signet.json rename to electrum/chains/signet/fallback_lnnodes.json diff --git a/electrum/chains/servers_signet.json b/electrum/chains/signet/servers.json similarity index 100% rename from electrum/chains/servers_signet.json rename to electrum/chains/signet/servers.json diff --git a/electrum/chains/checkpoints_testnet.json b/electrum/chains/testnet/checkpoints.json similarity index 100% rename from electrum/chains/checkpoints_testnet.json rename to electrum/chains/testnet/checkpoints.json diff --git a/electrum/chains/fallback_lnnodes_testnet3.json b/electrum/chains/testnet/fallback_lnnodes.json similarity index 100% rename from electrum/chains/fallback_lnnodes_testnet3.json rename to electrum/chains/testnet/fallback_lnnodes.json diff --git a/electrum/chains/servers_testnet.json b/electrum/chains/testnet/servers.json similarity index 100% rename from electrum/chains/servers_testnet.json rename to electrum/chains/testnet/servers.json diff --git a/electrum/chains/checkpoints_testnet4.json b/electrum/chains/testnet4/checkpoints.json similarity index 100% rename from electrum/chains/checkpoints_testnet4.json rename to electrum/chains/testnet4/checkpoints.json diff --git a/electrum/chains/servers_testnet4.json b/electrum/chains/testnet4/servers.json similarity index 100% rename from electrum/chains/servers_testnet4.json rename to electrum/chains/testnet4/servers.json diff --git a/electrum/constants.py b/electrum/constants.py index 27e6b2d27..11c0f8baf 100644 --- a/electrum/constants.py +++ b/electrum/constants.py @@ -28,7 +28,7 @@ import json from typing import Sequence, Tuple, Mapping, Type, List from .lntransport import LNPeerAddr -from .util import inv_dict, all_subclasses +from .util import inv_dict, all_subclasses, classproperty from . import bitcoin @@ -74,9 +74,6 @@ class AbstractNet: BIP44_COIN_TYPE: int LN_REALM_BYTE: int DEFAULT_PORTS: Mapping[str, str] - DEFAULT_SERVERS: Mapping[str, Mapping[str, str]] - FALLBACK_LN_NODES: Sequence[LNPeerAddr] - CHECKPOINTS: Sequence[Tuple[str, int]] LN_DNS_SEEDS: Sequence[str] XPRV_HEADERS: Mapping[str, int] XPRV_HEADERS_INV: Mapping[int, str] @@ -96,6 +93,31 @@ class AbstractNet: global net net = cls + _cached_default_servers = None + @classproperty + def DEFAULT_SERVERS(cls) -> Mapping[str, Mapping[str, str]]: + if cls._cached_default_servers is None: + default_file = {} if cls.TESTNET else None # for mainnet we hard-fail if the file is missing. + cls._cached_default_servers = read_json(os.path.join('chains', cls.NET_NAME, 'servers.json'), default_file) + return cls._cached_default_servers + + _cached_fallback_lnnodes = None + @classproperty + def FALLBACK_LN_NODES(cls) -> Sequence[LNPeerAddr]: + if cls._cached_fallback_lnnodes is None: + default_file = {} if cls.TESTNET else None # for mainnet we hard-fail if the file is missing. + d = read_json(os.path.join('chains', cls.NET_NAME, 'fallback_lnnodes.json'), default_file) + cls._cached_fallback_lnnodes = create_fallback_node_list(d) + return cls._cached_fallback_lnnodes + + _cached_checkpoints = None + @classproperty + def CHECKPOINTS(cls) -> Sequence[Tuple[str, int]]: + if cls._cached_checkpoints is None: + default_file = [] if cls.TESTNET else None # for mainnet we hard-fail if the file is missing. + cls._cached_checkpoints = read_json(os.path.join('chains', cls.NET_NAME, 'checkpoints.json'), default_file) + return cls._cached_checkpoints + class BitcoinMainnet(AbstractNet): @@ -108,9 +130,6 @@ class BitcoinMainnet(AbstractNet): BOLT11_HRP = SEGWIT_HRP GENESIS = "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f" DEFAULT_PORTS = {'t': '50001', 's': '50002'} - DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers.json')) - FALLBACK_LN_NODES = create_fallback_node_list(read_json(os.path.join('chains', 'fallback_lnnodes_mainnet.json'))) - CHECKPOINTS = read_json(os.path.join('chains', 'checkpoints.json')) BLOCK_HEIGHT_FIRST_LIGHTNING_CHANNELS = 497000 XPRV_HEADERS = { @@ -149,9 +168,6 @@ class BitcoinTestnet(AbstractNet): BOLT11_HRP = SEGWIT_HRP GENESIS = "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943" DEFAULT_PORTS = {'t': '51001', 's': '51002'} - DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_testnet.json'), {}) - FALLBACK_LN_NODES = create_fallback_node_list(read_json(os.path.join('chains', 'fallback_lnnodes_testnet3.json'), {})) - CHECKPOINTS = read_json(os.path.join('chains', 'checkpoints_testnet.json'), []) XPRV_HEADERS = { 'standard': 0x04358394, # tprv @@ -181,9 +197,6 @@ class BitcoinTestnet4(BitcoinTestnet): NET_NAME = "testnet4" GENESIS = "00000000da84f2bafbbc53dee25a72ae507ff4914b867c565be350b0da8bf043" - DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_testnet4.json'), {}) - FALLBACK_LN_NODES = create_fallback_node_list(read_json(os.path.join('chains', 'fallback_lnnodes_testnet4.json'), {})) - CHECKPOINTS = read_json(os.path.join('chains', 'checkpoints_testnet4.json'), []) LN_DNS_SEEDS = [] @@ -193,9 +206,6 @@ class BitcoinRegtest(BitcoinTestnet): SEGWIT_HRP = "bcrt" BOLT11_HRP = SEGWIT_HRP GENESIS = "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206" - DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_regtest.json'), {}) - FALLBACK_LN_NODES = [] - CHECKPOINTS = [] LN_DNS_SEEDS = [] @@ -208,9 +218,6 @@ class BitcoinSimnet(BitcoinTestnet): SEGWIT_HRP = "sb" BOLT11_HRP = SEGWIT_HRP GENESIS = "683e86bd5c6d110d91b94b97137ba6bfe02dbbdb8e3dff722a669b5d69d77af6" - DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_regtest.json'), {}) - FALLBACK_LN_NODES = [] - CHECKPOINTS = [] LN_DNS_SEEDS = [] @@ -219,9 +226,6 @@ class BitcoinSignet(BitcoinTestnet): NET_NAME = "signet" BOLT11_HRP = "tbs" GENESIS = "00000008819873e925422c1ff0f99f7cc9bbb232af63a077a480a3633bee1ef6" - DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_signet.json'), {}) - FALLBACK_LN_NODES = create_fallback_node_list(read_json(os.path.join('chains', 'fallback_lnnodes_signet.json'), {})) - CHECKPOINTS = read_json(os.path.join('chains', 'checkpoints_signet.json'), []) LN_DNS_SEEDS = []