From 96d2c1c36c65aaba6755348fe0c05c1bc98d3864 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Mon, 26 Oct 2026 13:36:48 +0000 Subject: [PATCH] proto.btc.rpc.local: rewrite `segwit_is_active()` --- mmgen/data/version | 2 +- mmgen/proto/btc/rpc/local.py | 31 ++++++++++--------------------- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/mmgen/data/version b/mmgen/data/version index 725dee2c..e3ef4331 100644 --- a/mmgen/data/version +++ b/mmgen/data/version @@ -1 +1 @@ -16.3.0dev21 +16.3.0dev22 diff --git a/mmgen/proto/btc/rpc/local.py b/mmgen/proto/btc/rpc/local.py index 336e6ced..785914d4 100644 --- a/mmgen/proto/btc/rpc/local.py +++ b/mmgen/proto/btc/rpc/local.py @@ -381,27 +381,16 @@ class BitcoinRPCClient(RPCClient, metaclass=AsyncInit): def info(self, info_id): def segwit_is_active(): - - if 'deployment_info' in self.caps: - return ( - self.cached['deploymentinfo']['deployments']['segwit']['active'] - or (self.cfg.test_suite and self.chain != 'regtest')) - - d = self.cached['blockchaininfo'] - - try: - if d['softforks']['segwit']['active'] is True: - return True - except KeyError: - pass - - try: - if d['bip9_softforks']['segwit']['status'] == 'active': - return True - except KeyError: - pass - - return self.cfg.test_suite and self.chain != 'regtest' + for test in [ + lambda: self.cfg.test_suite and self.chain != 'regtest', + lambda: self.cached['deploymentinfo']['deployments']['segwit']['active'], + lambda: self.cached['blockchaininfo']['softforks']['segwit']['active'], + lambda: self.cached['blockchaininfo']['bip9_softforks']['segwit']['status'] == 'active']: + try: + if test(): + return True + except (TypeError, KeyError): + pass return locals()[info_id]()