bdk-ffi/src/error.rs

135 lines
5.0 KiB
Rust
Raw Normal View History

use bdk::Error;
2021-10-11 23:04:18 -07:00
use thiserror::Error;
2021-10-11 23:04:18 -07:00
#[derive(Error, Debug)]
pub enum FfiError {
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
None,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
InvalidU32Bytes,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Generic,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
ScriptDoesntHaveAddressForm,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
NoRecipients,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
NoUtxosSelected,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
OutputBelowDustLimit,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
InsufficientFunds,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
BnBTotalTriesExceeded,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
BnBNoExactMatch,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
UnknownUtxo,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
TransactionNotFound,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
TransactionConfirmed,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
IrreplaceableTransaction,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
FeeRateTooLow,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
FeeTooLow,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
2021-09-25 21:17:40 -07:00
FeeRateUnavailable,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
MissingKeyOrigin,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Key,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
ChecksumMismatch,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
SpendingPolicyRequired,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
InvalidPolicyPathError,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Signer,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
2021-09-25 21:17:40 -07:00
InvalidNetwork,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
InvalidProgressValue,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
ProgressUpdateError,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
InvalidOutpoint,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Descriptor,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
AddressValidator,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Encode,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Miniscript,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Bip32,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Secp256k1,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Json,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Hex,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Psbt,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
2021-09-25 21:17:40 -07:00
PsbtParse,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Electrum,
// Esplora,
// CompactFilters,
2021-10-11 23:04:18 -07:00
#[error("data store disconnected")]
Sled,
}
2021-10-11 23:04:18 -07:00
impl From<bdk::Error> for FfiError {
fn from(error: bdk::Error) -> Self {
match error {
Error::InvalidU32Bytes(_) => FfiError::InvalidU32Bytes,
Error::Generic(_) => FfiError::Generic,
Error::ScriptDoesntHaveAddressForm => FfiError::ScriptDoesntHaveAddressForm,
Error::NoRecipients => FfiError::NoRecipients,
Error::NoUtxosSelected => FfiError::NoUtxosSelected,
Error::OutputBelowDustLimit(_) => FfiError::OutputBelowDustLimit,
Error::InsufficientFunds { .. } => FfiError::InsufficientFunds,
Error::BnBTotalTriesExceeded => FfiError::BnBTotalTriesExceeded,
Error::BnBNoExactMatch => FfiError::BnBNoExactMatch,
Error::UnknownUtxo => FfiError::UnknownUtxo,
Error::TransactionNotFound => FfiError::TransactionNotFound,
Error::TransactionConfirmed => FfiError::TransactionConfirmed,
Error::IrreplaceableTransaction => FfiError::IrreplaceableTransaction,
Error::FeeRateTooLow { .. } => FfiError::FeeRateTooLow,
Error::FeeTooLow { .. } => FfiError::FeeTooLow,
2021-09-25 21:17:40 -07:00
Error::FeeRateUnavailable => FfiError::FeeRateUnavailable,
Error::MissingKeyOrigin(_) => FfiError::MissingKeyOrigin,
Error::Key(_) => FfiError::Key,
Error::ChecksumMismatch => FfiError::ChecksumMismatch,
Error::SpendingPolicyRequired(_) => FfiError::SpendingPolicyRequired,
Error::InvalidPolicyPathError(_) => FfiError::InvalidPolicyPathError,
Error::Signer(_) => FfiError::Signer,
2021-09-25 21:17:40 -07:00
Error::InvalidNetwork { .. } => FfiError::InvalidNetwork,
Error::InvalidProgressValue(_) => FfiError::InvalidProgressValue,
Error::ProgressUpdateError => FfiError::ProgressUpdateError,
Error::InvalidOutpoint(_) => FfiError::InvalidOutpoint,
Error::Descriptor(_) => FfiError::Descriptor,
Error::AddressValidator(_) => FfiError::AddressValidator,
Error::Encode(_) => FfiError::Encode,
Error::Miniscript(_) => FfiError::Miniscript,
Error::Bip32(_) => FfiError::Bip32,
Error::Secp256k1(_) => FfiError::Secp256k1,
Error::Json(_) => FfiError::Json,
Error::Hex(_) => FfiError::Hex,
Error::Psbt(_) => FfiError::Psbt,
2021-09-25 21:17:40 -07:00
Error::PsbtParse(_) => FfiError::PsbtParse,
Error::Electrum(_) => FfiError::Electrum,
// Error::Esplora(_) => JniError::Esplora,
// Error::CompactFilters(_) => JniError::CompactFilters,
2021-09-25 21:17:40 -07:00
// Error::Rpc(_) => JniError::Rpc,
Error::Sled(_) => FfiError::Sled,
}
}
}