Skip to content

Commit d4fbe66

Browse files
committed
fix(wallet): don't fail reading Null change_desc column from sqlite
1 parent a723269 commit d4fbe66

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

crates/wallet/src/wallet/changeset.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,23 @@ impl ChangeSet {
104104
.query_row([], |row| {
105105
Ok((
106106
row.get::<_, Impl<Descriptor<DescriptorPublicKey>>>("descriptor")?,
107-
row.get::<_, Impl<Descriptor<DescriptorPublicKey>>>("change_descriptor")?,
107+
row.get::<_, Impl<Descriptor<DescriptorPublicKey>>>("change_descriptor"),
108108
row.get::<_, Impl<bitcoin::Network>>("network")?,
109109
))
110110
})
111111
.optional()?;
112-
if let Some((Impl(desc), Impl(change_desc), Impl(network))) = row {
112+
if let Some((Impl(desc), res, Impl(network))) = row {
113113
changeset.descriptor = Some(desc);
114-
changeset.change_descriptor = Some(change_desc);
114+
use crate::rusqlite::types::Type;
115+
use crate::rusqlite::Error::*;
116+
changeset.change_descriptor = match res {
117+
Ok(Impl(change_desc)) => Some(change_desc),
118+
Err(e) => match e {
119+
// allow a Null column for change descriptor
120+
InvalidColumnType(_, _, Type::Null) => None,
121+
_ => return Err(e),
122+
},
123+
};
115124
changeset.network = Some(network);
116125
}
117126

0 commit comments

Comments
 (0)