URI: 
       tbitcoin.py: nicer exception in deserialize_privkey if prefix byte is invalid - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit a94e1d92a312bc686646f6b20adba81998926714
   DIR parent b175c6b6094525c34039eecc5babd9d798eb9146
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Sun, 13 May 2018 16:26:00 +0200
       
       bitcoin.py: nicer exception in deserialize_privkey if prefix byte is invalid
       
       related: #4364
       
       Diffstat:
         M lib/bitcoin.py                      |       9 +++++++--
       
       1 file changed, 7 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/lib/bitcoin.py b/lib/bitcoin.py
       t@@ -567,11 +567,16 @@ def deserialize_privkey(key):
        
            if txin_type is None:
                # keys exported in version 3.0.x encoded script type in first byte
       -        txin_type = inv_dict(SCRIPT_TYPES)[vch[0] - constants.net.WIF_PREFIX]
       +        prefix_value = vch[0] - constants.net.WIF_PREFIX
       +        inverse_script_types = inv_dict(SCRIPT_TYPES)
       +        try:
       +            txin_type = inverse_script_types[prefix_value]
       +        except KeyError:
       +            raise BitcoinException('invalid prefix ({}) for WIF key (1)'.format(vch[0]))
            else:
                # all other keys must have a fixed first byte
                if vch[0] != constants.net.WIF_PREFIX:
       -            raise BitcoinException('invalid prefix ({}) for WIF key'.format(vch[0]))
       +            raise BitcoinException('invalid prefix ({}) for WIF key (2)'.format(vch[0]))
        
            if len(vch) not in [33, 34]:
                raise BitcoinException('invalid vch len for WIF key: {}'.format(len(vch)))