#[cfg(feature = "sqlite")]
#[error("Rusqlite error: {0}")]
- RusqliteError(#[from] bdk_wallet::rusqlite::Error),
+ RusqliteError(Box<bdk_wallet::rusqlite::Error>),
#[cfg(feature = "redb")]
#[error("Redb StoreError: {0}")]
- RedbStoreError(#[from] bdk_redb::error::StoreError),
+ RedbStoreError(Box<bdk_redb::error::StoreError>),
#[cfg(feature = "redb")]
#[error("Redb dabtabase error: {0}")]
- RedbDatabaseError(#[from] bdk_redb::redb::DatabaseError),
+ RedbDatabaseError(Box<bdk_redb::redb::DatabaseError>),
#[error("Serde json error: {0}")]
SerdeJson(#[from] serde_json::Error),
BDKCliError::PsbtExtractTxError(Box::new(value))
}
}
+
+#[cfg(feature = "redb")]
+impl From<bdk_redb::error::StoreError> for BDKCliError {
+ fn from(err: bdk_redb::error::StoreError) -> Self {
+ BDKCliError::RedbStoreError(Box::new(err))
+ }
+}
+
+#[cfg(feature = "redb")]
+impl From<bdk_redb::redb::DatabaseError> for BDKCliError {
+ fn from(err: bdk_redb::redb::DatabaseError) -> Self {
+ BDKCliError::RedbDatabaseError(Box::new(err))
+ }
+}
+
+#[cfg(feature = "sqlite")]
+impl From<bdk_wallet::rusqlite::Error> for BDKCliError {
+ fn from(err: bdk_wallet::rusqlite::Error) -> Self {
+ BDKCliError::RusqliteError(Box::new(err))
+ }
+}
let persister = payjoin::persist::NoopSessionPersister::<ReceiverSessionEvent>::default();
let checked_max_fee_rate = max_fee_rate
- .map(|rate| FeeRate::from_sat_per_kwu(rate))
+ .map(FeeRate::from_sat_per_kwu)
.unwrap_or(FeeRate::BROADCAST_MIN);
let receiver = payjoin::receive::v2::ReceiverBuilder::new(
.await
}
ReceiveSession::HasReplyableError(error) => self.handle_error(error, persister).await,
- ReceiveSession::Closed(_) => return Err(Error::Generic("Session closed".to_string())),
+ ReceiveSession::Closed(_) => Err(Error::Generic("Session closed".to_string())),
}
}
}
Err(e) => {
return Err(Error::Generic(format!(
- "Error occurred when polling for Payjoin proposal from the directory: {}",
- e.to_string()
+ "Error occurred when polling for Payjoin proposal from the directory: {e}"
)));
}
}