Add TTL Option to command line (#273)

* re-insert v2 slate

* reinstate version conversions

* rustfmt

* add and test versioning checks against 2.0.0 wallets

* rustfmt

* fix to invoice file output

* doctest fix

* remove target slate version from command line options

* add ttl option to send_tx and pay commands

* rustfmt
This commit is contained in:
Yeastplume 2019-12-04 13:04:28 +00:00 committed by GitHub
parent 86e6f511c3
commit e2ad2b3880
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 1 deletions

View file

@ -253,6 +253,7 @@ pub struct SendArgs {
pub max_outputs: usize,
pub target_slate_version: Option<u16>,
pub payment_proof_address: Option<String>,
pub ttl_blocks: Option<u64>,
}
pub fn send<L, C, K>(
@ -302,6 +303,7 @@ where
message: args.message.clone(),
target_slate_version: args.target_slate_version,
payment_proof_recipient_address,
ttl_blocks: args.ttl_blocks,
send_args: None,
..Default::default()
};
@ -529,6 +531,7 @@ pub struct ProcessInvoiceArgs {
pub max_outputs: usize,
pub input: String,
pub estimate_selection_strategies: bool,
pub ttl_blocks: Option<u64>,
}
/// Process invoice
@ -574,6 +577,7 @@ where
num_change_outputs: 1u32,
selection_strategy_is_use_all: args.selection_strategy == "all",
message: args.message.clone(),
ttl_blocks: args.ttl_blocks,
send_args: None,
..Default::default()
};

View file

@ -751,7 +751,7 @@ where
// Step 5: Cancel any transactions with an expired TTL
for tx in txs {
if let Some(e) = tx.ttl_cutoff_height {
if e >= tip.0 {
if tip.0 >= e {
wallet_lock!(wallet_inst, w);
let parent_key_id = w.parent_key_id();
tx::cancel_tx(&mut **w, keychain_mask, &parent_key_id, Some(tx.id), None)?;

View file

@ -155,6 +155,11 @@ subcommands:
short: t
long: stored_tx
takes_value: true
- ttl_blocks:
help: If present, the number of blocks from the current after which wallets should refuse to process transactions further
short: b
long: ttl_blocks
takes_value: true
- receive:
about: Processes a transaction file to accept a transfer from a sender
args:
@ -252,6 +257,11 @@ subcommands:
short: i
long: input
takes_value: true
- ttl_blocks:
help: If present, the number of blocks from the current after which wallets should refuse to process transactions further
short: b
long: ttl_blocks
takes_value: true
- outputs:
about: Raw wallet output info (list of outputs)
- txs:

View file

@ -453,6 +453,9 @@ pub fn parse_send_args(args: &ArgMatches) -> Result<command::SendArgs, ParseErro
// fluff
let fluff = args.is_present("fluff");
// ttl_blocks
let ttl_blocks = parse_u64_or_none(args.value_of("ttl_blocks"));
// max_outputs
let max_outputs = 500;
@ -493,6 +496,7 @@ pub fn parse_send_args(args: &ArgMatches) -> Result<command::SendArgs, ParseErro
fluff: fluff,
max_outputs: max_outputs,
payment_proof_address,
ttl_blocks,
target_slate_version: target_slate_version,
})
}
@ -636,6 +640,9 @@ pub fn parse_process_invoice_args(
return Err(ParseError::ArgumentError(msg));
}
// ttl_blocks
let ttl_blocks = parse_u64_or_none(args.value_of("ttl_blocks"));
// max_outputs
let max_outputs = 500;
@ -663,6 +670,7 @@ pub fn parse_process_invoice_args(
dest: dest.to_owned(),
max_outputs: max_outputs,
input: tx_file.to_owned(),
ttl_blocks,
})
}