Skip to content

Commit 2ead31f

Browse files
stackman27jnewbery
authored andcommitted
[wallet] Return object from upgradewallet RPC
1 parent 867dbeb commit 2ead31f

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/wallet/rpcwallet.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4443,7 +4443,12 @@ static RPCHelpMan upgradewallet()
44434443
{
44444444
{"version", RPCArg::Type::NUM, /* default */ strprintf("%d", FEATURE_LATEST), "The version number to upgrade to. Default is the latest wallet version"}
44454445
},
4446-
RPCResults{},
4446+
RPCResult{
4447+
RPCResult::Type::OBJ, "", "",
4448+
{
4449+
{RPCResult::Type::STR, "error", /* optional */ true, "Error message (if there is one)"}
4450+
},
4451+
},
44474452
RPCExamples{
44484453
HelpExampleCli("upgradewallet", "169900")
44494454
+ HelpExampleRpc("upgradewallet", "169900")
@@ -4468,7 +4473,11 @@ static RPCHelpMan upgradewallet()
44684473
if (!pwallet->UpgradeWallet(version, error, warnings)) {
44694474
throw JSONRPCError(RPC_WALLET_ERROR, error.original);
44704475
}
4471-
return error.original;
4476+
UniValue obj(UniValue::VOBJ);
4477+
if (!error.empty()) {
4478+
obj.pushKV("error", error.original);
4479+
}
4480+
return obj;
44724481
},
44734482
};
44744483
}

test/functional/wallet_upgradewallet.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def run_test(self):
107107

108108
# calling upgradewallet without version arguments
109109
# should return nothing if successful
110-
assert_equal(wallet.upgradewallet(), "")
110+
assert_equal(wallet.upgradewallet(), {})
111111
new_version = wallet.getwalletinfo()["walletversion"]
112112
# upgraded wallet version should be greater than older one
113113
assert_greater_than(new_version, old_version)
@@ -130,7 +130,7 @@ def run_test(self):
130130
assert_equal('hdseedid' in wallet.getwalletinfo(), False)
131131
# calling upgradewallet with explicit version number
132132
# should return nothing if successful
133-
assert_equal(wallet.upgradewallet(169900), "")
133+
assert_equal(wallet.upgradewallet(169900), {})
134134
new_version = wallet.getwalletinfo()["walletversion"]
135135
# upgraded wallet should have version 169900
136136
assert_equal(new_version, 169900)

0 commit comments

Comments
 (0)