mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-04-04 04:45:10 +02:00
rpc: Auto-format RPCResult
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
#include <util/string.h>
|
||||
#include <util/system.h>
|
||||
#include <util/url.h>
|
||||
#include <util/vector.h>
|
||||
#include <wallet/coincontrol.h>
|
||||
#include <wallet/feebumper.h>
|
||||
#include <wallet/psbtwallet.h>
|
||||
@@ -205,7 +206,7 @@ static UniValue getnewaddress(const JSONRPCRequest& request)
|
||||
{"address_type", RPCArg::Type::STR, /* default */ "set by -addresstype", "The address type to use. Options are \"legacy\", \"p2sh-segwit\", and \"bech32\"."},
|
||||
},
|
||||
RPCResult{
|
||||
"\"address\" (string) The new bitcoin address\n"
|
||||
RPCResult::Type::STR, "address", "The new bitcoin address"
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("getnewaddress", "")
|
||||
@@ -256,7 +257,7 @@ static UniValue getrawchangeaddress(const JSONRPCRequest& request)
|
||||
{"address_type", RPCArg::Type::STR, /* default */ "set by -changetype", "The address type to use. Options are \"legacy\", \"p2sh-segwit\", and \"bech32\"."},
|
||||
},
|
||||
RPCResult{
|
||||
"\"address\" (string) The address\n"
|
||||
RPCResult::Type::STR, "address", "The address"
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("getrawchangeaddress", "")
|
||||
@@ -390,7 +391,7 @@ static UniValue sendtoaddress(const JSONRPCRequest& request)
|
||||
" dirty if they have previously been used in a transaction."},
|
||||
},
|
||||
RPCResult{
|
||||
"\"txid\" (string) The transaction id.\n"
|
||||
RPCResult::Type::STR_HEX, "txid", "The transaction id."
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("sendtoaddress", "\"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 0.1")
|
||||
@@ -469,17 +470,18 @@ static UniValue listaddressgroupings(const JSONRPCRequest& request)
|
||||
"in past transactions\n",
|
||||
{},
|
||||
RPCResult{
|
||||
"[\n"
|
||||
" [\n"
|
||||
" [\n"
|
||||
" \"address\", (string) The bitcoin address\n"
|
||||
" amount, (numeric) The amount in " + CURRENCY_UNIT + "\n"
|
||||
" \"label\" (string, optional) The label\n"
|
||||
" ]\n"
|
||||
" ,...\n"
|
||||
" ]\n"
|
||||
" ,...\n"
|
||||
"]\n"
|
||||
RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "address", "The bitcoin address"},
|
||||
{RPCResult::Type::STR_AMOUNT, "amount", "The amount in " + CURRENCY_UNIT},
|
||||
{RPCResult::Type::STR, "label", /* optional */ true, "The label"},
|
||||
}},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("listaddressgroupings", "")
|
||||
@@ -532,7 +534,7 @@ static UniValue signmessage(const JSONRPCRequest& request)
|
||||
{"message", RPCArg::Type::STR, RPCArg::Optional::NO, "The message to create a signature of."},
|
||||
},
|
||||
RPCResult{
|
||||
"\"signature\" (string) The signature of the message encoded in base 64\n"
|
||||
RPCResult::Type::STR, "signature", "The signature of the message encoded in base 64"
|
||||
},
|
||||
RPCExamples{
|
||||
"\nUnlock the wallet for 30 seconds\n"
|
||||
@@ -601,7 +603,7 @@ static UniValue getreceivedbyaddress(const JSONRPCRequest& request)
|
||||
{"minconf", RPCArg::Type::NUM, /* default */ "1", "Only include transactions confirmed at least this many times."},
|
||||
},
|
||||
RPCResult{
|
||||
"amount (numeric) The total amount in " + CURRENCY_UNIT + " received at this address.\n"
|
||||
RPCResult::Type::STR_AMOUNT, "amount", "The total amount in " + CURRENCY_UNIT + " received at this address."
|
||||
},
|
||||
RPCExamples{
|
||||
"\nThe amount from transactions with at least 1 confirmation\n"
|
||||
@@ -671,7 +673,7 @@ static UniValue getreceivedbylabel(const JSONRPCRequest& request)
|
||||
{"minconf", RPCArg::Type::NUM, /* default */ "1", "Only include transactions confirmed at least this many times."},
|
||||
},
|
||||
RPCResult{
|
||||
"amount (numeric) The total amount in " + CURRENCY_UNIT + " received for this label.\n"
|
||||
RPCResult::Type::STR_AMOUNT, "amount", "The total amount in " + CURRENCY_UNIT + " received for this label."
|
||||
},
|
||||
RPCExamples{
|
||||
"\nAmount received by the default label with at least 1 confirmation\n"
|
||||
@@ -743,7 +745,7 @@ static UniValue getbalance(const JSONRPCRequest& request)
|
||||
{"avoid_reuse", RPCArg::Type::BOOL, /* default */ "true", "(only available if avoid_reuse wallet flag is set) Do not include balance in dirty outputs; addresses are considered dirty if they have previously been used in a transaction."},
|
||||
},
|
||||
RPCResult{
|
||||
"amount (numeric) The total amount in " + CURRENCY_UNIT + " received for this wallet.\n"
|
||||
RPCResult::Type::STR_AMOUNT, "amount", "The total amount in " + CURRENCY_UNIT + " received for this wallet."
|
||||
},
|
||||
RPCExamples{
|
||||
"\nThe total amount in the wallet with 1 or more confirmations\n"
|
||||
@@ -845,8 +847,8 @@ static UniValue sendmany(const JSONRPCRequest& request)
|
||||
" \"CONSERVATIVE\""},
|
||||
},
|
||||
RPCResult{
|
||||
"\"txid\" (string) The transaction id for the send. Only 1 transaction is created regardless of \n"
|
||||
" the number of addresses.\n"
|
||||
RPCResult::Type::STR_HEX, "txid", "The transaction id for the send. Only 1 transaction is created regardless of\n"
|
||||
"the number of addresses."
|
||||
},
|
||||
RPCExamples{
|
||||
"\nSend two amounts to two different addresses:\n"
|
||||
@@ -969,11 +971,12 @@ static UniValue addmultisigaddress(const JSONRPCRequest& request)
|
||||
{"address_type", RPCArg::Type::STR, /* default */ "set by -addresstype", "The address type to use. Options are \"legacy\", \"p2sh-segwit\", and \"bech32\"."},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"address\" : \"multisigaddress\", (string) The value of the new multisig address.\n"
|
||||
" \"redeemScript\" : \"script\" (string) The string value of the hex-encoded redemption script.\n"
|
||||
" \"descriptor\" : \"descriptor\" (string) The descriptor for this multisig\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "address", "The value of the new multisig address"},
|
||||
{RPCResult::Type::STR_HEX, "redeemScript", "The string value of the hex-encoded redemption script"},
|
||||
{RPCResult::Type::STR, "descriptor", "The descriptor for this multisig"},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
"\nAdd a multisig address from 2 addresses\n"
|
||||
@@ -1202,20 +1205,21 @@ static UniValue listreceivedbyaddress(const JSONRPCRequest& request)
|
||||
{"address_filter", RPCArg::Type::STR, RPCArg::Optional::OMITTED_NAMED_ARG, "If present, only return information on this address."},
|
||||
},
|
||||
RPCResult{
|
||||
"[\n"
|
||||
" {\n"
|
||||
" \"involvesWatchonly\" : true, (boolean) Only returns true if imported addresses were involved in transaction.\n"
|
||||
" \"address\" : \"receivingaddress\", (string) The receiving address\n"
|
||||
" \"amount\" : x.xxx, (numeric) The total amount in " + CURRENCY_UNIT + " received by the address\n"
|
||||
" \"confirmations\" : n, (numeric) The number of confirmations of the most recent transaction included\n"
|
||||
" \"label\" : \"label\", (string) The label of the receiving address. The default label is \"\".\n"
|
||||
" \"txids\" : [\n"
|
||||
" \"txid\", (string) The ids of transactions received with the address \n"
|
||||
" ...\n"
|
||||
" ]\n"
|
||||
" }\n"
|
||||
" ,...\n"
|
||||
"]\n"
|
||||
RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::BOOL, "involvesWatchonly", "Only returns true if imported addresses were involved in transaction"},
|
||||
{RPCResult::Type::STR, "address", "The receiving address"},
|
||||
{RPCResult::Type::STR_AMOUNT, "amount", "The total amount in " + CURRENCY_UNIT + " received by the address"},
|
||||
{RPCResult::Type::NUM, "confirmations", "The number of confirmations of the most recent transaction included"},
|
||||
{RPCResult::Type::STR, "label", "The label of the receiving address. The default label is \"\""},
|
||||
{RPCResult::Type::ARR, "txids", "",
|
||||
{
|
||||
{RPCResult::Type::STR_HEX, "txid", "The ids of transactions received with the address"},
|
||||
}},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("listreceivedbyaddress", "")
|
||||
@@ -1252,15 +1256,16 @@ static UniValue listreceivedbylabel(const JSONRPCRequest& request)
|
||||
{"include_watchonly", RPCArg::Type::BOOL, /* default */ "true for watch-only wallets, otherwise false", "Whether to include watch-only addresses (see 'importaddress')"},
|
||||
},
|
||||
RPCResult{
|
||||
"[\n"
|
||||
" {\n"
|
||||
" \"involvesWatchonly\" : true, (boolean) Only returns true if imported addresses were involved in transaction.\n"
|
||||
" \"amount\" : x.xxx, (numeric) The total amount received by addresses with this label\n"
|
||||
" \"confirmations\" : n, (numeric) The number of confirmations of the most recent transaction included\n"
|
||||
" \"label\" : \"label\" (string) The label of the receiving address. The default label is \"\".\n"
|
||||
" }\n"
|
||||
" ,...\n"
|
||||
"]\n"
|
||||
RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::BOOL, "involvesWatchonly", "Only returns true if imported addresses were involved in transaction"},
|
||||
{RPCResult::Type::STR_AMOUNT, "amount", "The total amount received by addresses with this label"},
|
||||
{RPCResult::Type::NUM, "confirmations", "The number of confirmations of the most recent transaction included"},
|
||||
{RPCResult::Type::STR, "label", "The label of the receiving address. The default label is \"\""},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("listreceivedbylabel", "")
|
||||
@@ -1372,26 +1377,26 @@ static void ListTransactions(interfaces::Chain::Lock& locked_chain, CWallet* con
|
||||
}
|
||||
}
|
||||
|
||||
static const std::string TransactionDescriptionString()
|
||||
static const std::vector<RPCResult> TransactionDescriptionString()
|
||||
{
|
||||
return " \"confirmations\": n, (numeric) The number of confirmations for the transaction. Negative confirmations means the\n"
|
||||
" transaction conflicted that many blocks ago.\n"
|
||||
" \"generated\" : xxx, (boolean) Only present if transaction only input is a coinbase one.\n"
|
||||
" \"trusted\" : xxx, (boolean) Only present if we consider transaction to be trusted and so safe to spend from.\n"
|
||||
" \"blockhash\" : \"hashvalue\", (string) The block hash containing the transaction.\n"
|
||||
" \"blockheight\" : n, (numeric) The block height containing the transaction.\n"
|
||||
" \"blockindex\" : n, (numeric) The index of the transaction in the block that includes it.\n"
|
||||
" \"blocktime\" : xxx, (numeric) The block time expressed in " + UNIX_EPOCH_TIME + ".\n"
|
||||
" \"txid\" : \"transactionid\", (string) The transaction id.\n"
|
||||
" \"walletconflicts\" : [ (json array) Conflicting transaction ids.\n"
|
||||
" \"txid\", (string) The transaction id.\n"
|
||||
" ...\n"
|
||||
" ],\n"
|
||||
" \"time\" : xxx, (numeric) The transaction time expressed in " + UNIX_EPOCH_TIME + ".\n"
|
||||
" \"timereceived\" : xxx, (numeric) The time received expressed in " + UNIX_EPOCH_TIME + ".\n"
|
||||
" \"comment\" : \"...\", (string) If a comment is associated with the transaction, only present if not empty.\n"
|
||||
" \"bip125-replaceable\" : \"str\", (string) (\"yes|no|unknown\") Whether this transaction could be replaced due to BIP125 (replace-by-fee);\n"
|
||||
" may be unknown for unconfirmed transactions not in the mempool\n";
|
||||
return{{RPCResult::Type::NUM, "confirmations", "The number of confirmations for the transaction. Negative confirmations means the\n"
|
||||
"transaction conflicted that many blocks ago."},
|
||||
{RPCResult::Type::BOOL, "generated", "Only present if transaction only input is a coinbase one."},
|
||||
{RPCResult::Type::BOOL, "trusted", "Only present if we consider transaction to be trusted and so safe to spend from."},
|
||||
{RPCResult::Type::STR_HEX, "blockhash", "The block hash containing the transaction."},
|
||||
{RPCResult::Type::NUM, "blockheight", "The block height containing the transaction."},
|
||||
{RPCResult::Type::NUM, "blockindex", "The index of the transaction in the block that includes it."},
|
||||
{RPCResult::Type::NUM_TIME, "blocktime", "The block time expressed in " + UNIX_EPOCH_TIME + "."},
|
||||
{RPCResult::Type::STR_HEX, "txid", "The transaction id."},
|
||||
{RPCResult::Type::ARR, "walletconflicts", "Conflicting transaction ids.",
|
||||
{
|
||||
{RPCResult::Type::STR_HEX, "txid", "The transaction id."},
|
||||
}},
|
||||
{RPCResult::Type::NUM_TIME, "time", "The transaction time expressed in " + UNIX_EPOCH_TIME + "."},
|
||||
{RPCResult::Type::NUM_TIME, "timereceived", "The time received expressed in " + UNIX_EPOCH_TIME + "."},
|
||||
{RPCResult::Type::STR, "comment", "If a comment is associated with the transaction, only present if not empty."},
|
||||
{RPCResult::Type::STR, "bip125-replaceable", "(\"yes|no|unknown\") Whether this transaction could be replaced due to BIP125 (replace-by-fee);\n"
|
||||
"may be unknown for unconfirmed transactions not in the mempool"}};
|
||||
}
|
||||
|
||||
UniValue listtransactions(const JSONRPCRequest& request)
|
||||
@@ -1414,27 +1419,31 @@ UniValue listtransactions(const JSONRPCRequest& request)
|
||||
{"include_watchonly", RPCArg::Type::BOOL, /* default */ "true for watch-only wallets, otherwise false", "Include transactions to watch-only addresses (see 'importaddress')"},
|
||||
},
|
||||
RPCResult{
|
||||
"[\n"
|
||||
" {\n"
|
||||
" \"involvesWatchonly\" : xxx, (boolean) Only returns true if imported addresses were involved in transaction.\n"
|
||||
" \"address\" : \"address\", (string) The bitcoin address of the transaction.\n"
|
||||
" \"category\" : (string) The transaction category.\n"
|
||||
" \"send\" Transactions sent.\n"
|
||||
" \"receive\" Non-coinbase transactions received.\n"
|
||||
" \"generate\" Coinbase transactions received with more than 100 confirmations.\n"
|
||||
" \"immature\" Coinbase transactions received with 100 or fewer confirmations.\n"
|
||||
" \"orphan\" Orphaned coinbase transactions received.\n"
|
||||
" \"amount\" : x.xxx, (numeric) The amount in " + CURRENCY_UNIT + ". This is negative for the 'send' category, and is positive\n"
|
||||
" for all other categories\n"
|
||||
" \"label\" : \"label\", (string) A comment for the address/transaction, if any\n"
|
||||
" \"vout\" : n, (numeric) the vout value\n"
|
||||
" \"fee\" : x.xxx, (numeric) The amount of the fee in " + CURRENCY_UNIT + ". This is negative and only available for the \n"
|
||||
" 'send' category of transactions.\n"
|
||||
+ TransactionDescriptionString()
|
||||
+ " \"abandoned\": xxx (boolean) 'true' if the transaction has been abandoned (inputs are respendable). Only available for the \n"
|
||||
" 'send' category of transactions.\n"
|
||||
" }\n"
|
||||
"]\n"
|
||||
RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "", Cat(Cat<std::vector<RPCResult>>(
|
||||
{
|
||||
{RPCResult::Type::BOOL, "involvesWatchonly", "Only returns true if imported addresses were involved in transaction."},
|
||||
{RPCResult::Type::STR, "address", "The bitcoin address of the transaction."},
|
||||
{RPCResult::Type::STR, "category", "The transaction category.\n"
|
||||
"\"send\" Transactions sent.\n"
|
||||
"\"receive\" Non-coinbase transactions received.\n"
|
||||
"\"generate\" Coinbase transactions received with more than 100 confirmations.\n"
|
||||
"\"immature\" Coinbase transactions received with 100 or fewer confirmations.\n"
|
||||
"\"orphan\" Orphaned coinbase transactions received."},
|
||||
{RPCResult::Type::STR_AMOUNT, "amount", "The amount in " + CURRENCY_UNIT + ". This is negative for the 'send' category, and is positive\n"
|
||||
"for all other categories"},
|
||||
{RPCResult::Type::STR, "label", "A comment for the address/transaction, if any"},
|
||||
{RPCResult::Type::NUM, "vout", "the vout value"},
|
||||
{RPCResult::Type::STR_AMOUNT, "fee", "The amount of the fee in " + CURRENCY_UNIT + ". This is negative and only available for the\n"
|
||||
"'send' category of transactions."},
|
||||
},
|
||||
TransactionDescriptionString()),
|
||||
{
|
||||
{RPCResult::Type::BOOL, "abandoned", "'true' if the transaction has been abandoned (inputs are respendable). Only available for the \n"
|
||||
"'send' category of transactions."},
|
||||
})},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
"\nList the most recent 10 transactions in the systems\n"
|
||||
@@ -1525,34 +1534,39 @@ static UniValue listsinceblock(const JSONRPCRequest& request)
|
||||
" (not guaranteed to work on pruned nodes)"},
|
||||
},
|
||||
RPCResult{
|
||||
"{ (json object)\n"
|
||||
" \"transactions\" : [ (json array)\n"
|
||||
" { (json object)\n"
|
||||
" \"involvesWatchonly\" : xxx, (boolean) Only returns true if imported addresses were involved in transaction.\n"
|
||||
" \"address\" : \"str\", (string) The bitcoin address of the transaction.\n"
|
||||
" \"category\" : \"str\", (string) The transaction category.\n"
|
||||
" \"send\" Transactions sent.\n"
|
||||
" \"receive\" Non-coinbase transactions received.\n"
|
||||
" \"generate\" Coinbase transactions received with more than 100 confirmations.\n"
|
||||
" \"immature\" Coinbase transactions received with 100 or fewer confirmations.\n"
|
||||
" \"orphan\" Orphaned coinbase transactions received.\n"
|
||||
" \"amount\" : x.xxx, (numeric) The amount in " + CURRENCY_UNIT + ". This is negative for the 'send' category, and is positive\n"
|
||||
" for all other categories\n"
|
||||
" \"vout\" : n, (numeric) the vout value\n"
|
||||
" \"fee\" : x.xxx, (numeric) The amount of the fee in " + CURRENCY_UNIT + ". This is negative and only available for the 'send' category of transactions.\n"
|
||||
+ TransactionDescriptionString()
|
||||
+ " \"abandoned\": xxx, (boolean) 'true' if the transaction has been abandoned (inputs are respendable). Only available for the 'send' category of transactions.\n"
|
||||
" \"label\" : \"label\" (string) A comment for the address/transaction, if any\n"
|
||||
" \"to\" : \"...\", (string) If a comment to is associated with the transaction.\n"
|
||||
" },\n"
|
||||
" ...\n"
|
||||
" ],\n"
|
||||
" \"removed\" : [ (json array)\n"
|
||||
" <structure is the same as \"transactions\" above, only present if include_removed=true>\n"
|
||||
" Note: transactions that were re-added in the active chain will appear as-is in this array, and may thus have a positive confirmation count.\n"
|
||||
" ],\n"
|
||||
" \"lastblock\" : \"hex\" (string) The hash of the block (target_confirmations-1) from the best block on the main chain. This is typically used to feed back into listsinceblock the next time you call it. So you would generally use a target_confirmations of say 6, so you will be continually re-notified of transactions until they've reached 6 confirmations plus any new ones\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::ARR, "transactions", "",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "", Cat(Cat<std::vector<RPCResult>>(
|
||||
{
|
||||
{RPCResult::Type::BOOL, "involvesWatchonly", "Only returns true if imported addresses were involved in transaction."},
|
||||
{RPCResult::Type::STR, "address", "The bitcoin address of the transaction."},
|
||||
{RPCResult::Type::STR, "category", "The transaction category.\n"
|
||||
"\"send\" Transactions sent.\n"
|
||||
"\"receive\" Non-coinbase transactions received.\n"
|
||||
"\"generate\" Coinbase transactions received with more than 100 confirmations.\n"
|
||||
"\"immature\" Coinbase transactions received with 100 or fewer confirmations.\n"
|
||||
"\"orphan\" Orphaned coinbase transactions received."},
|
||||
{RPCResult::Type::STR_AMOUNT, "amount", "The amount in " + CURRENCY_UNIT + ". This is negative for the 'send' category, and is positive\n"
|
||||
"for all other categories"},
|
||||
{RPCResult::Type::NUM, "vout", "the vout value"},
|
||||
{RPCResult::Type::STR_AMOUNT, "fee", "The amount of the fee in " + CURRENCY_UNIT + ". This is negative and only available for the\n"
|
||||
"'send' category of transactions."},
|
||||
},
|
||||
TransactionDescriptionString()),
|
||||
{
|
||||
{RPCResult::Type::BOOL, "abandoned", "'true' if the transaction has been abandoned (inputs are respendable). Only available for the \n"
|
||||
"'send' category of transactions."},
|
||||
{RPCResult::Type::STR, "label", "A comment for the address/transaction, if any"},
|
||||
{RPCResult::Type::STR, "to", "If a comment to is associated with the transaction."},
|
||||
})},
|
||||
}},
|
||||
{RPCResult::Type::ARR, "removed", "<structure is the same as \"transactions\" above, only present if include_removed=true>\n"
|
||||
"Note: transactions that were re-added in the active chain will appear as-is in this array, and may thus have a positive confirmation count."
|
||||
, {{RPCResult::Type::ELISION, "", ""},}},
|
||||
{RPCResult::Type::STR_HEX, "lastblock", "The hash of the block (target_confirmations-1) from the best block on the main chain. This is typically used to feed back into listsinceblock the next time you call it. So you would generally use a target_confirmations of say 6, so you will be continually re-notified of transactions until they've reached 6 confirmations plus any new ones"},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("listsinceblock", "")
|
||||
@@ -1660,35 +1674,41 @@ static UniValue gettransaction(const JSONRPCRequest& request)
|
||||
"Whether to include a `decoded` field containing the decoded transaction (equivalent to RPC decoderawtransaction)"},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"amount\" : x.xxx, (numeric) The transaction amount in " + CURRENCY_UNIT + "\n"
|
||||
" \"fee\" : x.xxx, (numeric) The amount of the fee in " + CURRENCY_UNIT + ". This is negative and only available for the \n"
|
||||
" 'send' category of transactions.\n"
|
||||
+ TransactionDescriptionString()
|
||||
+ " \"details\" : [\n"
|
||||
" {\n"
|
||||
" \"involvesWatchonly\" : xxx, (boolean) Only returns true if imported addresses were involved in transaction.\n"
|
||||
" \"address\" : \"address\", (string) The bitcoin address involved in the transaction\n"
|
||||
" \"category\" : (string) The transaction category.\n"
|
||||
" \"send\" Transactions sent.\n"
|
||||
" \"receive\" Non-coinbase transactions received.\n"
|
||||
" \"generate\" Coinbase transactions received with more than 100 confirmations.\n"
|
||||
" \"immature\" Coinbase transactions received with 100 or fewer confirmations.\n"
|
||||
" \"orphan\" Orphaned coinbase transactions received.\n"
|
||||
" \"amount\" : x.xxx, (numeric) The amount in " + CURRENCY_UNIT + "\n"
|
||||
" \"label\" : \"label\", (string) A comment for the address/transaction, if any\n"
|
||||
" \"vout\" : n, (numeric) the vout value\n"
|
||||
" \"fee\" : x.xxx, (numeric) The amount of the fee in " + CURRENCY_UNIT + ". This is negative and only available for the \n"
|
||||
" 'send' category of transactions.\n"
|
||||
" \"abandoned\" : xxx (boolean) 'true' if the transaction has been abandoned (inputs are respendable). Only available for the \n"
|
||||
" 'send' category of transactions.\n"
|
||||
" }\n"
|
||||
" ,...\n"
|
||||
" ],\n"
|
||||
" \"hex\" : \"data\" (string) Raw data for transaction\n"
|
||||
" \"decoded\" : transaction (json object) Optional, the decoded transaction (only present when `verbose` is passed), equivalent to the\n"
|
||||
" RPC decoderawtransaction method, or the RPC getrawtransaction method when `verbose` is passed.\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "", Cat(Cat<std::vector<RPCResult>>(
|
||||
{
|
||||
{RPCResult::Type::STR_AMOUNT, "amount", "The amount in " + CURRENCY_UNIT},
|
||||
{RPCResult::Type::STR_AMOUNT, "fee", "The amount of the fee in " + CURRENCY_UNIT + ". This is negative and only available for the\n"
|
||||
"'send' category of transactions."},
|
||||
},
|
||||
TransactionDescriptionString()),
|
||||
{
|
||||
{RPCResult::Type::ARR, "details", "",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::BOOL, "involvesWatchonly", "Only returns true if imported addresses were involved in transaction."},
|
||||
{RPCResult::Type::STR, "address", "The bitcoin address involved in the transaction."},
|
||||
{RPCResult::Type::STR, "category", "The transaction category.\n"
|
||||
"\"send\" Transactions sent.\n"
|
||||
"\"receive\" Non-coinbase transactions received.\n"
|
||||
"\"generate\" Coinbase transactions received with more than 100 confirmations.\n"
|
||||
"\"immature\" Coinbase transactions received with 100 or fewer confirmations.\n"
|
||||
"\"orphan\" Orphaned coinbase transactions received."},
|
||||
{RPCResult::Type::STR_AMOUNT, "amount", "The amount in " + CURRENCY_UNIT},
|
||||
{RPCResult::Type::STR, "label", "A comment for the address/transaction, if any"},
|
||||
{RPCResult::Type::NUM, "vout", "the vout value"},
|
||||
{RPCResult::Type::STR_AMOUNT, "fee", "The amount of the fee in " + CURRENCY_UNIT + ". This is negative and only available for the \n"
|
||||
"'send' category of transactions."},
|
||||
{RPCResult::Type::BOOL, "abandoned", "'true' if the transaction has been abandoned (inputs are respendable). Only available for the \n"
|
||||
"'send' category of transactions."},
|
||||
}},
|
||||
}},
|
||||
{RPCResult::Type::STR_HEX, "hex", "Raw data for transaction"},
|
||||
{RPCResult::Type::OBJ, "decoded", "Optional, the decoded transaction (only present when `verbose` is passed)",
|
||||
{
|
||||
{RPCResult::Type::ELISION, "", "Equivalent to the RPC decoderawtransaction method, or the RPC getrawtransaction method when `verbose` is passed."},
|
||||
}},
|
||||
})
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("gettransaction", "\"1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d\"")
|
||||
@@ -2147,7 +2167,7 @@ static UniValue lockunspent(const JSONRPCRequest& request)
|
||||
},
|
||||
},
|
||||
RPCResult{
|
||||
"true|false (boolean) Whether the command was successful or not\n"
|
||||
RPCResult::Type::BOOL, "", "Whether the command was successful or not"
|
||||
},
|
||||
RPCExamples{
|
||||
"\nList the unspent transactions\n"
|
||||
@@ -2257,13 +2277,14 @@ static UniValue listlockunspent(const JSONRPCRequest& request)
|
||||
"See the lockunspent call to lock and unlock transactions for spending.\n",
|
||||
{},
|
||||
RPCResult{
|
||||
"[\n"
|
||||
" {\n"
|
||||
" \"txid\" : \"transactionid\", (string) The transaction id locked\n"
|
||||
" \"vout\" : n (numeric) The vout value\n"
|
||||
" }\n"
|
||||
" ,...\n"
|
||||
"]\n"
|
||||
RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR_HEX, "txid", "The transaction id locked"},
|
||||
{RPCResult::Type::NUM, "vout", "The vout value"},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
"\nList the unspent transactions\n"
|
||||
@@ -2313,7 +2334,7 @@ static UniValue settxfee(const JSONRPCRequest& request)
|
||||
{"amount", RPCArg::Type::AMOUNT, RPCArg::Optional::NO, "The transaction fee in " + CURRENCY_UNIT + "/kB"},
|
||||
},
|
||||
RPCResult{
|
||||
"true|false (boolean) Returns true if successful\n"
|
||||
RPCResult::Type::BOOL, "", "Returns true if successful"
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("settxfee", "0.00001")
|
||||
@@ -2351,19 +2372,23 @@ static UniValue getbalances(const JSONRPCRequest& request)
|
||||
"Returns an object with all balances in " + CURRENCY_UNIT + ".\n",
|
||||
{},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"mine\" : { (json object) balances from outputs that the wallet can sign\n"
|
||||
" \"trusted\" : xxx (numeric) trusted balance (outputs created by the wallet or confirmed outputs)\n"
|
||||
" \"untrusted_pending\" : xxx (numeric) untrusted pending balance (outputs created by others that are in the mempool)\n"
|
||||
" \"immature\" : xxx (numeric) balance from immature coinbase outputs\n"
|
||||
" \"used\" : xxx (numeric) (only present if avoid_reuse is set) balance from coins sent to addresses that were previously spent from (potentially privacy violating)\n"
|
||||
" },\n"
|
||||
" \"watchonly\" : { (json object) watchonly balances (not present if wallet does not watch anything)\n"
|
||||
" \"trusted\" : xxx (numeric) trusted balance (outputs created by the wallet or confirmed outputs)\n"
|
||||
" \"untrusted_pending\" : xxx (numeric) untrusted pending balance (outputs created by others that are in the mempool)\n"
|
||||
" \"immature\" : xxx (numeric) balance from immature coinbase outputs\n"
|
||||
" },\n"
|
||||
"}\n"},
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "mine", "balances from outputs that the wallet can sign",
|
||||
{
|
||||
{RPCResult::Type::STR_AMOUNT, "trusted", "trusted balance (outputs created by the wallet or confirmed outputs)"},
|
||||
{RPCResult::Type::STR_AMOUNT, "untrusted_pending", "untrusted pending balance (outputs created by others that are in the mempool)"},
|
||||
{RPCResult::Type::STR_AMOUNT, "immature", "balance from immature coinbase outputs"},
|
||||
{RPCResult::Type::STR_AMOUNT, "used", "(only present if avoid_reuse is set) balance from coins sent to addresses that were previously spent from (potentially privacy violating)"},
|
||||
}},
|
||||
{RPCResult::Type::OBJ, "watchonly", "watchonly balances (not present if wallet does not watch anything)",
|
||||
{
|
||||
{RPCResult::Type::STR_AMOUNT, "trusted", "trusted balance (outputs created by the wallet or confirmed outputs)"},
|
||||
{RPCResult::Type::STR_AMOUNT, "untrusted_pending", "untrusted pending balance (outputs created by others that are in the mempool)"},
|
||||
{RPCResult::Type::STR_AMOUNT, "immature", "balance from immature coinbase outputs"},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("getbalances", "") +
|
||||
HelpExampleRpc("getbalances", "")},
|
||||
@@ -2417,27 +2442,29 @@ static UniValue getwalletinfo(const JSONRPCRequest& request)
|
||||
"Returns an object containing various wallet state info.\n",
|
||||
{},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"walletname\" : xxxxx, (string) the wallet name\n"
|
||||
" \"walletversion\" : xxxxx, (numeric) the wallet version\n"
|
||||
" \"balance\" : xxxxxxx, (numeric) DEPRECATED. Identical to getbalances().mine.trusted\n"
|
||||
" \"unconfirmed_balance\" : xxx, (numeric) DEPRECATED. Identical to getbalances().mine.untrusted_pending\n"
|
||||
" \"immature_balance\" : xxxxxx, (numeric) DEPRECATED. Identical to getbalances().mine.immature\n"
|
||||
" \"txcount\" : xxxxxxx, (numeric) the total number of transactions in the wallet\n"
|
||||
" \"keypoololdest\" : xxxxxx, (numeric) the " + UNIX_EPOCH_TIME + " of the oldest pre-generated key in the key pool\n"
|
||||
" \"keypoolsize\" : xxxx, (numeric) how many new keys are pre-generated (only counts external keys)\n"
|
||||
" \"keypoolsize_hd_internal\" : xxxx, (numeric) how many new keys are pre-generated for internal use (used for change outputs, only appears if the wallet is using this feature, otherwise external keys are used)\n"
|
||||
" \"unlocked_until\" : ttt, (numeric) the " + UNIX_EPOCH_TIME + " until which the wallet is unlocked for transfers, or 0 if the wallet is locked\n"
|
||||
" \"paytxfee\" : x.xxxx, (numeric) the transaction fee configuration, set in " + CURRENCY_UNIT + "/kB\n"
|
||||
" \"hdseedid\" : \"<hash160>\" (string, optional) the Hash160 of the HD seed (only present when HD is enabled)\n"
|
||||
" \"private_keys_enabled\" : true|false (boolean) false if privatekeys are disabled for this wallet (enforced watch-only wallet)\n"
|
||||
" \"avoid_reuse\" : true|false (boolean) whether this wallet tracks clean/dirty coins in terms of reuse\n"
|
||||
" \"scanning\" : (json object) current scanning details, or false if no scan is in progress\n"
|
||||
" {\n"
|
||||
" \"duration\" : xxxx (numeric) elapsed seconds since scan start\n"
|
||||
" \"progress\" : x.xxxx, (numeric) scanning progress percentage [0.0, 1.0]\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{
|
||||
{RPCResult::Type::STR, "walletname", "the wallet name"},
|
||||
{RPCResult::Type::NUM, "walletversion", "the wallet version"},
|
||||
{RPCResult::Type::STR_AMOUNT, "balance", "DEPRECATED. Identical to getbalances().mine.trusted"},
|
||||
{RPCResult::Type::STR_AMOUNT, "unconfirmed_balance", "DEPRECATED. Identical to getbalances().mine.untrusted_pending"},
|
||||
{RPCResult::Type::STR_AMOUNT, "immature_balance", "DEPRECATED. Identical to getbalances().mine.immature"},
|
||||
{RPCResult::Type::NUM, "txcount", "the total number of transactions in the wallet"},
|
||||
{RPCResult::Type::NUM_TIME, "keypoololdest", "the " + UNIX_EPOCH_TIME + " of the oldest pre-generated key in the key pool"},
|
||||
{RPCResult::Type::NUM, "keypoolsize", "how many new keys are pre-generated (only counts external keys)"},
|
||||
{RPCResult::Type::NUM, "keypoolsize_hd_internal", "how many new keys are pre-generated for internal use (used for change outputs, only appears if the wallet is using this feature, otherwise external keys are used)"},
|
||||
{RPCResult::Type::NUM_TIME, "unlocked_until", "the " + UNIX_EPOCH_TIME + " until which the wallet is unlocked for transfers, or 0 if the wallet is locked"},
|
||||
{RPCResult::Type::STR_AMOUNT, "paytxfee", "the transaction fee configuration, set in " + CURRENCY_UNIT + "/kB"},
|
||||
{RPCResult::Type::STR_HEX, "hdseedid", /* optional */ true, "the Hash160 of the HD seed (only present when HD is enabled)"},
|
||||
{RPCResult::Type::BOOL, "private_keys_enabled", "false if privatekeys are disabled for this wallet (enforced watch-only wallet)"},
|
||||
{RPCResult::Type::BOOL, "avoid_reuse", "whether this wallet tracks clean/dirty coins in terms of reuse"},
|
||||
{RPCResult::Type::OBJ, "scanning", "current scanning details, or false if no scan is in progress",
|
||||
{
|
||||
{RPCResult::Type::NUM, "duration", "elapsed seconds since scan start"},
|
||||
{RPCResult::Type::NUM, "progress", "scanning progress percentage [0.0, 1.0]"},
|
||||
}},
|
||||
}},
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("getwalletinfo", "")
|
||||
@@ -2499,14 +2526,16 @@ static UniValue listwalletdir(const JSONRPCRequest& request)
|
||||
"Returns a list of wallets in the wallet directory.\n",
|
||||
{},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"wallets\" : [ (json array of objects)\n"
|
||||
" {\n"
|
||||
" \"name\" : \"name\" (string) The wallet name\n"
|
||||
" }\n"
|
||||
" ,...\n"
|
||||
" ]\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::ARR, "wallets", "",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "name", "The wallet name"},
|
||||
}},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("listwalletdir", "")
|
||||
@@ -2533,10 +2562,10 @@ static UniValue listwallets(const JSONRPCRequest& request)
|
||||
"For full information on the wallet, use \"getwalletinfo\"\n",
|
||||
{},
|
||||
RPCResult{
|
||||
"[ (json array of strings)\n"
|
||||
" \"walletname\" (string) the wallet name\n"
|
||||
" ...\n"
|
||||
"]\n"
|
||||
RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "walletname", "the wallet name"},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("listwallets", "")
|
||||
@@ -2569,10 +2598,11 @@ static UniValue loadwallet(const JSONRPCRequest& request)
|
||||
{"filename", RPCArg::Type::STR, RPCArg::Optional::NO, "The wallet directory or .dat file."},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"name\" : <wallet_name>, (string) The wallet name if loaded successfully.\n"
|
||||
" \"warning\" : <warning>, (string) Warning message if wallet was not loaded cleanly.\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "name", "The wallet name if loaded successfully."},
|
||||
{RPCResult::Type::STR, "warning", "Warning message if wallet was not loaded cleanly."},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("loadwallet", "\"test.dat\"")
|
||||
@@ -2624,11 +2654,12 @@ static UniValue setwalletflag(const JSONRPCRequest& request)
|
||||
{"value", RPCArg::Type::BOOL, /* default */ "true", "The new state."},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"flag_name\" : string (string) The name of the flag that was modified\n"
|
||||
" \"flag_state\" : bool (boolean) The new state of the flag\n"
|
||||
" \"warnings\" : string (string) Any warnings associated with the change\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "flag_name", "The name of the flag that was modified"},
|
||||
{RPCResult::Type::BOOL, "flag_state", "The new state of the flag"},
|
||||
{RPCResult::Type::STR, "warnings", "Any warnings associated with the change"},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("setwalletflag", "avoid_reuse")
|
||||
@@ -2684,10 +2715,11 @@ static UniValue createwallet(const JSONRPCRequest& request)
|
||||
{"avoid_reuse", RPCArg::Type::BOOL, /* default */ "false", "Keep track of coin reuse, and treat dirty and clean coins differently with privacy considerations in mind."},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"name\" : <wallet_name>, (string) The wallet name if created successfully. If the wallet was created using a full path, the wallet_name will be the full path.\n"
|
||||
" \"warning\" : <warning>, (string) Warning message if wallet was not loaded cleanly.\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "name", "The wallet name if created successfully. If the wallet was created using a full path, the wallet_name will be the full path."},
|
||||
{RPCResult::Type::STR, "warning", "Warning message if wallet was not loaded cleanly."},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("createwallet", "\"testwallet\"")
|
||||
@@ -2813,27 +2845,28 @@ static UniValue listunspent(const JSONRPCRequest& request)
|
||||
"query_options"},
|
||||
},
|
||||
RPCResult{
|
||||
"[ (array of json object)\n"
|
||||
" {\n"
|
||||
" \"txid\" : \"txid\", (string) the transaction id \n"
|
||||
" \"vout\" : n, (numeric) the vout value\n"
|
||||
" \"address\" : \"address\", (string) the bitcoin address\n"
|
||||
" \"label\" : \"label\", (string) The associated label, or \"\" for the default label\n"
|
||||
" \"scriptPubKey\" : \"key\", (string) the script key\n"
|
||||
" \"amount\" : x.xxx, (numeric) the transaction output amount in " + CURRENCY_UNIT + "\n"
|
||||
" \"confirmations\" : n, (numeric) The number of confirmations\n"
|
||||
" \"redeemScript\" : \"script\" (string) The redeemScript if scriptPubKey is P2SH\n"
|
||||
" \"witnessScript\" : \"script\" (string) witnessScript if the scriptPubKey is P2WSH or P2SH-P2WSH\n"
|
||||
" \"spendable\" : xxx, (boolean) Whether we have the private keys to spend this output\n"
|
||||
" \"solvable\" : xxx, (boolean) Whether we know how to spend this output, ignoring the lack of keys\n"
|
||||
" \"reused\" : xxx, (boolean) (only present if avoid_reuse is set) Whether this output is reused/dirty (sent to an address that was previously spent from)\n"
|
||||
" \"desc\" : xxx, (string, only when solvable) A descriptor for spending this output\n"
|
||||
" \"safe\" : xxx (boolean) Whether this output is considered safe to spend. Unconfirmed transactions\n"
|
||||
RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR_HEX, "txid", "the transaction id"},
|
||||
{RPCResult::Type::NUM, "vout", "the vout value"},
|
||||
{RPCResult::Type::STR, "address", "the bitcoin address"},
|
||||
{RPCResult::Type::STR, "label", "The associated label, or \"\" for the default label"},
|
||||
{RPCResult::Type::STR, "scriptPubKey", "the script key"},
|
||||
{RPCResult::Type::STR_AMOUNT, "amount", "the transaction output amount in " + CURRENCY_UNIT},
|
||||
{RPCResult::Type::NUM, "confirmations", "The number of confirmations"},
|
||||
{RPCResult::Type::STR_HEX, "redeemScript", "The redeemScript if scriptPubKey is P2SH"},
|
||||
{RPCResult::Type::STR, "witnessScript", "witnessScript if the scriptPubKey is P2WSH or P2SH-P2WSH"},
|
||||
{RPCResult::Type::BOOL, "spendable", "Whether we have the private keys to spend this output"},
|
||||
{RPCResult::Type::BOOL, "solvable", "Whether we know how to spend this output, ignoring the lack of keys"},
|
||||
{RPCResult::Type::BOOL, "reused", "(only present if avoid_reuse is set) Whether this output is reused/dirty (sent to an address that was previously spent from)"},
|
||||
{RPCResult::Type::STR, "desc", "(only when solvable) A descriptor for spending this output"},
|
||||
{RPCResult::Type::BOOL, "safe", "Whether this output is considered safe to spend. Unconfirmed transactions"
|
||||
" from outside keys and unconfirmed replacement transactions are considered unsafe\n"
|
||||
" and are not eligible for spending by fundrawtransaction and sendtoaddress.\n"
|
||||
" }\n"
|
||||
" ,...\n"
|
||||
"]\n"
|
||||
"and are not eligible for spending by fundrawtransaction and sendtoaddress."},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("listunspent", "")
|
||||
@@ -3171,11 +3204,12 @@ static UniValue fundrawtransaction(const JSONRPCRequest& request)
|
||||
},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"hex\" : \"value\", (string) The resulting raw transaction (hex-encoded string)\n"
|
||||
" \"fee\" : n, (numeric) Fee in " + CURRENCY_UNIT + " the resulting transaction pays\n"
|
||||
" \"changepos\" : n (numeric) The position of the added change output, or -1\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR_HEX, "hex", "The resulting raw transaction (hex-encoded string)"},
|
||||
{RPCResult::Type::STR_AMOUNT, "fee", "Fee in " + CURRENCY_UNIT + " the resulting transaction pays"},
|
||||
{RPCResult::Type::NUM, "changepos", "The position of the added change output, or -1"},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
"\nCreate a transaction with no inputs\n"
|
||||
@@ -3250,20 +3284,22 @@ UniValue signrawtransactionwithwallet(const JSONRPCRequest& request)
|
||||
" \"SINGLE|ANYONECANPAY\""},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"hex\" : \"value\", (string) The hex-encoded raw transaction with signature(s)\n"
|
||||
" \"complete\" : true|false, (boolean) If the transaction has a complete set of signatures\n"
|
||||
" \"errors\" : [ (json array of objects) Script verification errors (if there are any)\n"
|
||||
" {\n"
|
||||
" \"txid\" : \"hash\", (string) The hash of the referenced, previous transaction\n"
|
||||
" \"vout\" : n, (numeric) The index of the output to spent and used as input\n"
|
||||
" \"scriptSig\" : \"hex\", (string) The hex-encoded signature script\n"
|
||||
" \"sequence\" : n, (numeric) Script sequence number\n"
|
||||
" \"error\" : \"text\" (string) Verification or signing error related to the input\n"
|
||||
" }\n"
|
||||
" ,...\n"
|
||||
" ]\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR_HEX, "hex", "The hex-encoded raw transaction with signature(s)"},
|
||||
{RPCResult::Type::BOOL, "complete", "If the transaction has a complete set of signatures"},
|
||||
{RPCResult::Type::ARR, "errors", "Script verification errors (if there are any)",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR_HEX, "txid", "The hash of the referenced, previous transaction"},
|
||||
{RPCResult::Type::NUM, "vout", "The index of the output to spent and used as input"},
|
||||
{RPCResult::Type::STR_HEX, "scriptSig", "The hex-encoded signature script"},
|
||||
{RPCResult::Type::NUM, "sequence", "Script sequence number"},
|
||||
{RPCResult::Type::STR, "error", "Verification or signing error related to the input"},
|
||||
}},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("signrawtransactionwithwallet", "\"myhex\"")
|
||||
@@ -3360,13 +3396,16 @@ static UniValue bumpfee(const JSONRPCRequest& request)
|
||||
"options"},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"psbt\" : \"psbt\", (string) The base64-encoded unsigned PSBT of the new transaction. Only returned when wallet private keys are disabled.\n"
|
||||
" \"txid\" : \"value\", (string) The id of the new transaction. Only returned when wallet private keys are enabled.\n"
|
||||
" \"origfee\" : n, (numeric) The fee of the replaced transaction.\n"
|
||||
" \"fee\" : n, (numeric) The fee of the new transaction.\n"
|
||||
" \"errors\" : [ str... ] (json array of strings) Errors encountered during processing (may be empty).\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "", {
|
||||
{RPCResult::Type::STR, "psbt", "The base64-encoded unsigned PSBT of the new transaction. Only returned when wallet private keys are disabled."},
|
||||
{RPCResult::Type::STR_HEX, "txid", "The id of the new transaction. Only returned when wallet private keys are enabled."},
|
||||
{RPCResult::Type::STR_AMOUNT, "origfee", "The fee of the replaced transaction."},
|
||||
{RPCResult::Type::STR_AMOUNT, "fee", "The fee of the new transaction."},
|
||||
{RPCResult::Type::ARR, "errors", "Errors encountered during processing (may be empty).",
|
||||
{
|
||||
{RPCResult::Type::STR, "", ""},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
"\nBump the fee, get the new transaction\'s txid\n" +
|
||||
@@ -3521,10 +3560,11 @@ UniValue rescanblockchain(const JSONRPCRequest& request)
|
||||
{"stop_height", RPCArg::Type::NUM, RPCArg::Optional::OMITTED_NAMED_ARG, "the last block height that should be scanned. If none is provided it will rescan up to the tip at return time of this call."},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"start_height\" (numeric) The block height where the rescan started (the requested height or 0)\n"
|
||||
" \"stop_height\" (numeric) The height of the last rescanned block. May be null in rare cases if there was a reorg and the call didn't scan any blocks because they were already scanned in the background.\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::NUM, "start_height", "The block height where the rescan started (the requested height or 0)"},
|
||||
{RPCResult::Type::NUM, "stop_height", "The height of the last rescanned block. May be null in rare cases if there was a reorg and the call didn't scan any blocks because they were already scanned in the background."},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("rescanblockchain", "100000 120000")
|
||||
@@ -3729,49 +3769,52 @@ UniValue getaddressinfo(const JSONRPCRequest& request)
|
||||
{"address", RPCArg::Type::STR, RPCArg::Optional::NO, "The bitcoin address for which to get information."},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"address\" : \"address\", (string) The bitcoin address validated.\n"
|
||||
" \"scriptPubKey\" : \"hex\", (string) The hex-encoded scriptPubKey generated by the address.\n"
|
||||
" \"ismine\" : true|false, (boolean) If the address is yours.\n"
|
||||
" \"iswatchonly\" : true|false, (boolean) If the address is watchonly.\n"
|
||||
" \"solvable\" : true|false, (boolean) If we know how to spend coins sent to this address, ignoring the possible lack of private keys.\n"
|
||||
" \"desc\" : \"desc\", (string, optional) A descriptor for spending coins sent to this address (only when solvable).\n"
|
||||
" \"isscript\" : true|false, (boolean) If the key is a script.\n"
|
||||
" \"ischange\" : true|false, (boolean) If the address was used for change output.\n"
|
||||
" \"iswitness\" : true|false, (boolean) If the address is a witness address.\n"
|
||||
" \"witness_version\" : version (numeric, optional) The version number of the witness program.\n"
|
||||
" \"witness_program\" : \"hex\" (string, optional) The hex value of the witness program.\n"
|
||||
" \"script\" : \"type\" (string, optional) The output script type. Only if isscript is true and the redeemscript is known. Possible\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "address", "The bitcoin address validated."},
|
||||
{RPCResult::Type::STR_HEX, "scriptPubKey", "The hex-encoded scriptPubKey generated by the address."},
|
||||
{RPCResult::Type::BOOL, "ismine", "If the address is yours."},
|
||||
{RPCResult::Type::BOOL, "iswatchonly", "If the address is watchonly."},
|
||||
{RPCResult::Type::BOOL, "solvable", "If we know how to spend coins sent to this address, ignoring the possible lack of private keys."},
|
||||
{RPCResult::Type::STR, "desc", /* optional */ true, "A descriptor for spending coins sent to this address (only when solvable)."},
|
||||
{RPCResult::Type::BOOL, "isscript", "If the key is a script."},
|
||||
{RPCResult::Type::BOOL, "ischange", "If the address was used for change output."},
|
||||
{RPCResult::Type::BOOL, "iswitness", "If the address is a witness address."},
|
||||
{RPCResult::Type::NUM, "witness_version", /* optional */ true, "The version number of the witness program."},
|
||||
{RPCResult::Type::STR_HEX, "witness_program", /* optional */ true, "The hex value of the witness program."},
|
||||
{RPCResult::Type::STR, "script", /* optional */ true, "The output script type. Only if isscript is true and the redeemscript is known. Possible\n"
|
||||
" types: nonstandard, pubkey, pubkeyhash, scripthash, multisig, nulldata, witness_v0_keyhash,\n"
|
||||
" witness_v0_scripthash, witness_unknown.\n"
|
||||
" \"hex\" : \"hex\", (string, optional) The redeemscript for the p2sh address.\n"
|
||||
" \"pubkeys\" (array, optional) Array of pubkeys associated with the known redeemscript (only if script is multisig).\n"
|
||||
" [\n"
|
||||
" \"pubkey\" (string)\n"
|
||||
" ,...\n"
|
||||
" ]\n"
|
||||
" \"sigsrequired\" : xxxxx (numeric, optional) The number of signatures required to spend multisig output (only if script is multisig).\n"
|
||||
" \"pubkey\" : \"publickeyhex\", (string, optional) The hex value of the raw public key for single-key addresses (possibly embedded in P2SH or P2WSH).\n"
|
||||
" \"embedded\" : {...}, (object, optional) Information about the address embedded in P2SH or P2WSH, if relevant and known. Includes all\n"
|
||||
"witness_v0_scripthash, witness_unknown."},
|
||||
{RPCResult::Type::STR_HEX, "hex", /* optional */ true, "The redeemscript for the p2sh address."},
|
||||
{RPCResult::Type::ARR, "pubkeys", /* optional */ true, "Array of pubkeys associated with the known redeemscript (only if script is multisig).",
|
||||
{
|
||||
{RPCResult::Type::STR, "pubkey", ""},
|
||||
}},
|
||||
{RPCResult::Type::NUM, "sigsrequired", /* optional */ true, "The number of signatures required to spend multisig output (only if script is multisig)."},
|
||||
{RPCResult::Type::STR_HEX, "pubkey", /* optional */ true, "The hex value of the raw public key for single-key addresses (possibly embedded in P2SH or P2WSH)."},
|
||||
{RPCResult::Type::OBJ, "embedded", /* optional */ true, "Information about the address embedded in P2SH or P2WSH, if relevant and known.",
|
||||
{
|
||||
{RPCResult::Type::ELISION, "", "Includes all\n"
|
||||
" getaddressinfo output fields for the embedded address, excluding metadata (timestamp, hdkeypath,\n"
|
||||
" hdseedid) and relation to the wallet (ismine, iswatchonly).\n"
|
||||
" \"iscompressed\" : true|false, (boolean, optional) If the pubkey is compressed.\n"
|
||||
" \"label\" : \"label\" (string) DEPRECATED. The label associated with the address. Defaults to \"\". Replaced by the labels array below.\n"
|
||||
" \"timestamp\" : timestamp, (number, optional) The creation time of the key, if available, expressed in " + UNIX_EPOCH_TIME + ".\n"
|
||||
" \"hdkeypath\" : \"keypath\" (string, optional) The HD keypath, if the key is HD and available.\n"
|
||||
" \"hdseedid\" : \"<hash160>\" (string, optional) The Hash160 of the HD seed.\n"
|
||||
" \"hdmasterfingerprint\" : \"<hash160>\" (string, optional) The fingerprint of the master key.\n"
|
||||
" \"labels\" (json array) Array of labels associated with the address. Currently limited to one label but returned\n"
|
||||
" as an array to keep the API stable if multiple labels are enabled in the future.\n"
|
||||
" [\n"
|
||||
" \"label name\" (string) The label name. Defaults to \"\".\n"
|
||||
" DEPRECATED, will be removed in 0.21. To re-enable, launch bitcoind with `-deprecatedrpc=labelspurpose`:\n"
|
||||
" {\n"
|
||||
" \"name\" : \"label name\" (string) The label name. Defaults to \"\".\n"
|
||||
" \"purpose\" : \"purpose\" (string) The purpose of the associated address (send or receive).\n"
|
||||
" }\n"
|
||||
" ]\n"
|
||||
"}\n"
|
||||
"hdseedid) and relation to the wallet (ismine, iswatchonly)."},
|
||||
}},
|
||||
{RPCResult::Type::BOOL, "iscompressed", /* optional */ true, "If the pubkey is compressed."},
|
||||
{RPCResult::Type::STR, "label", "DEPRECATED. The label associated with the address. Defaults to \"\". Replaced by the labels array below."},
|
||||
{RPCResult::Type::NUM_TIME, "timestamp", /* optional */ true, "The creation time of the key, if available, expressed in " + UNIX_EPOCH_TIME + "."},
|
||||
{RPCResult::Type::STR, "hdkeypath", /* optional */ true, "The HD keypath, if the key is HD and available."},
|
||||
{RPCResult::Type::STR_HEX, "hdseedid", /* optional */ true, "The Hash160 of the HD seed."},
|
||||
{RPCResult::Type::STR_HEX, "hdmasterfingerprint", /* optional */ true, "The fingerprint of the master key."},
|
||||
{RPCResult::Type::ARR, "labels", "Array of labels associated with the address. Currently limited to one label but returned\n"
|
||||
"as an array to keep the API stable if multiple labels are enabled in the future.",
|
||||
{
|
||||
{RPCResult::Type::STR, "label name", "The label name. Defaults to \"\"."},
|
||||
{RPCResult::Type::OBJ, "", "label data, DEPRECATED, will be removed in 0.21. To re-enable, launch bitcoind with `-deprecatedrpc=labelspurpose`",
|
||||
{
|
||||
{RPCResult::Type::STR, "name", "The label name. Defaults to \"\"."},
|
||||
{RPCResult::Type::STR, "purpose", "The purpose of the associated address (send or receive)."},
|
||||
}},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("getaddressinfo", EXAMPLE_ADDRESS) +
|
||||
@@ -3868,11 +3911,13 @@ static UniValue getaddressesbylabel(const JSONRPCRequest& request)
|
||||
{"label", RPCArg::Type::STR, RPCArg::Optional::NO, "The label."},
|
||||
},
|
||||
RPCResult{
|
||||
"{ (json object with addresses as keys)\n"
|
||||
" \"address\" : { (json object with information about address)\n"
|
||||
" \"purpose\" : \"string\" (string) Purpose of address (\"send\" for sending address, \"receive\" for receiving address)\n"
|
||||
" },...\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ_DYN, "", "json object with addresses as keys",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "address", "json object with information about address",
|
||||
{
|
||||
{RPCResult::Type::STR, "purpose", "Purpose of address (\"send\" for sending address, \"receive\" for receiving address)"},
|
||||
}},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("getaddressesbylabel", "\"tabby\"")
|
||||
@@ -3925,10 +3970,10 @@ static UniValue listlabels(const JSONRPCRequest& request)
|
||||
{"purpose", RPCArg::Type::STR, RPCArg::Optional::OMITTED_NAMED_ARG, "Address purpose to list labels for ('send','receive'). An empty string is the same as not providing this argument."},
|
||||
},
|
||||
RPCResult{
|
||||
"[ (json array of string)\n"
|
||||
" \"label\", (string) Label name\n"
|
||||
" ...\n"
|
||||
"]\n"
|
||||
RPCResult::Type::ARR, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "label", "Label name"},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
"\nList all labels\n"
|
||||
@@ -4069,10 +4114,11 @@ UniValue walletprocesspsbt(const JSONRPCRequest& request)
|
||||
{"bip32derivs", RPCArg::Type::BOOL, /* default */ "true", "Include BIP 32 derivation paths for public keys if we know them"},
|
||||
},
|
||||
RPCResult{
|
||||
"{ (json object)\n"
|
||||
" \"psbt\" : \"str\", (string) The base64-encoded partially signed transaction\n"
|
||||
" \"complete\" : true|false, (boolean) If the transaction has a complete set of signatures\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "psbt", "The base64-encoded partially signed transaction"},
|
||||
{RPCResult::Type::BOOL, "complete", "If the transaction has a complete set of signatures"},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("walletprocesspsbt", "\"psbt\"")
|
||||
@@ -4179,11 +4225,12 @@ UniValue walletcreatefundedpsbt(const JSONRPCRequest& request)
|
||||
{"bip32derivs", RPCArg::Type::BOOL, /* default */ "true", "Include BIP 32 derivation paths for public keys if we know them"},
|
||||
},
|
||||
RPCResult{
|
||||
"{\n"
|
||||
" \"psbt\" : \"value\", (string) The resulting raw transaction (base64-encoded string)\n"
|
||||
" \"fee\" : n, (numeric) Fee in " + CURRENCY_UNIT + " the resulting transaction pays\n"
|
||||
" \"changepos\" : n (numeric) The position of the added change output, or -1\n"
|
||||
"}\n"
|
||||
RPCResult::Type::OBJ, "", "",
|
||||
{
|
||||
{RPCResult::Type::STR, "psbt", "The resulting raw transaction (base64-encoded string)"},
|
||||
{RPCResult::Type::STR_AMOUNT, "fee", "Fee in " + CURRENCY_UNIT + " the resulting transaction pays"},
|
||||
{RPCResult::Type::NUM, "changepos", "The position of the added change output, or -1"},
|
||||
}
|
||||
},
|
||||
RPCExamples{
|
||||
"\nCreate a transaction with no inputs\n"
|
||||
|
||||
Reference in New Issue
Block a user