diff --git a/bitcoin/src/lib.rs b/bitcoin/src/lib.rs index 2ea1c90d9..4939513ec 100644 --- a/bitcoin/src/lib.rs +++ b/bitcoin/src/lib.rs @@ -1051,7 +1051,7 @@ impl TransactionExt for Transaction { /// Get the amount of btc that self sent to `dest`, if any fn get_payment_amount_to(&self, dest: Payload) -> Option { self.output.iter().find_map(|uxto| { - let payload = Payload::from_script(&uxto.script_pubkey)?; + let payload = Payload::from_script(&uxto.script_pubkey).ok()?; if payload == dest { Some(uxto.value) } else { @@ -1075,7 +1075,7 @@ impl TransactionExt for Transaction { .iter() .enumerate() .filter(|(_, x)| x.value > 0) - .filter_map(|(idx, tx_out)| Some((idx, Payload::from_script(&tx_out.script_pubkey)?))) + .filter_map(|(idx, tx_out)| Some((idx, Payload::from_script(&tx_out.script_pubkey).ok()?))) .collect() } diff --git a/bitcoin/src/light/wallet.rs b/bitcoin/src/light/wallet.rs index ddb514d73..f54e22dc5 100644 --- a/bitcoin/src/light/wallet.rs +++ b/bitcoin/src/light/wallet.rs @@ -212,7 +212,7 @@ impl Wallet { } pub fn get_priv_key(&self, script_pubkey: &Script) -> Result { - let address = Address::from_script(script_pubkey, self.network).ok_or(Error::InvalidAddress)?; + let address = Address::from_script(script_pubkey, self.network)?; let key_store = self.key_store.read()?; let private_key = key_store.get(&address).ok_or(Error::NoPrivateKey)?; Ok(*private_key) diff --git a/runtime/src/addr.rs b/runtime/src/addr.rs index bb817060a..0db8c6e81 100644 --- a/runtime/src/addr.rs +++ b/runtime/src/addr.rs @@ -49,7 +49,7 @@ impl PartialAddress for BtcAddress { Self::P2WSHv0(hash) => Script::new_v0_wsh(&WScriptHash::from_slice(hash.as_bytes())?), }; - Payload::from_script(&script).ok_or(ConversionError::InvalidPayload) + Ok(Payload::from_script(&script)?) } fn from_address(address: Address) -> Result {