From 3ffc7aa5bce5e73d157d3f9700efe37a5a6440ea Mon Sep 17 00:00:00 2001 From: Tyera Eulberg Date: Sat, 22 Sep 2018 11:33:06 -0600 Subject: [PATCH] Add helper fn to get last id --- src/wallet.rs | 50 +++++++++++++++++--------------------------------- 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/src/wallet.rs b/src/wallet.rs index 9ce0cb4539..8511550174 100644 --- a/src/wallet.rs +++ b/src/wallet.rs @@ -363,17 +363,7 @@ pub fn process_command(config: &WalletConfig) -> Result { - let result = WalletRpcRequest::GetLastId.make_rpc_request(&config.rpc_addr, 1, None)?; - if result.as_str().is_none() { - Err(WalletError::RpcRequestError( - "Received bad last_id".to_string(), - ))? - } - let last_id_str = result.as_str().unwrap(); - let last_id_vec = bs58::decode(last_id_str) - .into_vec() - .map_err(|_| WalletError::RpcRequestError("Received bad last_id".to_string()))?; - let last_id = Hash::new(&last_id_vec); + let last_id = get_last_id(&config)?; let cancelable_bool = cancelable.is_some(); if timestamp == None && *witnesses == None { @@ -435,17 +425,7 @@ pub fn process_command(config: &WalletConfig) -> Result { - let result = WalletRpcRequest::GetLastId.make_rpc_request(&config.rpc_addr, 1, None)?; - if result.as_str().is_none() { - Err(WalletError::RpcRequestError( - "Received bad last_id".to_string(), - ))? - } - let last_id_str = result.as_str().unwrap(); - let last_id_vec = bs58::decode(last_id_str) - .into_vec() - .map_err(|_| WalletError::RpcRequestError("Received bad last_id".to_string()))?; - let last_id = Hash::new(&last_id_vec); + let last_id = get_last_id(&config)?; let tx = Transaction::budget_new_timestamp( &config.id, @@ -472,17 +452,7 @@ pub fn process_command(config: &WalletConfig) -> Result { - let result = WalletRpcRequest::GetLastId.make_rpc_request(&config.rpc_addr, 1, None)?; - if result.as_str().is_none() { - Err(WalletError::RpcRequestError( - "Received bad last_id".to_string(), - ))? - } - let last_id_str = result.as_str().unwrap(); - let last_id_vec = bs58::decode(last_id_str) - .into_vec() - .map_err(|_| WalletError::RpcRequestError("Received bad last_id".to_string()))?; - let last_id = Hash::new(&last_id_vec); + let last_id = get_last_id(&config)?; let tx = Transaction::budget_new_signature(&config.id, pubkey, config.id.pubkey(), last_id); @@ -616,6 +586,20 @@ impl WalletRpcRequest { } } +fn get_last_id(config: &WalletConfig) -> Result> { + let result = WalletRpcRequest::GetLastId.make_rpc_request(&config.rpc_addr, 1, None)?; + if result.as_str().is_none() { + Err(WalletError::RpcRequestError( + "Received bad last_id".to_string(), + ))? + } + let last_id_str = result.as_str().unwrap(); + let last_id_vec = bs58::decode(last_id_str) + .into_vec() + .map_err(|_| WalletError::RpcRequestError("Received bad last_id".to_string()))?; + Ok(Hash::new(&last_id_vec)) +} + #[cfg(test)] mod tests { use super::*;