Contractless/src/bin/verify_address.rs

31 lines
933 B
Rust

use blockchain::common::cli_prompts::prompt_visible;
use blockchain::env;
use blockchain::standalone_tools::vanity_resolver::canonical_vanity_address_input;
use blockchain::wallets::structures::Wallet;
#[tokio::main]
async fn main() {
// Accept a directly pasted address as an arg or prompt interactively.
let args: Vec<String> = env::args().collect();
if args.len() > 1 && args.len() != 2 {
println!("Usage: ./verify_address <wallet_address>");
return;
}
let address = if args.len() == 2 {
args[1].trim().to_string()
} else {
prompt_visible("Please enter the wallet address: ")
.await
.trim()
.to_string()
};
let is_valid = Wallet::short_address_validation(&address)
|| canonical_vanity_address_input(&address)
.is_some_and(|vanity| Wallet::short_address_validation(&vanity));
println!("{is_valid}");
}