URI: 
       tsub swaps: - fix invoice expiration - use p2wsh - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit b26ad81e69b23cadebd9e2efb8d2861927d94543
   DIR parent 7d2979d776d324f7e7d061c8c4b361f74c96dcb5
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Sat, 23 May 2020 13:32:28 +0200
       
       sub swaps:
        - fix invoice expiration
        - use p2wsh
       
       Diffstat:
         M electrum/submarine_swaps.py         |      16 +++++++---------
       
       1 file changed, 7 insertions(+), 9 deletions(-)
       ---
   DIR diff --git a/electrum/submarine_swaps.py b/electrum/submarine_swaps.py
       t@@ -78,18 +78,17 @@ async def _claim_swap(lnworker, lockup_address, redeem_script, preimage, privkey
            lnwatcher = lnworker.lnwatcher
            utxos = lnwatcher.get_addr_utxo(lockup_address)
            delta = lnwatcher.network.get_local_height() - locktime
       +    if is_refund and delta < 0:
       +        print('height not reached for refund', delta, locktime)
       +        return
            for txin in list(utxos.values()):
                fee = lnwatcher.config.estimate_fee(136, allow_fallback_to_static_rates=True)
                amount_sat = txin._trusted_value_sats - fee
                if amount_sat < dust_threshold():
       -            print('dust')
       +            print('txo lower than dust threshold')
                    continue
                tx = create_claim_tx(txin, redeem_script, preimage, privkey, address, amount_sat, locktime, is_refund)
       -        if is_refund and delta < 0:
       -            print('height not reached for refund', delta, locktime)
       -            print(tx.serialize())
       -        else:
       -            await lnwatcher.network.broadcast_transaction(tx)
       +        await lnwatcher.network.broadcast_transaction(tx)
        
        
        @log_exceptions
       t@@ -130,7 +129,7 @@ async def normal_swap(amount_sat, wallet: 'Abstract_Wallet', network: 'Network',
            lnworker = wallet.lnworker
            privkey = os.urandom(32)
            pubkey = ECPrivkey(privkey).get_public_key_bytes(compressed=True)
       -    key = await lnworker._add_request_coro(amount_sat, 'swap', expiry=3600)
       +    key = await lnworker._add_request_coro(amount_sat, 'swap', expiry=3600*24)
            request = wallet.get_request(key)
            invoice = request['invoice']
            lnaddr = lnworker._check_invoice(invoice, amount_sat)
       t@@ -160,8 +159,7 @@ async def normal_swap(amount_sat, wallet: 'Abstract_Wallet', network: 'Network',
            redeem_script = bytes.fromhex(redeem_script)
            parsed_script = [x for x in script_GetOp(redeem_script)]
            assert match_script_against_template(redeem_script, WITNESS_TEMPLATE_SWAP)
       -    #assert script_to_p2wsh(redeem_script.hex()) == lockup_address
       -    assert redeem_script_to_address('p2wsh-p2sh', redeem_script.hex()) == lockup_address 
       +    assert script_to_p2wsh(redeem_script.hex()) == lockup_address
            assert hash_160(preimage) == parsed_script[1][1]
            assert pubkey == parsed_script[9][1]
            # verify that we will have enought time to get our tx confirmed