Tame overeager wallet manager (#9262)
* Add helper fn to check for usb cli args * Use helper fn to prevent wallet_manager connecting unnecessarily * Review improvements
This commit is contained in:
@ -47,6 +47,13 @@ pub fn parse_keypair_path(path: &str) -> KeypairUrl {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn check_for_usb<S>(mut items: impl Iterator<Item = S>) -> bool
|
||||
where
|
||||
S: Into<String>,
|
||||
{
|
||||
items.any(|arg| matches!(parse_keypair_path(&arg.into()), KeypairUrl::Usb(_)))
|
||||
}
|
||||
|
||||
pub fn presigner_from_pubkey_sigs(
|
||||
pubkey: &Pubkey,
|
||||
signers: &[(Pubkey, Signature)],
|
||||
@ -256,4 +263,20 @@ mod tests {
|
||||
sanitize_seed_phrase(seed_phrase)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_check_for_usb() {
|
||||
let args: Vec<&str> = vec![];
|
||||
assert_eq!(check_for_usb(args.into_iter()), false);
|
||||
let args = vec!["usb://"];
|
||||
assert_eq!(check_for_usb(args.into_iter()), true);
|
||||
let args = vec!["other"];
|
||||
assert_eq!(check_for_usb(args.into_iter()), false);
|
||||
let args = vec!["other", "usb://", "another"];
|
||||
assert_eq!(check_for_usb(args.into_iter()), true);
|
||||
let args = vec!["other", "another"];
|
||||
assert_eq!(check_for_usb(args.into_iter()), false);
|
||||
let args = vec!["usb://", "usb://"];
|
||||
assert_eq!(check_for_usb(args.into_iter()), true);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user