diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -414,11 +414,46 @@ try { std::string result; std::string executableCommand = command.toStdString() + "\n"; + + // Catch the console-only-help command before RPC call is executed and + // reply with help text as-if a RPC reply. + if (executableCommand == "help-console\n") { + Q_EMIT reply( + RPCConsole::CMD_REPLY, + QString(("\n" + "This console accepts RPC commands using the standard " + "syntax.\n" + " example: getblockhash 0\n\n" + + "This console can also accept RPC commands using " + "parenthesized syntax.\n" + " example: getblockhash(0)\n\n" + + "Commands may be nested when specified with the " + "parenthesized syntax.\n" + " example: getblock(getblockhash(0) 1)\n\n" + + "A space or a comma can be used to delimit arguments " + "for either syntax.\n" + " example: getblockhash 0\n" + " getblockhash,0\n\n" + + "Named results can be queried with a non-quoted key " + "string in brackets.\n" + " example: getblock(getblockhash(0) true)[tx]\n\n" + + "Results without keys can be queried using an integer " + "in brackets.\n" + " example: " + "getblock(getblockhash(0),true)[tx][0]\n\n"))); + return; + } if (!RPCConsole::RPCExecuteCommandLine(result, executableCommand)) { Q_EMIT reply(RPCConsole::CMD_ERROR, QString("Parse error: unbalanced ' or \"")); return; } + Q_EMIT reply(RPCConsole::CMD_REPLY, QString::fromStdString(result)); } catch (UniValue &objError) { try // Nice formatting for standard-format error @@ -709,6 +744,7 @@ wordList << ("help " + commandList[i]).c_str(); } + wordList << "help-console"; wordList.sort(); autoCompleter = new QCompleter(wordList, this); autoCompleter->setModelSorting(QCompleter::CaseSensitivelySortedModel); @@ -823,13 +859,17 @@ "%1 to clear screen.") .arg("" + clsKey + "") + "
" + - tr("Type help for an overview of available commands.")) + - "
" + - tr("WARNING: Scammers have been active, telling users to type " - "commands here, stealing their wallet contents. Do not use " - "this console without fully understanding the ramification " - "of a command.") + - "", + tr("Type %1 for an overview of available commands.") + .arg("help") + + "
" + + tr("For more information on using this console type %1.") + .arg("help-console") + + "

" + + tr("WARNING: Scammers have been active, telling users to type " + "commands here, stealing their wallet contents. Do not use " + "this console without fully understanding the ramification " + "of a command.") + + "
"), true); }