This commit is contained in:
UdjinM6 2024-12-15 18:31:19 +00:00 committed by GitHub
commit 4813d42df9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 1 deletions

View File

@ -0,0 +1,4 @@
RPC changes
-----------
`quorum getdata` RPC will no longer allow `proTxHash` to be specified when `dataMask` is set to `1`.

View File

@ -802,8 +802,8 @@ static RPCHelpMan quorum_getdata()
uint16_t nDataMask = static_cast<uint16_t>(ParseInt32V(request.params[3], "dataMask"));
uint256 proTxHash;
// Check if request wants ENCRYPTED_CONTRIBUTIONS data
if (nDataMask & llmq::CQuorumDataRequest::ENCRYPTED_CONTRIBUTIONS) {
// Require proTxHash if request wants ENCRYPTED_CONTRIBUTIONS data
if (!request.params[4].isNull()) {
proTxHash = ParseHashV(request.params[4], "proTxHash");
if (proTxHash.IsNull()) {
@ -812,6 +812,9 @@ static RPCHelpMan quorum_getdata()
} else {
throw JSONRPCError(RPC_INVALID_PARAMETER, "proTxHash missing");
}
} else if (!request.params[4].isNull()) {
// Require no proTxHash otherwise
throw JSONRPCError(RPC_INVALID_PARAMETER, "Should not specify proTxHash");
}
const auto quorum = llmq_ctx.qman->GetQuorum(llmqType, quorumHash);

View File

@ -394,6 +394,8 @@ class QuorumDataMessagesTest(DashTestFramework):
def test_rpc_quorum_getdata_protx_hash():
self.log.info("Test optional proTxHash of `quorum getdata`")
assert_raises_rpc_error(-8, "Should not specify proTxHash",
mn1.node.quorum, "getdata", 0, 100, quorum_hash, 0x01, mn1.proTxHash)
assert_raises_rpc_error(-8, "proTxHash missing",
mn1.node.quorum, "getdata", 0, 100, quorum_hash, 0x02)
assert_raises_rpc_error(-8, "proTxHash invalid",