Merge pull request #5500 from vijaydasmp/bp22_5

backport: Merge bitcoin#20468, 20568, 20606
This commit is contained in:
PastaPastaPasta 2023-08-01 12:21:37 -05:00 committed by GitHub
commit fa40fc676d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 49 additions and 33 deletions

View File

@ -18,6 +18,22 @@ BITCOINQT=${BITCOINQT:-$BINDIR/qt/dash-qt}
[ ! -x $BITCOIND ] && echo "$BITCOIND not found or not executable." && exit 1 [ ! -x $BITCOIND ] && echo "$BITCOIND not found or not executable." && exit 1
# Don't allow man pages to be generated for binaries built from a dirty tree
DIRTY=""
for cmd in $BITCOIND $BITCOINCLI $BITCOINTX $WALLET_TOOL $BITCOINQT; do
VERSION_OUTPUT=$($cmd --version)
if [[ $VERSION_OUTPUT == *"dirty"* ]]; then
DIRTY="${DIRTY}${cmd}\n"
fi
done
if [ -n "$DIRTY" ]
then
echo -e "WARNING: the following binaries were built from a dirty tree:\n"
echo -e $DIRTY
echo "man pages generated from dirty binaries should NOT be committed."
echo "To properly generate man pages, please commit your changes to the above binaries, rebuild them, then run this script again."
fi
# The autodetected version git tag can screw up manpage output a little bit # The autodetected version git tag can screw up manpage output a little bit
read -r -a BTCVER <<< "$($BITCOINCLI --version | head -n1 | awk -F'[ -]' '{ print $6, $7 }')" read -r -a BTCVER <<< "$($BITCOINCLI --version | head -n1 | awk -F'[ -]' '{ print $6, $7 }')"

View File

