Skip to content

Commit a4aaa86

Browse files
committed
Merge #291: Add UnloadWalletResult
0c582fa Add UnloadWalletResult (Mike Neuhaus) Pull request description: closes #290 ACKs for top commit: apoelstra: utACK 0c582fa Tree-SHA512: 532eb51f649fbcd958c875817bc01bcb55c4a3f5245395ba8e490dad71a5c14734145b2a1a63ffece6549f082694622111d934b893d03629783876e898a97d40
2 parents 6746011 + 0c582fa commit a4aaa86

File tree

3 files changed

+28
-8
lines changed

3 files changed

+28
-8
lines changed

client/src/client.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ pub trait RpcApi: Sized {
272272
self.call("loadwallet", &[wallet.into()])
273273
}
274274

275-
fn unload_wallet(&self, wallet: Option<&str>) -> Result<()> {
275+
fn unload_wallet(&self, wallet: Option<&str>) -> Result<Option<json::UnloadWalletResult>> {
276276
let mut args = [opt_into_json(wallet)?];
277277
self.call("unloadwallet", handle_defaults(&mut args, &[null()]))
278278
}

integration_test/src/main.rs

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,15 @@ fn get_auth() -> bitcoincore_rpc::Auth {
122122
};
123123
}
124124

125+
fn new_wallet_client(wallet_name: &str) -> Client {
126+
let url = format!("{}{}{}", get_rpc_url(), "/wallet/", wallet_name);
127+
Client::new(&url, get_auth()).unwrap()
128+
}
129+
125130
fn main() {
126131
log::set_logger(&LOGGER).map(|()| log::set_max_level(log::LevelFilter::max())).unwrap();
127132

128-
let rpc_url = format!("{}/wallet/testwallet", get_rpc_url());
129-
let auth = get_auth();
130-
131-
let cl = Client::new(&rpc_url, auth).unwrap();
133+
let cl = new_wallet_client("testwallet");
132134

133135
test_get_network_info(&cl);
134136
unsafe { VERSION = cl.version().unwrap() };
@@ -200,6 +202,7 @@ fn main() {
200202
test_get_network_hash_ps(&cl);
201203
test_uptime(&cl);
202204
test_getblocktemplate(&cl);
205+
test_unloadwallet(&cl);
203206
//TODO import_multi(
204207
//TODO verify_message(
205208
//TODO wait_for_new_block(&self, timeout: u64) -> Result<json::BlockRef> {
@@ -210,7 +213,6 @@ fn main() {
210213
//TODO get_by_id<T: queryable::Queryable<Self>>(
211214
//TODO add_multisig_address(
212215
//TODO load_wallet(&self, wallet: &str) -> Result<json::LoadWalletResult> {
213-
//TODO unload_wallet(&self, wallet: Option<&str>) -> Result<()> {
214216
//TODO backup_wallet(&self, destination: Option<&str>) -> Result<()> {
215217
test_add_node(&cl);
216218
test_get_added_node_info(&cl);
@@ -1130,8 +1132,7 @@ fn test_create_wallet(cl: &Client) {
11301132
};
11311133
assert_eq!(result.warning, expected_warning);
11321134

1133-
let wallet_client_url = format!("{}{}{}", get_rpc_url(), "/wallet/", wallet_param.name);
1134-
let wallet_client = Client::new(&wallet_client_url, get_auth()).unwrap();
1135+
let wallet_client = new_wallet_client(wallet_param.name);
11351136
let wallet_info = wallet_client.get_wallet_info().unwrap();
11361137

11371138
assert_eq!(wallet_info.wallet_name, wallet_param.name);
@@ -1267,6 +1268,20 @@ fn test_getblocktemplate(cl: &Client) {
12671268
cl.generate_to_address(2, &RANDOM_ADDRESS).unwrap();
12681269
}
12691270

1271+
fn test_unloadwallet(cl: &Client) {
1272+
cl.create_wallet("testunloadwallet", None, None, None, None).unwrap();
1273+
1274+
let res = new_wallet_client("testunloadwallet")
1275+
.unload_wallet(None)
1276+
.unwrap();
1277+
1278+
if version() >= 210000 {
1279+
assert!(res.is_some());
1280+
} else {
1281+
assert!(res.is_none());
1282+
}
1283+
}
1284+
12701285
fn test_get_index_info(cl: &Client) {
12711286
if version() >= 210000 {
12721287
let gii = cl.get_index_info().unwrap();

json/src/lib.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,11 @@ pub struct LoadWalletResult {
134134
pub warning: Option<String>,
135135
}
136136

137+
#[derive(Clone, PartialEq, Eq, Debug, Deserialize, Serialize)]
138+
pub struct UnloadWalletResult {
139+
pub warning: Option<String>,
140+
}
141+
137142
#[derive(Clone, PartialEq, Eq, Debug, Deserialize, Serialize)]
138143
pub struct ListWalletDirResult {
139144
pub wallets: Vec<ListWalletDirItem>,

0 commit comments

Comments
 (0)