Skip to content

Commit 4e2a3f8

Browse files
committed
Merge #269: Implement importpubkey method and test
1430723 Implement importpubkey method and test (GideonBature) Pull request description: The JSON-RPC method `importpubkey` does not return anything. We want to test this to catch any changes in behavior in future Core versions. This PR adds a client function that errors if the return value is anything other than `null`, along with an integration test that calls this function. Ref: [#116](#116) ACKs for top commit: tcharding: ACK 1430723 Tree-SHA512: 06ed71c3636a386d7b90750fdea74b846a8514b68066bd44d5b71c7300a20e023729ad944871da57d6f3bf33cabb8cdebf7359ac1c1acc9a00a7f938be168b54
2 parents 414ba10 + 1430723 commit 4e2a3f8

File tree

15 files changed

+50
-1
lines changed

15 files changed

+50
-1
lines changed

client/src/client_sync/v17/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ crate::impl_client_v17__get_wallet_info!();
130130
crate::impl_client_v17__import_address!();
131131
crate::impl_client_v17__import_privkey!();
132132
crate::impl_client_v17__import_pruned_funds!();
133+
crate::impl_client_v17__import_pubkey!();
133134
crate::impl_client_v17__list_address_groupings!();
134135
crate::impl_client_v17__list_labels!();
135136
crate::impl_client_v17__list_lock_unspent!();

client/src/client_sync/v17/wallet.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,22 @@ macro_rules! impl_client_v17__import_pruned_funds {
337337
};
338338
}
339339

340+
/// Implements Bitcoin Core JSON-RPC API method `importpubkey`.
341+
#[macro_export]
342+
macro_rules! impl_client_v17__import_pubkey {
343+
() => {
344+
impl Client {
345+
pub fn import_pubkey(&self, pubkey: &bitcoin::PublicKey) -> Result<()> {
346+
match self.call("importpubkey", &[into_json(pubkey)?]) {
347+
Ok(serde_json::Value::Null) => Ok(()),
348+
Ok(res) => Err(Error::Returned(res.to_string())),
349+
Err(err) => Err(err.into()),
350+
}
351+
}
352+
}
353+
};
354+
}
355+
340356
/// Implements Bitcoin Core JSON-RPC API method `listaddressgroupings`.
341357
#[macro_export]
342358
macro_rules! impl_client_v17__list_address_groupings {

client/src/client_sync/v18/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ crate::impl_client_v17__get_wallet_info!();
145145
crate::impl_client_v17__import_address!();
146146
crate::impl_client_v17__import_privkey!();
147147
crate::impl_client_v17__import_pruned_funds!();
148+
crate::impl_client_v17__import_pubkey!();
148149
crate::impl_client_v17__list_address_groupings!();
149150
crate::impl_client_v17__list_labels!();
150151
crate::impl_client_v17__list_lock_unspent!();

client/src/client_sync/v19/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ crate::impl_client_v17__get_wallet_info!();
141141
crate::impl_client_v17__import_address!();
142142
crate::impl_client_v17__import_privkey!();
143143
crate::impl_client_v17__import_pruned_funds!();
144+
crate::impl_client_v17__import_pubkey!();
144145
crate::impl_client_v17__list_address_groupings!();
145146
crate::impl_client_v18__list_received_by_label!();
146147
crate::impl_client_v17__list_labels!();

client/src/client_sync/v20/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ crate::impl_client_v17__get_wallet_info!();
138138
crate::impl_client_v17__import_address!();
139139
crate::impl_client_v17__import_privkey!();
140140
crate::impl_client_v17__import_pruned_funds!();
141+
crate::impl_client_v17__import_pubkey!();
141142
crate::impl_client_v17__list_address_groupings!();
142143
crate::impl_client_v17__list_labels!();
143144
crate::impl_client_v18__list_received_by_label!();

client/src/client_sync/v21/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ crate::impl_client_v17__get_wallet_info!();
140140
crate::impl_client_v17__import_address!();
141141
crate::impl_client_v17__import_privkey!();
142142
crate::impl_client_v17__import_pruned_funds!();
143+
crate::impl_client_v17__import_pubkey!();
143144
crate::impl_client_v17__list_address_groupings!();
144145
crate::impl_client_v17__list_labels!();
145146
crate::impl_client_v18__list_received_by_label!();

client/src/client_sync/v22/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ crate::impl_client_v17__get_wallet_info!();
140140
crate::impl_client_v17__import_address!();
141141
crate::impl_client_v17__import_privkey!();
142142
crate::impl_client_v17__import_pruned_funds!();
143+
crate::impl_client_v17__import_pubkey!();
143144
crate::impl_client_v17__list_address_groupings!();
144145
crate::impl_client_v18__list_received_by_label!();
145146
crate::impl_client_v17__list_labels!();

client/src/client_sync/v23/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ crate::impl_client_v17__get_wallet_info!();
142142
crate::impl_client_v17__import_address!();
143143
crate::impl_client_v17__import_privkey!();
144144
crate::impl_client_v17__import_pruned_funds!();
145+
crate::impl_client_v17__import_pubkey!();
145146
crate::impl_client_v17__list_address_groupings!();
146147
crate::impl_client_v18__list_received_by_label!();
147148
crate::impl_client_v17__list_labels!();

client/src/client_sync/v24/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ crate::impl_client_v17__get_wallet_info!();
139139
crate::impl_client_v17__import_address!();
140140
crate::impl_client_v17__import_privkey!();
141141
crate::impl_client_v17__import_pruned_funds!();
142+
crate::impl_client_v17__import_pubkey!();
142143
crate::impl_client_v17__list_address_groupings!();
143144
crate::impl_client_v18__list_received_by_label!();
144145
crate::impl_client_v17__list_labels!();

client/src/client_sync/v25/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ crate::impl_client_v17__get_wallet_info!();
139139
crate::impl_client_v17__import_address!();
140140
crate::impl_client_v17__import_privkey!();
141141
crate::impl_client_v17__import_pruned_funds!();
142+
crate::impl_client_v17__import_pubkey!();
142143
crate::impl_client_v17__list_address_groupings!();
143144
crate::impl_client_v18__list_received_by_label!();
144145
crate::impl_client_v17__list_labels!();

0 commit comments

Comments
 (0)