@@ -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+
125130fn 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+
12701285fn test_get_index_info ( cl : & Client ) {
12711286 if version ( ) >= 210000 {
12721287 let gii = cl. get_index_info ( ) . unwrap ( ) ;
0 commit comments