Skip to content

Commit 6c3bb60

Browse files
committed
Merge #276: Implement importwallet method and test
c62b4d2 Implement importwallet method and test (GideonBature) Pull request description: The JSON-RPC method `importwallet` 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 c62b4d2 Tree-SHA512: efb9e543ec9796badf0d781e841cb54025f975425f9bc7e6183b51e3de06cd78fdc23e6f98ddcd17d6f8e4a6a36f2dcbb5f5ed1da9b28e68713c4b5076a7c509
2 parents 2aede02 + c62b4d2 commit 6c3bb60

File tree

15 files changed

+51
-0
lines changed

15 files changed

+51
-0
lines changed

client/src/client_sync/v17/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ crate::impl_client_v17__import_multi!();
132132
crate::impl_client_v17__import_privkey!();
133133
crate::impl_client_v17__import_pruned_funds!();
134134
crate::impl_client_v17__import_pubkey!();
135+
crate::impl_client_v17__import_wallet!();
135136
crate::impl_client_v17__list_address_groupings!();
136137
crate::impl_client_v17__list_labels!();
137138
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
@@ -365,6 +365,22 @@ macro_rules! impl_client_v17__import_pubkey {
365365
};
366366
}
367367

368+
/// Implements Bitcoin Core JSON-RPC API method `importwallet`.
369+
#[macro_export]
370+
macro_rules! impl_client_v17__import_wallet {
371+
() => {
372+
impl Client {
373+
pub fn import_wallet(&self, filename: &Path) -> Result<()> {
374+
match self.call("importwallet", &[into_json(filename)?]) {
375+
Ok(serde_json::Value::Null) => Ok(()),
376+
Ok(res) => Err(Error::Returned(res.to_string())),
377+
Err(err) => Err(err.into()),
378+
}
379+
}
380+
}
381+
};
382+
}
383+
368384
/// Implements Bitcoin Core JSON-RPC API method `listaddressgroupings`.
369385
#[macro_export]
370386
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
@@ -147,6 +147,7 @@ crate::impl_client_v17__import_multi!();
147147
crate::impl_client_v17__import_privkey!();
148148
crate::impl_client_v17__import_pruned_funds!();
149149
crate::impl_client_v17__import_pubkey!();
150+
crate::impl_client_v17__import_wallet!();
150151
crate::impl_client_v17__list_address_groupings!();
151152
crate::impl_client_v17__list_labels!();
152153
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
@@ -143,6 +143,7 @@ crate::impl_client_v17__import_multi!();
143143
crate::impl_client_v17__import_privkey!();
144144
crate::impl_client_v17__import_pruned_funds!();
145145
crate::impl_client_v17__import_pubkey!();
146+
crate::impl_client_v17__import_wallet!();
146147
crate::impl_client_v17__list_address_groupings!();
147148
crate::impl_client_v18__list_received_by_label!();
148149
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
@@ -140,6 +140,7 @@ crate::impl_client_v17__import_multi!();
140140
crate::impl_client_v17__import_privkey!();
141141
crate::impl_client_v17__import_pruned_funds!();
142142
crate::impl_client_v17__import_pubkey!();
143+
crate::impl_client_v17__import_wallet!();
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/v21/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ crate::impl_client_v17__import_multi!();
142142
crate::impl_client_v17__import_privkey!();
143143
crate::impl_client_v17__import_pruned_funds!();
144144
crate::impl_client_v17__import_pubkey!();
145+
crate::impl_client_v17__import_wallet!();
145146
crate::impl_client_v17__list_address_groupings!();
146147
crate::impl_client_v17__list_labels!();
147148
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
@@ -142,6 +142,7 @@ crate::impl_client_v17__import_multi!();
142142
crate::impl_client_v17__import_privkey!();
143143
crate::impl_client_v17__import_pruned_funds!();
144144
crate::impl_client_v17__import_pubkey!();
145+
crate::impl_client_v17__import_wallet!();
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/v23/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ crate::impl_client_v17__import_multi!();
144144
crate::impl_client_v17__import_privkey!();
145145
crate::impl_client_v17__import_pruned_funds!();
146146
crate::impl_client_v17__import_pubkey!();
147+
crate::impl_client_v17__import_wallet!();
147148
crate::impl_client_v17__list_address_groupings!();
148149
crate::impl_client_v18__list_received_by_label!();
149150
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
@@ -141,6 +141,7 @@ crate::impl_client_v17__import_multi!();
141141
crate::impl_client_v17__import_privkey!();
142142
crate::impl_client_v17__import_pruned_funds!();
143143
crate::impl_client_v17__import_pubkey!();
144+
crate::impl_client_v17__import_wallet!();
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/v25/mod.rs

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

0 commit comments

Comments
 (0)