diff --git a/src/blockchain/electrum.rs b/src/blockchain/electrum.rs index 592953e2..63903fad 100644 --- a/src/blockchain/electrum.rs +++ b/src/blockchain/electrum.rs @@ -84,7 +84,7 @@ impl OnlineBlockchain for ElectrumBlockchain { let call_result = self .0 .as_mut() - .unwrap() + .ok_or(Error::OfflineClient)? .batch_script_get_history(chunk.iter())?; for (script, history) in chunk.into_iter().zip(call_result.into_iter()) { @@ -127,7 +127,7 @@ impl OnlineBlockchain for ElectrumBlockchain { let call_result = self .0 .as_mut() - .unwrap() + .ok_or(Error::OfflineClient)? .batch_script_list_unspent(scripts)?; // check which utxos are actually still unspent @@ -175,7 +175,7 @@ impl OnlineBlockchain for ElectrumBlockchain { Ok(self .0 .as_mut() - .unwrap() + .ok_or(Error::OfflineClient)? .transaction_get(txid) .map(Option::Some)?) } @@ -184,7 +184,7 @@ impl OnlineBlockchain for ElectrumBlockchain { Ok(self .0 .as_mut() - .unwrap() + .ok_or(Error::OfflineClient)? .transaction_broadcast(tx) .map(|_| ())?) } @@ -193,7 +193,7 @@ impl OnlineBlockchain for ElectrumBlockchain { Ok(self .0 .as_mut() - .unwrap() + .ok_or(Error::OfflineClient)? .block_headers_subscribe() .map(|data| data.height)?) } @@ -232,7 +232,11 @@ impl ElectrumBlockchain { // went wrong saved_tx.transaction.unwrap() } - None => self.0.as_mut().unwrap().transaction_get(&txid)?, + None => self + .0 + .as_mut() + .ok_or(Error::OfflineClient)? + .transaction_get(&txid)?, }; let mut incoming: u64 = 0; diff --git a/src/error.rs b/src/error.rs index 64fb07a7..320daac3 100644 --- a/src/error.rs +++ b/src/error.rs @@ -29,6 +29,7 @@ pub enum Error { // Blockchain interface errors Uncapable(crate::blockchain::Capability), + OfflineClient, InvalidProgressValue(f32), ProgressUpdateError, MissingCachedAddresses,