Skip to content

Commit

Permalink
Import multiple descriptors at a time (ordinals#3091)
Browse files Browse the repository at this point in the history
  • Loading branch information
raphjaph committed Feb 14, 2024
1 parent 6a0fc1a commit 6ff6164
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 13 deletions.
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ mime = "0.3.16"
mime_guess = "2.0.4"
miniscript = "10.0.0"
mp4 = "0.14.0"
ord-bitcoincore-rpc = "0.17.1"
ord-bitcoincore-rpc = "0.17.2"
ordinals = { version = "0.0.2", path = "crates/ordinals" }
redb = "1.5.0"
regex = "1.6.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/test-bitcoincore-rpc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ hex = "0.4.3"
jsonrpc-core = "18.0.0"
jsonrpc-derive = "18.0.0"
jsonrpc-http-server = "18.0.0"
ord-bitcoincore-rpc = "0.17.1"
ord-bitcoincore-rpc = "0.17.2"
reqwest = { version = "0.11.10", features = ["blocking"] }
serde = { version = "1.0.137", features = ["derive"] }
serde_json = { version = "1.0.81" }
Expand Down
17 changes: 10 additions & 7 deletions src/wallet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -407,9 +407,10 @@ impl Wallet {

client.create_wallet(&self.name, None, Some(true), None, None)?;

for descriptor in descriptors {
client.import_descriptors(ImportDescriptors {
descriptor: descriptor.desc,
let descriptors = descriptors
.into_iter()
.map(|descriptor| ImportDescriptors {
descriptor: descriptor.desc.clone(),
timestamp: descriptor.timestamp,
active: Some(true),
range: descriptor.range.map(|(start, end)| {
Expand All @@ -423,8 +424,10 @@ impl Wallet {
.map(|next| usize::try_from(next).unwrap_or(0)),
internal: descriptor.internal,
label: None,
})?;
}
})
.collect::<Vec<ImportDescriptors>>();

client.import_descriptors(descriptors)?;

Ok(())
}
Expand Down Expand Up @@ -493,15 +496,15 @@ impl Wallet {
self
.options
.bitcoin_rpc_client(Some(self.name.clone()))?
.import_descriptors(ImportDescriptors {
.import_descriptors(vec![ImportDescriptors {
descriptor: descriptor.to_string_with_secret(&key_map),
timestamp: Timestamp::Now,
active: Some(true),
range: None,
next_index: None,
internal: Some(change),
label: None,
})?;
}])?;

Ok(())
}
Expand Down
4 changes: 2 additions & 2 deletions src/wallet/inscribe/batch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -455,15 +455,15 @@ impl Batch {
let info =
bitcoin_client.get_descriptor_info(&format!("rawtr({})", recovery_private_key.to_wif()))?;

let response = bitcoin_client.import_descriptors(ImportDescriptors {
let response = bitcoin_client.import_descriptors(vec![ImportDescriptors {
descriptor: format!("rawtr({})#{}", recovery_private_key.to_wif(), info.checksum),
timestamp: Timestamp::Now,
active: Some(false),
range: None,
next_index: None,
internal: Some(false),
label: Some("commit tx recovery key".to_string()),
})?;
}])?;

for result in response {
if !result.success {
Expand Down

0 comments on commit 6ff6164

Please sign in to comment.