Browse Source

constants: rm set_testnet/set_mainnet fns with AbstractNet.set_as_network

master
SomberNight 1 year ago
parent
commit
1257f21b1b
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 29
      electrum/constants.py
  2. 2
      electrum/scripts/ln_features.py
  3. 2
      electrum/scripts/quick_start.py
  4. 2
      electrum/scripts/servers.py
  5. 2
      electrum/scripts/update_default_servers.py
  6. 10
      run_electrum
  7. 8
      tests/__init__.py
  8. 4
      tests/test_blockchain.py
  9. 8
      tests/test_network.py
  10. 4
      tests/test_psbt.py
  11. 4
      tests/test_simple_config.py

29
electrum/constants.py

@ -76,6 +76,11 @@ class AbstractNet:
def rev_genesis_bytes(cls) -> bytes:
return bytes.fromhex(cls.GENESIS)[::-1]
@classmethod
def set_as_network(cls) -> None:
global net
net = cls
class BitcoinMainnet(AbstractNet):
@ -203,27 +208,3 @@ NETS_LIST = tuple(all_subclasses(AbstractNet))
# don't import net directly, import the module instead (so that net is singleton)
net = BitcoinMainnet # type: Type[AbstractNet]
def set_signet():
global net
net = BitcoinSignet
def set_simnet():
global net
net = BitcoinSimnet
def set_mainnet():
global net
net = BitcoinMainnet
def set_testnet():
global net
net = BitcoinTestnet
def set_testnet4():
global net
net = BitcoinTestnet4
def set_regtest():
global net
net = BitcoinRegtest

2
electrum/scripts/ln_features.py

@ -39,7 +39,7 @@ loop, stopping_fut, loop_thread = create_and_start_event_loop()
time.sleep(2)
if IS_TESTNET:
constants.set_testnet()
constants.BitcoinTestnet.set_as_network()
daemon = Daemon(config, listen_jsonrpc=False)
network = daemon.network
assert network.asyncio_loop.is_running()

2
electrum/scripts/quick_start.py

@ -16,7 +16,7 @@ from electrum.util import create_and_start_event_loop, log_exceptions
loop, stopping_fut, loop_thread = create_and_start_event_loop()
config = SimpleConfig({"testnet": True}) # to use ~/.electrum/testnet as datadir
constants.set_testnet() # to set testnet magic bytes
constants.BitcoinTestnet.set_as_network() # to set testnet magic bytes
daemon = Daemon(config, listen_jsonrpc=False)
network = daemon.network
assert network.asyncio_loop.is_running()

2
electrum/scripts/servers.py

@ -8,7 +8,7 @@ from electrum.util import create_and_start_event_loop, log_exceptions
from electrum import constants
# testnet?
#constants.set_testnet()
#constants.BitcoinTestnet.set_as_network()
config = SimpleConfig({'testnet': False})
loop, stopping_fut, loop_thread = create_and_start_event_loop()

2
electrum/scripts/update_default_servers.py

@ -37,7 +37,7 @@ def get_newly_added_servers(fname1, fname2=None):
# testnet?
#constants.set_testnet()
#constants.BitcoinTestnet.set_as_network()
config = SimpleConfig({'testnet': False})
loop, stopping_fut, loop_thread = create_and_start_event_loop()

10
run_electrum

@ -382,15 +382,15 @@ def main():
set_language(lang)
if config.get('testnet'):
constants.set_testnet()
constants.BitcoinTestnet.set_as_network()
elif config.get('testnet4'):
constants.set_testnet4()
constants.BitcoinTestnet4.set_as_network()
elif config.get('regtest'):
constants.set_regtest()
constants.BitcoinRegtest.set_as_network()
elif config.get('simnet'):
constants.set_simnet()
constants.BitcoinSimnet.set_as_network()
elif config.get('signet'):
constants.set_signet()
constants.BitcoinSignet.set_as_network()
# check if we received a valid payment identifier
uri = config_options.get('url')

