add locktime cmdline support
This commit is contained in:
parent
cefb1c9bc0
commit
63a754868e
|
@ -405,7 +405,7 @@ class Commands:
|
||||||
sig = base64.b64decode(signature)
|
sig = base64.b64decode(signature)
|
||||||
return bitcoin.verify_message(address, sig, message)
|
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
|
self.nocheck = nocheck
|
||||||
change_addr = self._resolver(change_addr)
|
change_addr = self._resolver(change_addr)
|
||||||
domain = None if domain is None else map(self._resolver, domain)
|
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)
|
coins = self.wallet.get_spendable_coins(domain, self.config)
|
||||||
tx = self.wallet.make_unsigned_transaction(coins, final_outputs, self.config, fee, change_addr)
|
tx = self.wallet.make_unsigned_transaction(coins, final_outputs, self.config, fee, change_addr)
|
||||||
|
if locktime != None:
|
||||||
|
tx.locktime = locktime
|
||||||
if rbf:
|
if rbf:
|
||||||
tx.set_rbf(True)
|
tx.set_rbf(True)
|
||||||
if not unsigned:
|
if not unsigned:
|
||||||
|
@ -424,19 +426,19 @@ class Commands:
|
||||||
return tx
|
return tx
|
||||||
|
|
||||||
@command('wp')
|
@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. """
|
"""Create a transaction. """
|
||||||
tx_fee = satoshis(tx_fee)
|
tx_fee = satoshis(tx_fee)
|
||||||
domain = [from_addr] if from_addr else None
|
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()
|
return tx.as_dict()
|
||||||
|
|
||||||
@command('wp')
|
@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. """
|
"""Create a multi-output transaction. """
|
||||||
tx_fee = satoshis(tx_fee)
|
tx_fee = satoshis(tx_fee)
|
||||||
domain = [from_addr] if from_addr else None
|
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()
|
return tx.as_dict()
|
||||||
|
|
||||||
@command('w')
|
@command('w')
|
||||||
|
@ -707,6 +709,7 @@ command_options = {
|
||||||
'privkey': (None, "--privkey", "Private key. Set to '?' to get a prompt."),
|
'privkey': (None, "--privkey", "Private key. Set to '?' to get a prompt."),
|
||||||
'unsigned': ("-u", "--unsigned", "Do not sign transaction"),
|
'unsigned': ("-u", "--unsigned", "Do not sign transaction"),
|
||||||
'rbf': (None, "--rbf", "Replace-by-fee transaction"),
|
'rbf': (None, "--rbf", "Replace-by-fee transaction"),
|
||||||
|
'locktime': (None, "--locktime", "Set locktime block number"),
|
||||||
'domain': ("-D", "--domain", "List of addresses"),
|
'domain': ("-D", "--domain", "List of addresses"),
|
||||||
'memo': ("-m", "--memo", "Description of the request"),
|
'memo': ("-m", "--memo", "Description of the request"),
|
||||||
'expiration': (None, "--expiration", "Time in seconds"),
|
'expiration': (None, "--expiration", "Time in seconds"),
|
||||||
|
@ -733,6 +736,7 @@ arg_types = {
|
||||||
'outputs': json_loads,
|
'outputs': json_loads,
|
||||||
'tx_fee': lambda x: str(Decimal(x)) if x is not None else None,
|
'tx_fee': lambda x: str(Decimal(x)) if x is not None else None,
|
||||||
'amount': lambda x: str(Decimal(x)) if x != '!' else '!',
|
'amount': lambda x: str(Decimal(x)) if x != '!' else '!',
|
||||||
|
'locktime': int,
|
||||||
}
|
}
|
||||||
|
|
||||||
config_variables = {
|
config_variables = {
|
||||||
|
|
Loading…
Reference in New Issue