mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-09 22:28:51 +02:00
rpc, mempool: rpcdeprecate bip125-replaceable key in mempool RPCs reponses
RPCs: getrawmempool, getmempoolancestors, getmempooldescendants, getmempoolentry This key has been marked deprecated since v29, it can be removed from the RPC response now unless the user requests it via the -deprecatedrpc=bip125 node argument.
This commit is contained in:
@@ -430,7 +430,7 @@ static std::vector<RPCResult> ClusterDescription()
|
||||
|
||||
static std::vector<RPCResult> MempoolEntryDescription()
|
||||
{
|
||||
return {
|
||||
std::vector<RPCResult> list = {
|
||||
RPCResult{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."},
|
||||
RPCResult{RPCResult::Type::NUM, "weight", "transaction weight as defined in BIP 141."},
|
||||
RPCResult{RPCResult::Type::NUM_TIME, "time", "local time transaction entered pool in seconds since 1 Jan 1970 GMT"},
|
||||
@@ -453,9 +453,12 @@ static std::vector<RPCResult> MempoolEntryDescription()
|
||||
{RPCResult{RPCResult::Type::STR_HEX, "transactionid", "parent transaction id"}}},
|
||||
RPCResult{RPCResult::Type::ARR, "spentby", "unconfirmed transactions spending outputs from this transaction",
|
||||
{RPCResult{RPCResult::Type::STR_HEX, "transactionid", "child transaction id"}}},
|
||||
RPCResult{RPCResult::Type::BOOL, "bip125-replaceable", "Whether this transaction signals BIP125 replaceability or has an unconfirmed ancestor signaling BIP125 replaceability. (DEPRECATED)\n"},
|
||||
RPCResult{RPCResult::Type::BOOL, "unbroadcast", "Whether this transaction is currently unbroadcast (initial broadcast not yet acknowledged by any peers)"},
|
||||
};
|
||||
if (IsDeprecatedRPCEnabled("bip125")) {
|
||||
list.emplace_back(RPCResult::Type::BOOL, "bip125-replaceable", "Whether this transaction signals BIP125 replaceability or has an unconfirmed ancestor signaling BIP125 replaceability. (DEPRECATED)\n");
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
void AppendChunkInfo(UniValue& all_chunks, FeePerWeight chunk_feerate, std::vector<const CTxMemPoolEntry *> chunk_txs)
|
||||
@@ -554,18 +557,19 @@ static void entryToJSON(const CTxMemPool& pool, UniValue& info, const CTxMemPool
|
||||
}
|
||||
|
||||
info.pushKV("spentby", std::move(spent));
|
||||
info.pushKV("unbroadcast", pool.IsUnbroadcastTx(tx.GetHash()));
|
||||
|
||||
// Add opt-in RBF status
|
||||
bool rbfStatus = false;
|
||||
RBFTransactionState rbfState = IsRBFOptIn(tx, pool);
|
||||
if (rbfState == RBFTransactionState::UNKNOWN) {
|
||||
throw JSONRPCError(RPC_MISC_ERROR, "Transaction is not in mempool");
|
||||
} else if (rbfState == RBFTransactionState::REPLACEABLE_BIP125) {
|
||||
rbfStatus = true;
|
||||
if (IsDeprecatedRPCEnabled("bip125")) {
|
||||
bool rbfStatus = false;
|
||||
RBFTransactionState rbfState = IsRBFOptIn(tx, pool);
|
||||
if (rbfState == RBFTransactionState::UNKNOWN) {
|
||||
throw JSONRPCError(RPC_MISC_ERROR, "Transaction is not in mempool");
|
||||
} else if (rbfState == RBFTransactionState::REPLACEABLE_BIP125) {
|
||||
rbfStatus = true;
|
||||
}
|
||||
info.pushKV("bip125-replaceable", rbfStatus);
|
||||
}
|
||||
|
||||
info.pushKV("bip125-replaceable", rbfStatus);
|
||||
info.pushKV("unbroadcast", pool.IsUnbroadcastTx(tx.GetHash()));
|
||||
}
|
||||
|
||||
UniValue MempoolToJSON(const CTxMemPool& pool, bool verbose, bool include_mempool_sequence)
|
||||
|
||||
@@ -28,7 +28,7 @@ class ReplaceByFeeTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
self.num_nodes = 2
|
||||
self.uses_wallet = None
|
||||
self.extra_args = [["-deprecatedrpc=fullrbf"], []]
|
||||
self.extra_args = [["-deprecatedrpc=fullrbf", "-deprecatedrpc=bip125"], []]
|
||||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
|
||||
Reference in New Issue
Block a user