@@ -4245,6 +4245,45 @@ UniValue walletcreatefundedpsbt(const JSONRPCRequest& request)
4245
4245
return result;
4246
4246
}
4247
4247
4248
+ static UniValue upgradewallet (const JSONRPCRequest& request)
4249
+ {
4250
+ std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest (request);
4251
+ CWallet* const pwallet = wallet.get ();
4252
+
4253
+ if (!EnsureWalletIsAvailable (pwallet, request.fHelp )) {
4254
+ return NullUniValue;
4255
+ }
4256
+
4257
+ RPCHelpMan{" upgradewallet" ,
4258
+ " \n Upgrade the wallet. Upgrades to the latest version if no version number is specified\n "
4259
+ " New keys may be generated and a new wallet backup will need to be made." ,
4260
+ {
4261
+ {" version" , RPCArg::Type::NUM, /* default */ strprintf (" %d" , FEATURE_LATEST), " The version number to upgrade to. Default is the latest wallet version" }
4262
+ },
4263
+ RPCResults{},
4264
+ RPCExamples{
4265
+ HelpExampleCli (" upgradewallet" , " 169900" )
4266
+ + HelpExampleRpc (" upgradewallet" , " 169900" )
4267
+ }
4268
+ }.Check (request);
4269
+
4270
+ RPCTypeCheck (request.params , {UniValue::VNUM}, true );
4271
+
4272
+ EnsureWalletIsUnlocked (pwallet);
4273
+
4274
+ int version = 0 ;
4275
+ if (!request.params [0 ].isNull ()) {
4276
+ version = request.params [0 ].get_int ();
4277
+ }
4278
+
4279
+ std::string error;
4280
+ std::vector<std::string> warnings;
4281
+ if (!pwallet->UpgradeWallet (version, error, warnings)) {
4282
+ throw JSONRPCError (RPC_WALLET_ERROR, error);
4283
+ }
4284
+ return error;
4285
+ }
4286
+
4248
4287
UniValue abortrescan (const JSONRPCRequest& request); // in rpcdump.cpp
4249
4288
UniValue dumpprivkey (const JSONRPCRequest& request); // in rpcdump.cpp
4250
4289
UniValue importprivkey (const JSONRPCRequest& request);
@@ -4313,6 +4352,7 @@ static const CRPCCommand commands[] =
4313
4352
{ " wallet" , " signmessage" , &signmessage, {" address" ," message" } },
4314
4353
{ " wallet" , " signrawtransactionwithwallet" , &signrawtransactionwithwallet, {" hexstring" ," prevtxs" ," sighashtype" } },
4315
4354
{ " wallet" , " unloadwallet" , &unloadwallet, {" wallet_name" } },
4355
+ { " wallet" , " upgradewallet" , &upgradewallet, {" version" } },
4316
4356
{ " wallet" , " walletcreatefundedpsbt" , &walletcreatefundedpsbt, {" inputs" ," outputs" ," locktime" ," options" ," bip32derivs" } },
4317
4357
{ " wallet" , " walletlock" , &walletlock, {} },
4318
4358
{ " wallet" , " walletpassphrase" , &walletpassphrase, {" passphrase" ," timeout" } },
0 commit comments