Skip to content

Commit 652edcf

Browse files
refactor: migrate errors thrown by wallet to procedural macros
1 parent 70a2e4a commit 652edcf

File tree

3 files changed

+8
-71
lines changed

3 files changed

+8
-71
lines changed

bdk-ffi/src/bdk.udl

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,6 @@ interface Bip39Error {
4242
AmbiguousLanguages(string languages);
4343
};
4444

45-
[Error]
46-
interface CalculateFeeError {
47-
MissingTxOut(sequence<OutPoint> out_points);
48-
NegativeFee(string amount);
49-
};
50-
51-
[Error]
52-
interface CannotConnectError {
53-
Include(u32 height);
54-
};
55-
5645
[Error]
5746
interface CreateTxError {
5847
Descriptor(string error_message);
@@ -79,13 +68,6 @@ interface CreateTxError {
7968
LockTimeConversionError();
8069
};
8170

82-
[Error]
83-
interface CreateWithPersistError {
84-
Persist(string error_message);
85-
DataAlreadyExists();
86-
Descriptor(string error_message);
87-
};
88-
8971
[Error]
9072
interface DescriptorError {
9173
InvalidHdKeyPath();
@@ -170,13 +152,6 @@ interface FromScriptError {
170152
OtherFromScriptErr();
171153
};
172154

173-
[Error]
174-
interface LoadWithPersistError {
175-
Persist(string error_message);
176-
InvalidChangeSet(string error_message);
177-
CouldNotLoad();
178-
};
179-
180155
[Error]
181156
interface MiniscriptError {
182157
AbsoluteLockTime();
@@ -288,32 +263,6 @@ interface RequestBuilderError {
288263
RequestAlreadyConsumed();
289264
};
290265

291-
[Error]
292-
interface SignerError {
293-
MissingKey();
294-
InvalidKey();
295-
UserCanceled();
296-
InputIndexOutOfRange();
297-
MissingNonWitnessUtxo();
298-
InvalidNonWitnessUtxo();
299-
MissingWitnessUtxo();
300-
MissingWitnessScript();
301-
MissingHdKeypath();
302-
NonStandardSighash();
303-
InvalidSighash();
304-
SighashP2wpkh(string error_message);
305-
SighashTaproot(string error_message);
306-
TxInputsIndexError(string error_message);
307-
MiniscriptPsbt(string error_message);
308-
External(string error_message);
309-
Psbt(string error_message);
310-
};
311-
312-
[Error]
313-
interface SqliteError {
314-
Sqlite(string rusqlite_error);
315-
};
316-
317266
[Error]
318267
interface TransactionError {
319268
Io();
@@ -325,11 +274,6 @@ interface TransactionError {
325274
OtherTransactionErr();
326275
};
327276

328-
[Error]
329-
interface TxidParseError {
330-
InvalidTxid(string txid);
331-
};
332-
333277
// ------------------------------------------------------------------------
334278
// bdk_wallet crate - types module
335279
// ------------------------------------------------------------------------

bdk-ffi/src/error.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ pub enum Bip39Error {
121121
AmbiguousLanguages { languages: String },
122122
}
123123

124-
#[derive(Debug, thiserror::Error)]
124+
#[derive(Debug, thiserror::Error, uniffi::Error)]
125125
pub enum CalculateFeeError {
126126
#[error("missing transaction output: {out_points:?}")]
127127
MissingTxOut { out_points: Vec<OutPoint> },
@@ -130,7 +130,7 @@ pub enum CalculateFeeError {
130130
NegativeFee { amount: String },
131131
}
132132

133-
#[derive(Debug, thiserror::Error)]
133+
#[derive(Debug, thiserror::Error, uniffi::Error)]
134134
pub enum CannotConnectError {
135135
#[error("cannot include height: {height}")]
136136
Include { height: u32 },
@@ -205,7 +205,7 @@ pub enum CreateTxError {
205205
LockTimeConversionError,
206206
}
207207

208-
#[derive(Debug, thiserror::Error)]
208+
#[derive(Debug, thiserror::Error, uniffi::Error)]
209209
pub enum CreateWithPersistError {
210210
#[error("sqlite persistence error: {error_message}")]
211211
Persist { error_message: String },
@@ -414,7 +414,7 @@ pub enum RequestBuilderError {
414414
RequestAlreadyConsumed,
415415
}
416416

417-
#[derive(Debug, thiserror::Error)]
417+
#[derive(Debug, thiserror::Error, uniffi::Error)]
418418
pub enum LoadWithPersistError {
419419
#[error("sqlite persistence error: {error_message}")]
420420
Persist { error_message: String },
@@ -691,7 +691,7 @@ pub enum PsbtFinalizeError {
691691
InputIdxOutofBounds { psbt_inp: u32, requested: u32 },
692692
}
693693

694-
#[derive(Debug, thiserror::Error)]
694+
#[derive(Debug, thiserror::Error, uniffi::Error)]
695695
pub enum SignerError {
696696
#[error("missing key for signing")]
697697
MissingKey,
@@ -745,7 +745,7 @@ pub enum SignerError {
745745
Psbt { error_message: String },
746746
}
747747

748-
#[derive(Debug, thiserror::Error)]
748+
#[derive(Debug, thiserror::Error, uniffi::Error)]
749749
pub enum SqliteError {
750750
#[error("sqlite error: {rusqlite_error}")]
751751
Sqlite { rusqlite_error: String },
@@ -776,7 +776,7 @@ pub enum TransactionError {
776776
OtherTransactionErr,
777777
}
778778

779-
#[derive(Debug, thiserror::Error)]
779+
#[derive(Debug, thiserror::Error, uniffi::Error)]
780780
pub enum TxidParseError {
781781
#[error("invalid txid: {txid}")]
782782
InvalidTxid { txid: String },
@@ -1535,12 +1535,12 @@ impl From<bdk_kyoto::kyoto::ClientError> for CbfError {
15351535

15361536
#[cfg(test)]
15371537
mod test {
1538+
use crate::error::SignerError;
15381539
use crate::error::{
15391540
Bip32Error, Bip39Error, CannotConnectError, DescriptorError, DescriptorKeyError,
15401541
ElectrumError, EsploraError, ExtractTxError, PersistenceError, PsbtError, PsbtParseError,
15411542
RequestBuilderError, TransactionError, TxidParseError,
15421543
};
1543-
use crate::SignerError;
15441544

15451545
#[test]
15461546
fn test_error_bip32() {

bdk-ffi/src/lib.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,29 +31,22 @@ use crate::electrum::ServerFeaturesRes;
3131
use crate::error::AddressParseError;
3232
use crate::error::Bip32Error;
3333
use crate::error::Bip39Error;
34-
use crate::error::CalculateFeeError;
35-
use crate::error::CannotConnectError;
3634
use crate::error::CreateTxError;
37-
use crate::error::CreateWithPersistError;
3835
use crate::error::DescriptorError;
3936
use crate::error::DescriptorKeyError;
4037
use crate::error::ElectrumError;
4138
use crate::error::EsploraError;
4239
use crate::error::ExtractTxError;
4340
use crate::error::FeeRateError;
4441
use crate::error::FromScriptError;
45-
use crate::error::LoadWithPersistError;
4642
use crate::error::MiniscriptError;
4743
use crate::error::ParseAmountError;
4844
use crate::error::PersistenceError;
4945
use crate::error::PsbtError;
5046
use crate::error::PsbtFinalizeError;
5147
use crate::error::PsbtParseError;
5248
use crate::error::RequestBuilderError;
53-
use crate::error::SignerError;
54-
use crate::error::SqliteError;
5549
use crate::error::TransactionError;
56-
use crate::error::TxidParseError;
5750
use crate::esplora::EsploraClient;
5851
use crate::keys::DerivationPath;
5952
use crate::keys::DescriptorPublicKey;

0 commit comments

Comments
 (0)