From 9a29d470fbb62bbb27d517efeafe46ff03c25f54 Mon Sep 17 00:00:00 2001 From: glozow Date: Fri, 15 Dec 2023 18:04:01 +0000 Subject: [rpc] return full string for package_msg and package-error --- src/rpc/mempool.cpp | 4 ++-- test/functional/mempool_package_limits.py | 2 +- test/functional/mempool_sigoplimit.py | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/rpc/mempool.cpp b/src/rpc/mempool.cpp index 04bd7fa928..045ec55f5c 100644 --- a/src/rpc/mempool.cpp +++ b/src/rpc/mempool.cpp @@ -199,7 +199,7 @@ static RPCHelpMan testmempoolaccept() result_inner.pushKV("txid", tx->GetHash().GetHex()); result_inner.pushKV("wtxid", tx->GetWitnessHash().GetHex()); if (package_result.m_state.GetResult() == PackageValidationResult::PCKG_POLICY) { - result_inner.pushKV("package-error", package_result.m_state.GetRejectReason()); + result_inner.pushKV("package-error", package_result.m_state.ToString()); } auto it = package_result.m_tx_results.find(tx->GetWitnessHash()); if (exit_early || it == package_result.m_tx_results.end()) { @@ -909,7 +909,7 @@ static RPCHelpMan submitpackage() case PackageValidationResult::PCKG_TX: { // Package-wide error we want to return, but we also want to return individual responses - package_msg = package_result.m_state.GetRejectReason(); + package_msg = package_result.m_state.ToString(); CHECK_NONFATAL(package_result.m_tx_results.size() == txns.size() || package_result.m_tx_results.empty()); break; diff --git a/test/functional/mempool_package_limits.py b/test/functional/mempool_package_limits.py index 81451bf2a5..2a64597511 100755 --- a/test/functional/mempool_package_limits.py +++ b/test/functional/mempool_package_limits.py @@ -29,7 +29,7 @@ def check_package_limits(func): testres_error_expected = node.testmempoolaccept(rawtxs=package_hex) assert_equal(len(testres_error_expected), len(package_hex)) for txres in testres_error_expected: - assert_equal(txres["package-error"], "package-mempool-limits") + assert "package-mempool-limits" in txres["package-error"] # Clear mempool and check that the package passes now self.generate(node, 1) diff --git a/test/functional/mempool_sigoplimit.py b/test/functional/mempool_sigoplimit.py index 14dd9cc80e..90d412bead 100755 --- a/test/functional/mempool_sigoplimit.py +++ b/test/functional/mempool_sigoplimit.py @@ -165,7 +165,8 @@ class BytesPerSigOpTest(BitcoinTestFramework): # But together, it's exceeding limits in the *package* context. If sigops adjusted vsize wasn't being checked # here, it would get further in validation and give too-long-mempool-chain error instead. packet_test = self.nodes[0].testmempoolaccept([tx_parent.serialize().hex(), tx_child.serialize().hex()]) - assert_equal([x["package-error"] for x in packet_test], ["package-mempool-limits", "package-mempool-limits"]) + expected_package_error = f"package-mempool-limits, package size {2*20*5000} exceeds ancestor size limit [limit: 101000]" + assert_equal([x["package-error"] for x in packet_test], [expected_package_error] * 2) # When we actually try to submit, the parent makes it into the mempool, but the child would exceed ancestor vsize limits res = self.nodes[0].submitpackage([tx_parent.serialize().hex(), tx_child.serialize().hex()]) -- cgit v1.2.3