Skip to content

Commit 0fca914

Browse files
committed
merge bitcoin#24855: Fix setwalletflag disabling of flags
1 parent f15a1b9 commit 0fca914

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/wallet/rpc/wallet.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ static RPCHelpMan setwalletflag()
560560
{
561561
{RPCResult::Type::STR, "flag_name", "The name of the flag that was modified"},
562562
{RPCResult::Type::BOOL, "flag_state", "The new state of the flag"},
563-
{RPCResult::Type::STR, "warnings", "Any warnings associated with the change"},
563+
{RPCResult::Type::STR, "warnings", /*optional=*/true, "Any warnings associated with the change"},
564564
}
565565
},
566566
RPCExamples{

test/functional/wallet_avoidreuse.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,17 @@ def test_persistence(self):
115115
assert_raises_rpc_error(-8, "Wallet flag is already set to false", self.nodes[0].setwalletflag, 'avoid_reuse', False)
116116
assert_raises_rpc_error(-8, "Wallet flag is already set to true", self.nodes[1].setwalletflag, 'avoid_reuse', True)
117117

118+
# Create a wallet with avoid reuse, and test that disabling it afterwards persists
119+
self.nodes[1].createwallet(wallet_name="avoid_reuse_persist", avoid_reuse=True)
120+
w = self.nodes[1].get_wallet_rpc("avoid_reuse_persist")
121+
assert_equal(w.getwalletinfo()["avoid_reuse"], True)
122+
w.setwalletflag("avoid_reuse", False)
123+
assert_equal(w.getwalletinfo()["avoid_reuse"], False)
124+
w.unloadwallet()
125+
self.nodes[1].loadwallet("avoid_reuse_persist")
126+
assert_equal(w.getwalletinfo()["avoid_reuse"], False)
127+
w.unloadwallet()
128+
118129
def test_immutable(self):
119130
'''Test immutable wallet flags'''
120131
self.log.info("Test immutable wallet flags")

0 commit comments

Comments
 (0)