electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit b95b21b2f2ba513ca2c2811ccd8a248268133fb2
parent cefb1c9bc0fdfc808248d1715a5afa339871dec1
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:
Mlib/commands.py | 14+++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/lib/commands.py b/lib/commands.py @@ -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) @@ -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: @@ -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') @@ -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"), @@ -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 = {