URI: 
       tstricter tx deserialization: forbid output amount values over 21 million btc - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 0b78cb5e6bd4242c6fb773413a2ce62af9a03ae3
   DIR parent 5eb1cbef928169d86245ca5402b052f4b9439034
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Tue, 12 Jun 2018 14:33:22 +0200
       
       stricter tx deserialization: forbid output amount values over 21 million btc
       
       Diffstat:
         M lib/bitcoin.py                      |       1 +
         M lib/transaction.py                  |       2 ++
       
       2 files changed, 3 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/lib/bitcoin.py b/lib/bitcoin.py
       t@@ -38,6 +38,7 @@ from .crypto import Hash, sha256, hash_160
        
        COINBASE_MATURITY = 100
        COIN = 100000000
       +TOTAL_COIN_SUPPLY_LIMIT_IN_BTC = 21000000
        
        # supported types of transaction outputs
        TYPE_ADDRESS = 0
   DIR diff --git a/lib/transaction.py b/lib/transaction.py
       t@@ -534,6 +534,8 @@ def parse_witness(vds, txin, full_parse: bool):
        def parse_output(vds, i):
            d = {}
            d['value'] = vds.read_int64()
       +    if d['value'] > TOTAL_COIN_SUPPLY_LIMIT_IN_BTC * COIN:
       +        raise SerializationError('invalid output amount (too large)')
            scriptPubKey = vds.read_bytes(vds.read_compact_size())
            d['type'], d['address'] = get_address_from_output_script(scriptPubKey)
            d['scriptPubKey'] = bh2u(scriptPubKey)