diff --git a/src/rpc/avalanche.cpp b/src/rpc/avalanche.cpp index 33b70f22c..cd64981eb 100644 --- a/src/rpc/avalanche.cpp +++ b/src/rpc/avalanche.cpp @@ -1,91 +1,90 @@ // Copyright (c) 2020 The Bitcoin developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include #include #include #include #include #include #include static UniValue getavalanchekey(const Config &config, const JSONRPCRequest &request) { if (request.fHelp || request.params.size() != 0) { throw std::runtime_error( RPCHelpMan{"getavalanchekey", "\nReturns the key used to sign avalanche messages.\n", {}} - .ToString() + + .ToStringWithArgs() + "\nExamples:\n" + HelpExampleRpc("getavalanchekey", "")); } if (!g_avalanche) { throw JSONRPCError(RPC_INTERNAL_ERROR, "Avalanche is not initialized"); } return HexStr(g_avalanche->getSessionPubKey()); } static UniValue addavalanchepeer(const Config &config, const JSONRPCRequest &request) { if (request.fHelp || request.params.size() != 2) { throw std::runtime_error( RPCHelpMan{ "addavalanchepeer", "\nAdd a peer to the set of peer to poll for avalanche.\n", { - {"nodeid", RPCArg::Type::NUM, false}, - {"publickey", RPCArg::Type::STR_HEX, false}, + {"nodeid", RPCArg::Type::NUM, /* opt */ false, + /* default_value */ "", "Node to be added to avalanche."}, + {"publickey", RPCArg::Type::STR_HEX, /* opt */ false, + /* default_value */ "", "The public key of the node."}, }} - .ToString() + - "\nArguments\n" + - "1. nodeid (number, required) Node to be added to avalanche.\n" + - "2. publickey (sring, required) The public key of the node.\n" + + .ToStringWithArgs() + "\nExamples:\n" + HelpExampleRpc("addavalanchepeer", "5")); } if (!g_avalanche) { throw JSONRPCError(RPC_INTERNAL_ERROR, "Avalanche is not initialized"); } // Parse nodeid if (!request.params[0].isNum()) { throw JSONRPCError( RPC_INVALID_PARAMETER, std::string("Invalid parameter, nodeid must be an integer")); } NodeId nodeid = request.params[0].get_int64(); // Parse the pubkey const std::string keyHex = request.params[1].get_str(); if ((keyHex.length() != 2 * CPubKey::COMPRESSED_PUBLIC_KEY_SIZE && keyHex.length() != 2 * CPubKey::PUBLIC_KEY_SIZE) || !IsHex(keyHex)) { throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Invalid public key: %s\n", keyHex)); } CPubKey pubkey{HexToPubKey(keyHex)}; g_avalanche->addPeer(nodeid, 0, pubkey); return {}; } // clang-format off static const ContextFreeRPCCommand commands[] = { // category name actor (function) argNames // ------------------- ------------------------ ---------------------- ---------- { "avalanche", "getavalanchekey", getavalanchekey, {}}, { "avalanche", "addavalanchepeer", addavalanchepeer, {"nodeid"}}, }; // clang-format on void RegisterAvalancheRPCCommands(CRPCTable &t) { for (unsigned int vcidx = 0; vcidx < ARRAYLEN(commands); vcidx++) { t.appendCommand(commands[vcidx].name, &commands[vcidx]); } }