@ -39,6 +39,7 @@ static void SetupBitcoinTxArgs(ArgsManager &argsman)
{ {
SetupHelpOptions(argsman); SetupHelpOptions(argsman);
argsman.AddArg("-version", "Print version and exit", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
argsman.AddArg("-create", "Create new, empty TX.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-create", "Create new, empty TX.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
argsman.AddArg("-json", "Select JSON output", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-json", "Select JSON output", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
argsman.AddArg("-txid", "Output only the hex-encoded transaction id of the resultant transaction.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-txid", "Output only the hex-encoded transaction id of the resultant transaction.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
@ -98,13 +99,16 @@ static int AppInitRawTx(int argc, char* argv[])
fCreateBlank = gArgs.GetBoolArg("-create", false); fCreateBlank = gArgs.GetBoolArg("-create", false);
if (argc < 2 || HelpRequested(gArgs)) { if (argc < 2 || HelpRequested(gArgs) || gArgs.IsArgSet("-version")) {
// First part of help message is specific to this utility // First part of help message is specific to this utility
std::string strUsage = PACKAGE_NAME " dash-tx utility version " + FormatFullVersion() + "\n\n" + std::string strUsage = PACKAGE_NAME " dash-tx utility version " + FormatFullVersion() + "\n";
"Usage: dash-tx [options] <hex-tx> [commands] Update hex-encoded dash transaction\n" + if (!gArgs.IsArgSet("-version")) {
"or: dash-tx [options] -create [commands] Create hex-encoded dash transaction\n" + strUsage += "\n"
"\n"; "Usage: dash-tx [options] <hex-tx> [commands] Update hex-encoded dash transaction\n"
strUsage += gArgs.GetHelpMessage(); "or: dash-tx [options] -create [commands] Create hex-encoded dash transaction\n"
"\n";
strUsage += gArgs.GetHelpMessage();
}
tfm::format(std::cout, "%s", strUsage); tfm::format(std::cout, "%s", strUsage);

View File

@ -21,6 +21,7 @@ static void SetupWalletToolArgs(ArgsManager& argsman)
SetupHelpOptions(argsman); SetupHelpOptions(argsman);
SetupChainParamsBaseOptions(argsman); SetupChainParamsBaseOptions(argsman);
argsman.AddArg("-version", "Print version and exit", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
argsman.AddArg("-datadir=<dir>", "Specify data directory", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-datadir=<dir>", "Specify data directory", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
argsman.AddArg("-wallet=<wallet-name>", "Specify wallet name", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS); argsman.AddArg("-wallet=<wallet-name>", "Specify wallet name", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
argsman.AddArg("-debug=<category>", "Output debugging information (default: 0).", ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST); argsman.AddArg("-debug=<category>", "Output debugging information (default: 0).", ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST);
@ -42,16 +43,18 @@ static bool WalletAppInit(int argc, char* argv[])
tfm::format(std::cerr, "Error parsing command line arguments: %s\n", error_message); tfm::format(std::cerr, "Error parsing command line arguments: %s\n", error_message);
return false; return false;
} }
if (argc < 2 || HelpRequested(gArgs)) { if (argc < 2 || HelpRequested(gArgs) || gArgs.IsArgSet("-version")) {
std::string usage = strprintf("%s dash-wallet version", PACKAGE_NAME) + " " + FormatFullVersion() + "\n\n" + std::string strUsage = strprintf("%s dash-wallet version", PACKAGE_NAME) + " " + FormatFullVersion() + "\n";
"dash-wallet is an offline tool for creating and interacting with " PACKAGE_NAME " wallet files.\n" + if (!gArgs.IsArgSet("-version")) {
"By default dash-wallet will act on wallets in the default mainnet wallet directory in the datadir.\n" + strUsage += "\n"
"To change the target wallet, use the -datadir, -wallet and -testnet/-regtest arguments.\n\n" + "dash-wallet is an offline tool for creating and interacting with " PACKAGE_NAME " wallet files.\n"
"Usage:\n" + "By default dash-wallet will act on wallets in the default mainnet wallet directory in the datadir.\n"
" dash-wallet [options] <command>\n\n" + "To change the target wallet, use the -datadir, -wallet and -testnet/-regtest arguments.\n\n"
gArgs.GetHelpMessage(); "Usage:\n"
" dash-wallet [options] <command>\n";
tfm::format(std::cout, "%s", usage); strUsage += "\n" + gArgs.GetHelpMessage();
}
tfm::format(std::cout, "%s", strUsage);
return false; return false;
} }

View File

@ -59,11 +59,11 @@ static bool AppInit(int argc, char* argv[])
if (HelpRequested(args) || args.IsArgSet("-version")) { if (HelpRequested(args) || args.IsArgSet("-version")) {
std::string strUsage = PACKAGE_NAME " version " + FormatFullVersion() + "\n"; std::string strUsage = PACKAGE_NAME " version " + FormatFullVersion() + "\n";
if (args.IsArgSet("-version")) { if (!args.IsArgSet("-version")) {
strUsage += FormatParagraph(LicenseInfo()) + "\n"; strUsage += FormatParagraph(LicenseInfo()) + "\n"
} else { "\nUsage: dashd [options] Start " PACKAGE_NAME "\n"
strUsage += "\nUsage: dashd [options] Start " PACKAGE_NAME "\n"; "\n";
strUsage += "\n" + args.GetHelpMessage(); strUsage += args.GetHelpMessage();
} }
tfm::format(std::cout, "%s", strUsage); tfm::format(std::cout, "%s", strUsage);

View File

@ -368,7 +368,6 @@ static std::string serviceFlagToStr(size_t bit)
switch ((ServiceFlags)service_flag) { switch ((ServiceFlags)service_flag) {
case NODE_NONE: abort(); // impossible case NODE_NONE: abort(); // impossible
case NODE_NETWORK: return "NETWORK"; case NODE_NETWORK: return "NETWORK";
case NODE_GETUTXO: return "GETUTXO";
case NODE_BLOOM: return "BLOOM"; case NODE_BLOOM: return "BLOOM";
case NODE_COMPACT_FILTERS: return "COMPACT_FILTERS"; case NODE_COMPACT_FILTERS: return "COMPACT_FILTERS";
case NODE_NETWORK_LIMITED: return "NETWORK_LIMITED"; case NODE_NETWORK_LIMITED: return "NETWORK_LIMITED";

View File

@ -310,10 +310,6 @@ enum ServiceFlags : uint64_t {
// NODE_NETWORK means that the node is capable of serving the complete block chain. It is currently // NODE_NETWORK means that the node is capable of serving the complete block chain. It is currently
// set by all Dash Core non pruned nodes, and is unset by SPV clients or other light clients. // set by all Dash Core non pruned nodes, and is unset by SPV clients or other light clients.
NODE_NETWORK = (1 << 0), NODE_NETWORK = (1 << 0),
// NODE_GETUTXO means the node is capable of responding to the getutxo protocol request.
// Dash Core does not support this but a patch set called Bitcoin XT does.
// See BIP 64 for details on how this is implemented.
NODE_GETUTXO = (1 << 1),
// NODE_BLOOM means the node is capable and willing to handle bloom-filtered connections. // NODE_BLOOM means the node is capable and willing to handle bloom-filtered connections.
// Dash Core nodes used to support this by default, without advertising this bit, // Dash Core nodes used to support this by default, without advertising this bit,
// but no longer do as of protocol version 70201 (= NO_BLOOM_VERSION) // but no longer do as of protocol version 70201 (= NO_BLOOM_VERSION)

View File

@ -1074,15 +1074,13 @@ static UniValue estimatesmartfee(const JSONRPCRequest& request)
"for which the estimate is valid.\n", "for which the estimate is valid.\n",
{ {
{"conf_target", RPCArg::Type::NUM, RPCArg::Optional::NO, "Confirmation target in blocks (1 - 1008)"}, {"conf_target", RPCArg::Type::NUM, RPCArg::Optional::NO, "Confirmation target in blocks (1 - 1008)"},
{"estimate_mode", RPCArg::Type::STR, /* default */ "CONSERVATIVE", "The fee estimate mode.\n" {"estimate_mode", RPCArg::Type::STR, /* default */ "conservative", "The fee estimate mode.\n"
" Whether to return a more conservative estimate which also satisfies\n" " Whether to return a more conservative estimate which also satisfies\n"
" a longer history. A conservative estimate potentially returns a\n" " a longer history. A conservative estimate potentially returns a\n"
" higher feerate and is more likely to be sufficient for the desired\n" " higher feerate and is more likely to be sufficient for the desired\n"
" target, but is not as responsive to short term drops in the\n" " target, but is not as responsive to short term drops in the\n"
" prevailing fee market. Must be one of:\n" " prevailing fee market. Must be one of (case insensitive):\n"
" \"UNSET\"\n" "\"" + FeeModes("\"\n\"") + "\""},
" \"ECONOMICAL\"\n"
" \"CONSERVATIVE\""},
}, },
RPCResult{ RPCResult{
RPCResult::Type::OBJ, "", "", RPCResult::Type::OBJ, "", "",

View File

@ -39,7 +39,6 @@ struct ConnmanTestMsg : public CConnman {
constexpr ServiceFlags ALL_SERVICE_FLAGS[]{ constexpr ServiceFlags ALL_SERVICE_FLAGS[]{
NODE_NONE, NODE_NONE,
NODE_NETWORK, NODE_NETWORK,
NODE_GETUTXO,
NODE_BLOOM, NODE_BLOOM,
NODE_COMPACT_FILTERS, NODE_COMPACT_FILTERS,
NODE_NETWORK_LIMITED, NODE_NETWORK_LIMITED,

View File

@ -41,6 +41,8 @@ class EstimateFeeTest(BitcoinTestFramework):
self.nodes[0].estimatesmartfee(1) self.nodes[0].estimatesmartfee(1)
# self.nodes[0].estimatesmartfee(1, None) # self.nodes[0].estimatesmartfee(1, None)
self.nodes[0].estimatesmartfee(1, 'ECONOMICAL') self.nodes[0].estimatesmartfee(1, 'ECONOMICAL')
self.nodes[0].estimatesmartfee(1, 'unset')
self.nodes[0].estimatesmartfee(1, 'conservative')
self.nodes[0].estimaterawfee(1) self.nodes[0].estimaterawfee(1)
self.nodes[0].estimaterawfee(1, None) self.nodes[0].estimaterawfee(1, None)

View File

@ -45,7 +45,6 @@ MAX_MONEY = 21000000 * COIN
BIP125_SEQUENCE_NUMBER = 0xfffffffd # Sequence number that is BIP 125 opt-in and BIP 68-opt-out BIP125_SEQUENCE_NUMBER = 0xfffffffd # Sequence number that is BIP 125 opt-in and BIP 68-opt-out
NODE_NETWORK = (1 << 0) NODE_NETWORK = (1 << 0)
NODE_GETUTXO = (1 << 1)
NODE_BLOOM = (1 << 2) NODE_BLOOM = (1 << 2)
NODE_COMPACT_FILTERS = (1 << 6) NODE_COMPACT_FILTERS = (1 << 6)
NODE_NETWORK_LIMITED = (1 << 10) NODE_NETWORK_LIMITED = (1 << 10)