Skip to content

Commit

Permalink
fix(verifiers): optimize setZKPRequests implementation
Browse files Browse the repository at this point in the history
- Modify setZKPRequests in ValidatorWhitelist, UniversalVerifier, RequestOwnership and EmbeddedZKPVerifier to use super implementation
- Remove redundant array iteration logic to prevent potential array bounds issues
- Ensure consistent length validation across all verifier contracts
- Improve gas efficiency by avoiding duplicate checks

This change maintains the same functionality while improving security and reducing code duplication.
  • Loading branch information
yushihang committed Feb 3, 2025
1 parent 890c070 commit bdc1647
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 9 deletions.
4 changes: 1 addition & 3 deletions contracts/verifiers/RequestOwnership.sol
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,7 @@ abstract contract RequestOwnership is ZKPVerifierBase {
uint64[] calldata requestIds,
ZKPRequest[] calldata requests
) public virtual override {
for (uint256 i = 0; i < requestIds.length; i++) {
setZKPRequest(requestIds[i], requests[i]);
}
super.setZKPRequests(requestIds, requests);
}

/// @dev Get a ZKP Request Owner address
Expand Down
4 changes: 1 addition & 3 deletions contracts/verifiers/UniversalVerifier.sol
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,7 @@ contract UniversalVerifier is
uint64[] calldata requestIds,
ZKPRequest[] calldata requests
) public override(RequestOwnership, ValidatorWhitelist, ZKPVerifierBase) {
for (uint256 i = 0; i < requestIds.length; i++) {
setZKPRequest(requestIds[i], requests[i]);
}
super.setZKPRequests(requestIds, requests);
}

/// @dev Update a ZKP request
Expand Down
4 changes: 1 addition & 3 deletions contracts/verifiers/ValidatorWhitelist.sol
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,7 @@ contract ValidatorWhitelist is ZKPVerifierBase {
uint64[] calldata requestIds,
ZKPRequest[] calldata requests
) public virtual override {
for (uint256 i = 0; i < requestIds.length; i++) {
setZKPRequest(requestIds[i], requests[i]);
}
super.setZKPRequests(requestIds, requests);
}

/// @dev Verifies a ZKP response without updating any proof status
Expand Down

0 comments on commit bdc1647

Please sign in to comment.