mirror of
https://github.com/mimblewimble/grin-wallet.git
synced 2025-01-21 03:21:08 +03:00
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:
parent
86e6f511c3
commit
e2ad2b3880
4 changed files with 23 additions and 1 deletions
|
@ -253,6 +253,7 @@ pub struct SendArgs {
|
||||||
pub max_outputs: usize,
|
pub max_outputs: usize,
|
||||||
pub target_slate_version: Option<u16>,
|
pub target_slate_version: Option<u16>,
|
||||||
pub payment_proof_address: Option<String>,
|
pub payment_proof_address: Option<String>,
|
||||||
|
pub ttl_blocks: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn send<L, C, K>(
|
pub fn send<L, C, K>(
|
||||||
|
@ -302,6 +303,7 @@ where
|
||||||
message: args.message.clone(),
|
message: args.message.clone(),
|
||||||
target_slate_version: args.target_slate_version,
|
target_slate_version: args.target_slate_version,
|
||||||
payment_proof_recipient_address,
|
payment_proof_recipient_address,
|
||||||
|
ttl_blocks: args.ttl_blocks,
|
||||||
send_args: None,
|
send_args: None,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
|
@ -529,6 +531,7 @@ pub struct ProcessInvoiceArgs {
|
||||||
pub max_outputs: usize,
|
pub max_outputs: usize,
|
||||||
pub input: String,
|
pub input: String,
|
||||||
pub estimate_selection_strategies: bool,
|
pub estimate_selection_strategies: bool,
|
||||||
|
pub ttl_blocks: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Process invoice
|
/// Process invoice
|
||||||
|
@ -574,6 +577,7 @@ where
|
||||||
num_change_outputs: 1u32,
|
num_change_outputs: 1u32,
|
||||||
selection_strategy_is_use_all: args.selection_strategy == "all",
|
selection_strategy_is_use_all: args.selection_strategy == "all",
|
||||||
message: args.message.clone(),
|
message: args.message.clone(),
|
||||||
|
ttl_blocks: args.ttl_blocks,
|
||||||
send_args: None,
|
send_args: None,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
|
|
|
@ -751,7 +751,7 @@ where
|
||||||
// Step 5: Cancel any transactions with an expired TTL
|
// Step 5: Cancel any transactions with an expired TTL
|
||||||
for tx in txs {
|
for tx in txs {
|
||||||
if let Some(e) = tx.ttl_cutoff_height {
|
if let Some(e) = tx.ttl_cutoff_height {
|
||||||
if e >= tip.0 {
|
if tip.0 >= e {
|
||||||
wallet_lock!(wallet_inst, w);
|
wallet_lock!(wallet_inst, w);
|
||||||
let parent_key_id = w.parent_key_id();
|
let parent_key_id = w.parent_key_id();
|
||||||
tx::cancel_tx(&mut **w, keychain_mask, &parent_key_id, Some(tx.id), None)?;
|
tx::cancel_tx(&mut **w, keychain_mask, &parent_key_id, Some(tx.id), None)?;
|
||||||
|
|
|
@ -155,6 +155,11 @@ subcommands:
|
||||||
short: t
|
short: t
|
||||||
long: stored_tx
|
long: stored_tx
|
||||||
takes_value: true
|
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:
|
- receive:
|
||||||
about: Processes a transaction file to accept a transfer from a sender
|
about: Processes a transaction file to accept a transfer from a sender
|
||||||
args:
|
args:
|
||||||
|
@ -252,6 +257,11 @@ subcommands:
|
||||||
short: i
|
short: i
|
||||||
long: input
|
long: input
|
||||||
takes_value: true
|
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:
|
- outputs:
|
||||||
about: Raw wallet output info (list of outputs)
|
about: Raw wallet output info (list of outputs)
|
||||||
- txs:
|
- txs:
|
||||||
|
|
|
@ -453,6 +453,9 @@ pub fn parse_send_args(args: &ArgMatches) -> Result<command::SendArgs, ParseErro
|
||||||
// fluff
|
// fluff
|
||||||
let fluff = args.is_present("fluff");
|
let fluff = args.is_present("fluff");
|
||||||
|
|
||||||
|
// ttl_blocks
|
||||||
|
let ttl_blocks = parse_u64_or_none(args.value_of("ttl_blocks"));
|
||||||
|
|
||||||
// max_outputs
|
// max_outputs
|
||||||
let max_outputs = 500;
|
let max_outputs = 500;
|
||||||
|
|
||||||
|
@ -493,6 +496,7 @@ pub fn parse_send_args(args: &ArgMatches) -> Result<command::SendArgs, ParseErro
|
||||||
fluff: fluff,
|
fluff: fluff,
|
||||||
max_outputs: max_outputs,
|
max_outputs: max_outputs,
|
||||||
payment_proof_address,
|
payment_proof_address,
|
||||||
|
ttl_blocks,
|
||||||
target_slate_version: target_slate_version,
|
target_slate_version: target_slate_version,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -636,6 +640,9 @@ pub fn parse_process_invoice_args(
|
||||||
return Err(ParseError::ArgumentError(msg));
|
return Err(ParseError::ArgumentError(msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ttl_blocks
|
||||||
|
let ttl_blocks = parse_u64_or_none(args.value_of("ttl_blocks"));
|
||||||
|
|
||||||
// max_outputs
|
// max_outputs
|
||||||
let max_outputs = 500;
|
let max_outputs = 500;
|
||||||
|
|
||||||
|
@ -663,6 +670,7 @@ pub fn parse_process_invoice_args(
|
||||||
dest: dest.to_owned(),
|
dest: dest.to_owned(),
|
||||||
max_outputs: max_outputs,
|
max_outputs: max_outputs,
|
||||||
input: tx_file.to_owned(),
|
input: tx_file.to_owned(),
|
||||||
|
ttl_blocks,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue