Only allow "packages" with no conflicts, sorted in order of dependency,
and no more than 25 for now. Note that these groups of transactions
don't necessarily need to adhere to some strict definition of a package
or have any dependency relationships. Clients are free to pass in a
batch of 25 unrelated transactions if they want to.
"\nReturns result of mempool acceptance tests indicating if raw transaction (serialized, hex-encoded) would be accepted by mempool.\n"
"\nReturns result of mempool acceptance tests indicating if raw transaction(s) (serialized, hex-encoded) would be accepted by mempool.\n"
"\nThis checks if the transaction violates the consensus or policy rules.\n"
"\nIf multiple transactions are passed in, parents must come before children and package policies apply: the transactions cannot conflict with any mempool transactions or each other.\n"
"\nIf one transaction fails, other transactions may not be fully validated (the 'allowed' key will be blank).\n"
"\nThe maximum number of transactions allowed is 25 (MAX_PACKAGE_COUNT)\n"
"\nThis checks if transactions violate the consensus or policy rules.\n"
"\nSee sendrawtransaction call.\n",
"\nSee sendrawtransaction call.\n",
{
{
{"rawtxs",RPCArg::Type::ARR,RPCArg::Optional::NO,"An array of hex strings of raw transactions.\n"
{"rawtxs",RPCArg::Type::ARR,RPCArg::Optional::NO,"An array of hex strings of raw transactions.\n"
{"maxfeerate",RPCArg::Type::AMOUNT,RPCArg::Default{FormatMoney(DEFAULT_MAX_RAW_TX_FEE_RATE.GetFeePerK())},"Reject transactions whose fee rate is higher than the specified value, expressed in "+CURRENCY_UNIT+"/kvB\n"},
"Reject transactions whose fee rate is higher than the specified value, expressed in "+CURRENCY_UNIT+"/kvB\n"},
},
},
RPCResult{
RPCResult{
RPCResult::Type::ARR,"","The result of the mempool acceptance test for each raw transaction in the input array.\n"
RPCResult::Type::ARR,"","The result of the mempool acceptance test for each raw transaction in the input array.\n"
"Length is exactly one for now.",
"Returns results for each transaction in the same order they were passed in.\n"
"It is possible for transactions to not be fully validated ('allowed' unset) if an earlier transaction failed.\n",
{
{
{RPCResult::Type::OBJ,"","",
{RPCResult::Type::OBJ,"","",
{
{
{RPCResult::Type::STR_HEX,"txid","The transaction hash in hex"},
{RPCResult::Type::STR_HEX,"txid","The transaction hash in hex"},
{RPCResult::Type::STR_HEX,"wtxid","The transaction witness hash in hex"},
{RPCResult::Type::STR_HEX,"wtxid","The transaction witness hash in hex"},
{RPCResult::Type::BOOL,"allowed","If the mempool allows this tx to be inserted"},
{RPCResult::Type::STR,"package-error","Package validation error, if any (only possible if rawtxs had more than 1 transaction)."},
{RPCResult::Type::BOOL,"allowed","Whether this tx would be accepted to the mempool and pass client-specified maxfeerate."
"If not present, the tx was not fully validated due to a failure in another tx in the list."},
{RPCResult::Type::NUM,"vsize","Virtual transaction size as defined in BIP 141. This is different from actual serialized size for witness transactions as witness data is discounted (only present when 'allowed' is true)"},
{RPCResult::Type::NUM,"vsize","Virtual transaction size as defined in BIP 141. This is different from actual serialized size for witness transactions as witness data is discounted (only present when 'allowed' is true)"},
{RPCResult::Type::OBJ,"fees","Transaction fees (only present if 'allowed' is true)",
{RPCResult::Type::OBJ,"fees","Transaction fees (only present if 'allowed' is true)",