Skip to content

Commit cb567ca

Browse files
committed
feat: module validations
1 parent 8b25c6d commit cb567ca

File tree

1 file changed

+40
-4
lines changed

1 file changed

+40
-4
lines changed

solidity/contracts/Module.sol

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,27 +73,63 @@ abstract contract Module is IModule {
7373
) internal pure returns (bytes32 _responseId) {
7474
bytes32 _requestId = _getId(_request);
7575
_responseId = _getId(_response);
76+
7677
if (_response.requestId != _requestId) revert Module_InvalidResponseBody();
7778
}
7879

7980
/**
80-
* @notice Validates the correctness of a request-response-dispute triplet
81+
* @notice Validates the correctness of a request-dispute pair
8182
*
8283
* @param _request The request to compute the id for
83-
* @param _response The response to compute the id for
8484
* @param _dispute The dispute to compute the id for
8585
* @return _disputeId The id the dispute
8686
*/
8787
function _validateDispute(
8888
IOracle.Request calldata _request,
89-
IOracle.Response calldata _response,
9089
IOracle.Dispute calldata _dispute
9190
) internal pure returns (bytes32 _disputeId) {
9291
bytes32 _requestId = _getId(_request);
92+
_disputeId = _getId(_dispute);
93+
94+
if (_dispute.requestId != _requestId) revert Module_InvalidDisputeBody();
95+
}
96+
97+
/**
98+
* @notice Validates the correctness of a response-dispute pair
99+
*
100+
* @param _response The response to compute the id for
101+
* @param _dispute The dispute to compute the id for
102+
* @return _disputeId The id the dispute
103+
*/
104+
function _validateDispute(
105+
IOracle.Response calldata _response,
106+
IOracle.Dispute calldata _dispute
107+
) internal pure returns (bytes32 _disputeId) {
93108
bytes32 _responseId = _getId(_response);
94109
_disputeId = _getId(_dispute);
95110

96-
if (_dispute.requestId != _requestId || _dispute.responseId != _responseId) revert Module_InvalidDisputeBody();
111+
if (_dispute.responseId != _responseId) revert Module_InvalidDisputeBody();
112+
}
113+
114+
/**
115+
* @notice Validates the correctness of a request-response-dispute triplet
116+
*
117+
* @param _request The request to compute the id for
118+
* @param _response The response to compute the id for
119+
* @param _dispute The dispute to compute the id for
120+
* @return _responseId The id the response
121+
* @return _disputeId The id the dispute
122+
*/
123+
function _validateResponseAndDispute(
124+
IOracle.Request calldata _request,
125+
IOracle.Response calldata _response,
126+
IOracle.Dispute calldata _dispute
127+
) internal pure returns (bytes32 _responseId, bytes32 _disputeId) {
128+
bytes32 _requestId = _getId(_request);
129+
_responseId = _getId(_response);
130+
_disputeId = _getId(_dispute);
131+
97132
if (_response.requestId != _requestId) revert Module_InvalidResponseBody();
133+
if (_dispute.requestId != _requestId || _dispute.responseId != _responseId) revert Module_InvalidDisputeBody();
98134
}
99135
}

0 commit comments

Comments
 (0)