URI: 
       tMerge pull request #2626 from neocogent/locktime - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit b95b21b2f2ba513ca2c2811ccd8a248268133fb2
   DIR parent cefb1c9bc0fdfc808248d1715a5afa339871dec1
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Mon, 31 Jul 2017 09:16:47 +0200
       
       Merge pull request #2626 from neocogent/locktime
       
       Add locktime cmdline support
       Diffstat:
         M lib/commands.py                     |      14 +++++++++-----
       
       1 file changed, 9 insertions(+), 5 deletions(-)
       ---
   DIR diff --git a/lib/commands.py b/lib/commands.py
       t@@ -405,7 +405,7 @@ class Commands:
                sig = base64.b64decode(signature)
                return bitcoin.verify_message(address, sig, message)
        
       -    def _mktx(self, outputs, fee, change_addr, domain, nocheck, unsigned, rbf, password):
       +    def _mktx(self, outputs, fee, change_addr, domain, nocheck, unsigned, rbf, password, locktime=None):
                self.nocheck = nocheck
                change_addr = self._resolver(change_addr)
                domain = None if domain is None else map(self._resolver, domain)
       t@@ -417,6 +417,8 @@ class Commands:
        
                coins = self.wallet.get_spendable_coins(domain, self.config)
                tx = self.wallet.make_unsigned_transaction(coins, final_outputs, self.config, fee, change_addr)
       +        if locktime != None: 
       +            tx.locktime = locktime
                if rbf:
                    tx.set_rbf(True)
                if not unsigned:
       t@@ -424,19 +426,19 @@ class Commands:
                return tx
        
            @command('wp')
       -    def payto(self, destination, amount, tx_fee=None, from_addr=None, change_addr=None, nocheck=False, unsigned=False, rbf=False, password=None):
       +    def payto(self, destination, amount, tx_fee=None, from_addr=None, change_addr=None, nocheck=False, unsigned=False, rbf=False, password=None, locktime=None):
                """Create a transaction. """
                tx_fee = satoshis(tx_fee)
                domain = [from_addr] if from_addr else None
       -        tx = self._mktx([(destination, amount)], tx_fee, change_addr, domain, nocheck, unsigned, rbf, password)
       +        tx = self._mktx([(destination, amount)], tx_fee, change_addr, domain, nocheck, unsigned, rbf, password, locktime)
                return tx.as_dict()
        
            @command('wp')
       -    def paytomany(self, outputs, tx_fee=None, from_addr=None, change_addr=None, nocheck=False, unsigned=False, rbf=False, password=None):
       +    def paytomany(self, outputs, tx_fee=None, from_addr=None, change_addr=None, nocheck=False, unsigned=False, rbf=False, password=None, locktime=None):
                """Create a multi-output transaction. """
                tx_fee = satoshis(tx_fee)
                domain = [from_addr] if from_addr else None
       -        tx = self._mktx(outputs, tx_fee, change_addr, domain, nocheck, unsigned, rbf, password)
       +        tx = self._mktx(outputs, tx_fee, change_addr, domain, nocheck, unsigned, rbf, password, locktime)
                return tx.as_dict()
        
            @command('w')
       t@@ -707,6 +709,7 @@ command_options = {
            'privkey':     (None, "--privkey",     "Private key. Set to '?' to get a prompt."),
            'unsigned':    ("-u", "--unsigned",    "Do not sign transaction"),
            'rbf':         (None, "--rbf",         "Replace-by-fee transaction"),
       +    'locktime':    (None, "--locktime",    "Set locktime block number"),
            'domain':      ("-D", "--domain",      "List of addresses"),
            'memo':        ("-m", "--memo",        "Description of the request"),
            'expiration':  (None, "--expiration",  "Time in seconds"),
       t@@ -733,6 +736,7 @@ arg_types = {
            'outputs': json_loads,
            'tx_fee': lambda x: str(Decimal(x)) if x is not None else None,
            'amount': lambda x: str(Decimal(x)) if x != '!' else '!',
       +    'locktime': int,
        }
        
        config_variables = {