8
tests/__init__.py

@ -41,13 +41,13 @@ class ElectrumTestCase(unittest.IsolatedAsyncioTestCase, Logger):
def setUpClass(cls):
super().setUpClass()
if cls.TESTNET:
constants.set_testnet()
constants.BitcoinTestnet.set_as_network()
@classmethod
def tearDownClass(cls):
super().tearDownClass()
if cls.TESTNET:
constants.set_mainnet()
constants.BitcoinMainnet.set_as_network()
def setUp(self):
self._test_lock.acquire()
@ -79,14 +79,14 @@ def as_testnet(func):
if asyncio.iscoroutinefunction(func):
async def run_test(*args, **kwargs):
try:
constants.set_testnet()
constants.BitcoinTestnet.set_as_network()
return await func(*args, **kwargs)
finally:
constants.net = old_net
else:
def run_test(*args, **kwargs):
try:
constants.set_testnet()
constants.BitcoinTestnet.set_as_network()
return func(*args, **kwargs)
finally:
constants.net = old_net

4
tests/test_blockchain.py

@ -48,12 +48,12 @@ class TestBlockchain(ElectrumTestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
constants.set_regtest()
constants.BitcoinRegtest.set_as_network()
@classmethod
def tearDownClass(cls):
super().tearDownClass()
constants.set_mainnet()
constants.BitcoinMainnet.set_as_network()
def setUp(self):
super().setUp()

8
tests/test_network.py

@ -49,12 +49,12 @@ class TestNetwork(ElectrumTestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
constants.set_regtest()
constants.BitcoinRegtest.set_as_network()
@classmethod
def tearDownClass(cls):
super().tearDownClass()
constants.set_mainnet()
constants.BitcoinMainnet.set_as_network()
async def asyncSetUp(self):
await super().asyncSetUp()
@ -127,6 +127,6 @@ class TestNetwork(ElectrumTestCase):
self.assertEqual(self.interface.q.qsize(), 0)
if __name__=="__main__":
constants.set_regtest()
if __name__ == "__main__":
constants.BitcoinRegtest.set_as_network()
unittest.main()

4
tests/test_psbt.py

@ -82,14 +82,14 @@ class TestValidPSBT(ElectrumTestCase):
def test_valid_psbt_008(self):
# Case: PSBT with `PSBT_GLOBAL_XPUB`.
constants.set_mainnet()
constants.BitcoinMainnet.set_as_network()
try:
tx1 = tx_from_any(bytes.fromhex('70736274ff01009d0100000002710ea76ab45c5cb6438e607e59cc037626981805ae9e0dfd9089012abb0be5350100000000ffffffff190994d6a8b3c8c82ccbcfb2fba4106aa06639b872a8d447465c0d42588d6d670000000000ffffffff0200e1f505000000001976a914b6bc2c0ee5655a843d79afedd0ccc3f7dd64340988ac605af405000000001600141188ef8e4ce0449eaac8fb141cbf5a1176e6a088000000004f010488b21e039e530cac800000003dbc8a5c9769f031b17e77fea1518603221a18fd18f2b9a54c6c8c1ac75cbc3502f230584b155d1c7f1cd45120a653c48d650b431b67c5b2c13f27d7142037c1691027569c503100008000000080000000800001011f00e1f5050000000016001433b982f91b28f160c920b4ab95e58ce50dda3a4a220203309680f33c7de38ea6a47cd4ecd66f1f5a49747c6ffb8808ed09039243e3ad5c47304402202d704ced830c56a909344bd742b6852dccd103e963bae92d38e75254d2bb424502202d86c437195df46c0ceda084f2a291c3da2d64070f76bf9b90b195e7ef28f77201220603309680f33c7de38ea6a47cd4ecd66f1f5a49747c6ffb8808ed09039243e3ad5c1827569c5031000080000000800000008000000000010000000001011f00e1f50500000000160014388fb944307eb77ef45197d0b0b245e079f011de220202c777161f73d0b7c72b9ee7bde650293d13f095bc7656ad1f525da5fd2e10b11047304402204cb1fb5f869c942e0e26100576125439179ae88dca8a9dc3ba08f7953988faa60220521f49ca791c27d70e273c9b14616985909361e25be274ea200d7e08827e514d01220602c777161f73d0b7c72b9ee7bde650293d13f095bc7656ad1f525da5fd2e10b1101827569c5031000080000000800000008000000000000000000000220202d20ca502ee289686d21815bd43a80637b0698e1fbcdbe4caed445f6c1a0a90ef1827569c50310000800000008000000080000000000400000000'))
tx2 = tx_from_any('cHNidP8BAJ0BAAAAAnEOp2q0XFy2Q45gflnMA3YmmBgFrp4N/ZCJASq7C+U1AQAAAAD/////GQmU1qizyMgsy8+y+6QQaqBmObhyqNRHRlwNQliNbWcAAAAAAP////8CAOH1BQAAAAAZdqkUtrwsDuVlWoQ9ea/t0MzD991kNAmIrGBa9AUAAAAAFgAUEYjvjkzgRJ6qyPsUHL9aEXbmoIgAAAAATwEEiLIeA55TDKyAAAAAPbyKXJdp8DGxfnf+oVGGAyIaGP0Y8rmlTGyMGsdcvDUC8jBYSxVdHH8c1FEgplPEjWULQxtnxbLBPyfXFCA3wWkQJ1acUDEAAIAAAACAAAAAgAABAR8A4fUFAAAAABYAFDO5gvkbKPFgySC0q5XljOUN2jpKIgIDMJaA8zx9446mpHzU7NZvH1pJdHxv+4gI7QkDkkPjrVxHMEQCIC1wTO2DDFapCTRL10K2hS3M0QPpY7rpLTjnUlTSu0JFAiAthsQ3GV30bAztoITyopHD2i1kBw92v5uQsZXn7yj3cgEiBgMwloDzPH3jjqakfNTs1m8fWkl0fG/7iAjtCQOSQ+OtXBgnVpxQMQAAgAAAAIAAAACAAAAAAAEAAAAAAQEfAOH1BQAAAAAWABQ4j7lEMH63fvRRl9CwskXgefAR3iICAsd3Fh9z0LfHK57nveZQKT0T8JW8dlatH1Jdpf0uELEQRzBEAiBMsftfhpyULg4mEAV2ElQ5F5rojcqKncO6CPeVOYj6pgIgUh9JynkcJ9cOJzybFGFphZCTYeJb4nTqIA1+CIJ+UU0BIgYCx3cWH3PQt8crnue95lApPRPwlbx2Vq0fUl2l/S4QsRAYJ1acUDEAAIAAAACAAAAAgAAAAAAAAAAAAAAiAgLSDKUC7iiWhtIYFb1DqAY3sGmOH7zb5MrtRF9sGgqQ7xgnVpxQMQAAgAAAAIAAAACAAAAAAAQAAAAA')
for tx in (tx1, tx2):
self.assertEqual(1, len(tx.xpubs))
finally:
constants.set_testnet()
constants.BitcoinTestnet.set_as_network()
def test_valid_psbt__input_with_both_witness_utxo_and_nonwitness_utxo(self):
# Case: PSBT where an input has both WITNESS_UTXO and UTXO.

4
tests/test_simple_config.py

@ -158,11 +158,11 @@ class Test_SimpleConfig(ElectrumTestCase):
config.SWAPSERVER_URL = None
self.assertEqual("https://swaps.electrum.org/api", config.SWAPSERVER_URL)
constants.set_testnet()
constants.BitcoinTestnet.set_as_network()
try:
self.assertEqual("https://swaps.electrum.org/testnet", config.SWAPSERVER_URL)
finally:
constants.set_mainnet()
constants.BitcoinMainnet.set_as_network()
def test_configvars_convert_getter(self):
config = SimpleConfig(self.options)

Loading…
Cancel
Save