mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
Merge #10698: Be consistent in calling transactions "replaceable" for Opt-In RBF
73c942e
Use "replaceable" instead of "rbfoptin" in bitcoin-tx. (Matt Corallo)fb915d5
Use "replaceable" instead of "optIntoRbf" in fundrawtransaction. (Matt Corallo)928c681
Use "replaceable" instead of "optintorbf" in createrawtransaction. (Matt Corallo) Tree-SHA512: 8922451c00abb63aaa08b4a9e314e89c22233b32f207259fbc25367f7d5b67efbaccc7e2a4958c18611ad498da302296242860c7be965a0e996dcde3e89efa07
This commit is contained in:
commit
5af6572534
@ -77,7 +77,7 @@ static int AppInitRawTx(int argc, char* argv[])
|
|||||||
strUsage += HelpMessageOpt("in=TXID:VOUT(:SEQUENCE_NUMBER)", _("Add input to TX"));
|
strUsage += HelpMessageOpt("in=TXID:VOUT(:SEQUENCE_NUMBER)", _("Add input to TX"));
|
||||||
strUsage += HelpMessageOpt("locktime=N", _("Set TX lock time to N"));
|
strUsage += HelpMessageOpt("locktime=N", _("Set TX lock time to N"));
|
||||||
strUsage += HelpMessageOpt("nversion=N", _("Set TX version to N"));
|
strUsage += HelpMessageOpt("nversion=N", _("Set TX version to N"));
|
||||||
strUsage += HelpMessageOpt("rbfoptin(=N)", _("Set RBF opt-in sequence number for input N (if not provided, opt-in all available inputs)"));
|
strUsage += HelpMessageOpt("replaceable(=N)", _("Set RBF opt-in sequence number for input N (if not provided, opt-in all available inputs)"));
|
||||||
strUsage += HelpMessageOpt("outaddr=VALUE:ADDRESS", _("Add address-based output to TX"));
|
strUsage += HelpMessageOpt("outaddr=VALUE:ADDRESS", _("Add address-based output to TX"));
|
||||||
strUsage += HelpMessageOpt("outpubkey=VALUE:PUBKEY[:FLAGS]", _("Add pay-to-pubkey output to TX") + ". " +
|
strUsage += HelpMessageOpt("outpubkey=VALUE:PUBKEY[:FLAGS]", _("Add pay-to-pubkey output to TX") + ". " +
|
||||||
_("Optionally add the \"W\" flag to produce a pay-to-witness-pubkey-hash output") + ". " +
|
_("Optionally add the \"W\" flag to produce a pay-to-witness-pubkey-hash output") + ". " +
|
||||||
@ -673,7 +673,7 @@ static void MutateTx(CMutableTransaction& tx, const std::string& command,
|
|||||||
MutateTxVersion(tx, commandVal);
|
MutateTxVersion(tx, commandVal);
|
||||||
else if (command == "locktime")
|
else if (command == "locktime")
|
||||||
MutateTxLocktime(tx, commandVal);
|
MutateTxLocktime(tx, commandVal);
|
||||||
else if (command == "rbfoptin") {
|
else if (command == "replaceable") {
|
||||||
MutateTxRBFOptIn(tx, commandVal);
|
MutateTxRBFOptIn(tx, commandVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ static const CRPCConvertParam vRPCConvertParams[] =
|
|||||||
{ "createrawtransaction", 0, "inputs" },
|
{ "createrawtransaction", 0, "inputs" },
|
||||||
{ "createrawtransaction", 1, "outputs" },
|
{ "createrawtransaction", 1, "outputs" },
|
||||||
{ "createrawtransaction", 2, "locktime" },
|
{ "createrawtransaction", 2, "locktime" },
|
||||||
{ "createrawtransaction", 3, "optintorbf" },
|
{ "createrawtransaction", 3, "replaceable" },
|
||||||
{ "signrawtransaction", 1, "prevtxs" },
|
{ "signrawtransaction", 1, "prevtxs" },
|
||||||
{ "signrawtransaction", 2, "privkeys" },
|
{ "signrawtransaction", 2, "privkeys" },
|
||||||
{ "sendrawtransaction", 1, "allowhighfees" },
|
{ "sendrawtransaction", 1, "allowhighfees" },
|
||||||
|
@ -294,7 +294,7 @@ UniValue createrawtransaction(const JSONRPCRequest& request)
|
|||||||
{
|
{
|
||||||
if (request.fHelp || request.params.size() < 2 || request.params.size() > 4)
|
if (request.fHelp || request.params.size() < 2 || request.params.size() > 4)
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"createrawtransaction [{\"txid\":\"id\",\"vout\":n},...] {\"address\":amount,\"data\":\"hex\",...} ( locktime ) ( optintorbf )\n"
|
"createrawtransaction [{\"txid\":\"id\",\"vout\":n},...] {\"address\":amount,\"data\":\"hex\",...} ( locktime ) ( replaceable )\n"
|
||||||
"\nCreate a transaction spending the given inputs and creating new outputs.\n"
|
"\nCreate a transaction spending the given inputs and creating new outputs.\n"
|
||||||
"Outputs can be addresses or data.\n"
|
"Outputs can be addresses or data.\n"
|
||||||
"Returns hex-encoded raw transaction.\n"
|
"Returns hex-encoded raw transaction.\n"
|
||||||
@ -318,7 +318,8 @@ UniValue createrawtransaction(const JSONRPCRequest& request)
|
|||||||
" ,...\n"
|
" ,...\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"3. locktime (numeric, optional, default=0) Raw locktime. Non-0 value also locktime-activates inputs\n"
|
"3. locktime (numeric, optional, default=0) Raw locktime. Non-0 value also locktime-activates inputs\n"
|
||||||
"4. optintorbf (boolean, optional, default=false) Allow this transaction to be replaced by a transaction with higher fees. If provided, it is an error if explicit sequence numbers are incompatible.\n"
|
"4. replaceable (boolean, optional, default=false) Marks this transaction as BIP125 replaceable.\n"
|
||||||
|
" Allows this transaction to be replaced by a transaction with higher fees. If provided, it is an error if explicit sequence numbers are incompatible.\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\"transaction\" (string) hex string of the transaction\n"
|
"\"transaction\" (string) hex string of the transaction\n"
|
||||||
|
|
||||||
@ -412,7 +413,7 @@ UniValue createrawtransaction(const JSONRPCRequest& request)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (request.params.size() > 3 && rbfOptIn != SignalsOptInRBF(rawTx)) {
|
if (request.params.size() > 3 && rbfOptIn != SignalsOptInRBF(rawTx)) {
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter combination: Sequence number(s) contradict optintorbf option");
|
throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter combination: Sequence number(s) contradict replaceable option");
|
||||||
}
|
}
|
||||||
|
|
||||||
return EncodeHexTx(rawTx);
|
return EncodeHexTx(rawTx);
|
||||||
@ -900,7 +901,7 @@ static const CRPCCommand commands[] =
|
|||||||
{ // category name actor (function) okSafeMode
|
{ // category name actor (function) okSafeMode
|
||||||
// --------------------- ------------------------ ----------------------- ----------
|
// --------------------- ------------------------ ----------------------- ----------
|
||||||
{ "rawtransactions", "getrawtransaction", &getrawtransaction, true, {"txid","verbose"} },
|
{ "rawtransactions", "getrawtransaction", &getrawtransaction, true, {"txid","verbose"} },
|
||||||
{ "rawtransactions", "createrawtransaction", &createrawtransaction, true, {"inputs","outputs","locktime"} },
|
{ "rawtransactions", "createrawtransaction", &createrawtransaction, true, {"inputs","outputs","locktime","replaceable"} },
|
||||||
{ "rawtransactions", "decoderawtransaction", &decoderawtransaction, true, {"hexstring"} },
|
{ "rawtransactions", "decoderawtransaction", &decoderawtransaction, true, {"hexstring"} },
|
||||||
{ "rawtransactions", "decodescript", &decodescript, true, {"hexstring"} },
|
{ "rawtransactions", "decodescript", &decodescript, true, {"hexstring"} },
|
||||||
{ "rawtransactions", "sendrawtransaction", &sendrawtransaction, false, {"hexstring","allowhighfees"} },
|
{ "rawtransactions", "sendrawtransaction", &sendrawtransaction, false, {"hexstring","allowhighfees"} },
|
||||||
|
@ -2656,7 +2656,8 @@ UniValue fundrawtransaction(const JSONRPCRequest& request)
|
|||||||
" Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n"
|
" Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n"
|
||||||
" If no outputs are specified here, the sender pays the fee.\n"
|
" If no outputs are specified here, the sender pays the fee.\n"
|
||||||
" [vout_index,...]\n"
|
" [vout_index,...]\n"
|
||||||
" \"optIntoRbf\" (boolean, optional) Allow this transaction to be replaced by a transaction with higher fees\n"
|
" \"replaceable\" (boolean, optional) Marks this transaction as BIP125 replaceable.\n"
|
||||||
|
" Allows this transaction to be replaced by a transaction with higher fees\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" for backward compatibility: passing in a true instead of an object will result in {\"includeWatching\":true}\n"
|
" for backward compatibility: passing in a true instead of an object will result in {\"includeWatching\":true}\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
@ -2708,7 +2709,7 @@ UniValue fundrawtransaction(const JSONRPCRequest& request)
|
|||||||
{"reserveChangeKey", UniValueType(UniValue::VBOOL)},
|
{"reserveChangeKey", UniValueType(UniValue::VBOOL)},
|
||||||
{"feeRate", UniValueType()}, // will be checked below
|
{"feeRate", UniValueType()}, // will be checked below
|
||||||
{"subtractFeeFromOutputs", UniValueType(UniValue::VARR)},
|
{"subtractFeeFromOutputs", UniValueType(UniValue::VARR)},
|
||||||
{"optIntoRbf", UniValueType(UniValue::VBOOL)},
|
{"replaceable", UniValueType(UniValue::VBOOL)},
|
||||||
},
|
},
|
||||||
true, true);
|
true, true);
|
||||||
|
|
||||||
@ -2742,8 +2743,8 @@ UniValue fundrawtransaction(const JSONRPCRequest& request)
|
|||||||
if (options.exists("subtractFeeFromOutputs"))
|
if (options.exists("subtractFeeFromOutputs"))
|
||||||
subtractFeeFromOutputs = options["subtractFeeFromOutputs"].get_array();
|
subtractFeeFromOutputs = options["subtractFeeFromOutputs"].get_array();
|
||||||
|
|
||||||
if (options.exists("optIntoRbf")) {
|
if (options.exists("replaceable")) {
|
||||||
coinControl.signalRbf = options["optIntoRbf"].get_bool();
|
coinControl.signalRbf = options["replaceable"].get_bool();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user