* SDK: Refactor (read|write)_keypair Split file opening and data writing operations Drop filename == "-" stdio signal. It is an app-level feature * keygen: Move all non-key printing to stderr * keygen: Adapt to SDK refactor * keygen: Factor keypair output out to a helper function
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use solana_sdk::pubkey::Pubkey;
 | |
| use solana_sdk::signature::read_keypair_file;
 | |
| 
 | |
| // Return an error if a pubkey cannot be parsed.
 | |
| pub fn is_pubkey(string: String) -> Result<(), String> {
 | |
|     match string.parse::<Pubkey>() {
 | |
|         Ok(_) => Ok(()),
 | |
|         Err(err) => Err(format!("{:?}", err)),
 | |
|     }
 | |
| }
 | |
| 
 | |
| // Return an error if a keypair file cannot be parsed.
 | |
| pub fn is_keypair(string: String) -> Result<(), String> {
 | |
|     read_keypair_file(&string)
 | |
|         .map(|_| ())
 | |
|         .map_err(|err| format!("{:?}", err))
 | |
| }
 | |
| 
 | |
| // Return an error if string cannot be parsed as pubkey string or keypair file location
 | |
| pub fn is_pubkey_or_keypair(string: String) -> Result<(), String> {
 | |
|     is_pubkey(string.clone()).or_else(|_| is_keypair(string))
 | |
| }
 | |
| 
 | |
| // Return an error if a url cannot be parsed.
 | |
| pub fn is_url(string: String) -> Result<(), String> {
 | |
|     match url::Url::parse(&string) {
 | |
|         Ok(url) => {
 | |
|             if url.has_host() {
 | |
|                 Ok(())
 | |
|             } else {
 | |
|                 Err("no host provided".to_string())
 | |
|             }
 | |
|         }
 | |
|         Err(err) => Err(format!("{:?}", err)),
 | |
|     }
 | |
| }
 |