tadd more block explorers, and change defaults - electrum - Electrum Bitcoin wallet
 (HTM) git clone https://git.parazyd.org/electrum
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
       ---
 (DIR) commit c61e13c1e953c962a2083feecb3905186492fb81
 (DIR) parent 07a06b5d158036bcda8f7a0be49abb06cf83ac10
 (HTM) Author: SomberNight <somber.night@protonmail.com>
       Date:   Thu, 25 Oct 2018 18:27:41 +0200
       
       add more block explorers, and change defaults
       
       Diffstat:
         M electrum/util.py                    |      34 +++++++++++++++++++++++--------
       
       1 file changed, 25 insertions(+), 9 deletions(-)
       ---
 (DIR) diff --git a/electrum/util.py b/electrum/util.py
       t@@ -23,7 +23,7 @@
        import binascii
        import os, sys, re, json
        from collections import defaultdict
       -from typing import NamedTuple, Union, TYPE_CHECKING
       +from typing import NamedTuple, Union, TYPE_CHECKING, Tuple, Optional
        from datetime import datetime
        import decimal
        from decimal import Decimal
       t@@ -49,6 +49,7 @@ from .i18n import _
        if TYPE_CHECKING:
            from .network import Network
            from .interface import Interface
       +    from .simple_config import SimpleConfig
        
        
        def inv_dict(d):
       t@@ -652,6 +653,8 @@ mainnet_block_explorers = {
                                {'tx': 'api/tx?txid=', 'addr': '#/search?q='}),
            'OXT.me': ('https://oxt.me/',
                                {'tx': 'transaction/', 'addr': 'address/'}),
       +    'smartbit.com.au': ('https://www.smartbit.com.au/',
       +                        {'tx': 'tx/', 'addr': 'address/'}),
            'system default': ('blockchain:/',
                                {'tx': 'tx/', 'addr': 'address/'}),
        }
       t@@ -659,28 +662,41 @@ mainnet_block_explorers = {
        testnet_block_explorers = {
            'Blocktrail.com': ('https://www.blocktrail.com/tBTC/',
                               {'tx': 'tx/', 'addr': 'address/'}),
       +    'BlockCypher.com': ('https://live.blockcypher.com/btc-testnet/',
       +                       {'tx': 'tx/', 'addr': 'address/'}),
       +    'Blockchain.info': ('https://testnet.blockchain.info/',
       +                       {'tx': 'tx/', 'addr': 'address/'}),
       +    'BTC.com': ('https://tchain.btc.com/',
       +                       {'tx': '', 'addr': ''}),
       +    'smartbit.com.au': ('https://testnet.smartbit.com.au/',
       +                       {'tx': 'tx/', 'addr': 'address/'}),
            'system default': ('blockchain://000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943/',
                               {'tx': 'tx/', 'addr': 'address/'}),
        }
        
        def block_explorer_info():
            from . import constants
       -    return testnet_block_explorers if constants.net.TESTNET else mainnet_block_explorers
       +    return mainnet_block_explorers if not constants.net.TESTNET else testnet_block_explorers
        
       -def block_explorer(config):
       -    return config.get('block_explorer', 'Blocktrail.com')
       +def block_explorer(config: 'SimpleConfig') -> str:
       +    from . import constants
       +    default_ = 'Blockchair.com' if not constants.net.TESTNET else 'smartbit.com.au'
       +    be_key = config.get('block_explorer', default_)
       +    be = block_explorer_info().get(be_key)
       +    return be_key if be is not None else default_
        
       -def block_explorer_tuple(config):
       +def block_explorer_tuple(config: 'SimpleConfig') -> Optional[Tuple[str, dict]]:
            return block_explorer_info().get(block_explorer(config))
        
       -def block_explorer_URL(config, kind, item):
       +def block_explorer_URL(config: 'SimpleConfig', kind: str, item: str) -> Optional[str]:
            be_tuple = block_explorer_tuple(config)
            if not be_tuple:
                return
       -    kind_str = be_tuple[1].get(kind)
       -    if not kind_str:
       +    explorer_url, explorer_dict = be_tuple
       +    kind_str = explorer_dict.get(kind)
       +    if kind_str is None:
                return
       -    url_parts = [be_tuple[0], kind_str, item]
       +    url_parts = [explorer_url, kind_str, item]
            return ''.join(url_parts)
        
        # URL decode