merge bitcoin#23398: add return message to savemempool RPC

This commit is contained in:
Kittywhiskers Van Gogh 2021-10-30 15:18:05 -03:00
parent 22e59fb464
commit d57c96ea37
No known key found for this signature in database
GPG Key ID: 30CD0C065E5C4AAD
2 changed files with 13 additions and 3 deletions

View File

@ -2643,7 +2643,11 @@ static RPCHelpMan savemempool()
return RPCHelpMan{"savemempool", return RPCHelpMan{"savemempool",
"\nDumps the mempool to disk. It will fail until the previous dump is fully loaded.\n", "\nDumps the mempool to disk. It will fail until the previous dump is fully loaded.\n",
{}, {},
RPCResult{RPCResult::Type::NONE, "", ""}, RPCResult{
RPCResult::Type::OBJ, "", "",
{
{RPCResult::Type::STR, "filename", "the directory and file where the mempool was saved"},
}},
RPCExamples{ RPCExamples{
HelpExampleCli("savemempool", "") HelpExampleCli("savemempool", "")
+ HelpExampleRpc("savemempool", "") + HelpExampleRpc("savemempool", "")
@ -2652,6 +2656,8 @@ static RPCHelpMan savemempool()
{ {
const CTxMemPool& mempool = EnsureAnyMemPool(request.context); const CTxMemPool& mempool = EnsureAnyMemPool(request.context);
const NodeContext& node = EnsureAnyNodeContext(request.context);
if (!mempool.IsLoaded()) { if (!mempool.IsLoaded()) {
throw JSONRPCError(RPC_MISC_ERROR, "The mempool was not loaded yet"); throw JSONRPCError(RPC_MISC_ERROR, "The mempool was not loaded yet");
} }
@ -2660,7 +2666,10 @@ static RPCHelpMan savemempool()
throw JSONRPCError(RPC_MISC_ERROR, "Unable to dump mempool to disk"); throw JSONRPCError(RPC_MISC_ERROR, "Unable to dump mempool to disk");
} }
return NullUniValue; UniValue ret(UniValue::VOBJ);
ret.pushKV("filename", fs::path((node.args->GetDataDirNet() / "mempool.dat")).u8string());
return ret;
}, },
}; };
} }

View File

@ -133,8 +133,9 @@ class MempoolPersistTest(BitcoinTestFramework):
mempooldat1 = os.path.join(self.nodes[1].datadir, self.chain, 'mempool.dat') mempooldat1 = os.path.join(self.nodes[1].datadir, self.chain, 'mempool.dat')
self.log.debug("Remove the mempool.dat file. Verify that savemempool to disk via RPC re-creates it") self.log.debug("Remove the mempool.dat file. Verify that savemempool to disk via RPC re-creates it")
os.remove(mempooldat0) os.remove(mempooldat0)
self.nodes[0].savemempool() result0 = self.nodes[0].savemempool()
assert os.path.isfile(mempooldat0) assert os.path.isfile(mempooldat0)
assert_equal(result0['filename'], mempooldat0)
self.log.debug("Stop nodes, make node1 use mempool.dat from node0. Verify it has 6 transactions") self.log.debug("Stop nodes, make node1 use mempool.dat from node0. Verify it has 6 transactions")
os.rename(mempooldat0, mempooldat1) os.rename(mempooldat0, mempooldat1)