Skip to content

Commit

Permalink
Linter fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Andriian Chestnykh committed Jan 12, 2024
1 parent dcacf21 commit 90ecccf
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 33 deletions.
10 changes: 8 additions & 2 deletions contracts/validators/CredentialAtomicQueryMTPValidator.sol
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,14 @@ contract CredentialAtomicQueryMTPValidator is CredentialAtomicQueryValidator {
return params;
}

function getSpecialInputPairs() public pure override returns (ICircuitValidator.KeyInputIndexPair[] memory) {
ICircuitValidator.KeyInputIndexPair[] memory pairs = new ICircuitValidator.KeyInputIndexPair[](2);
function getSpecialInputPairs()
public
pure
override
returns (ICircuitValidator.KeyInputIndexPair[] memory)
{
ICircuitValidator.KeyInputIndexPair[]
memory pairs = new ICircuitValidator.KeyInputIndexPair[](2);
pairs[0] = ICircuitValidator.KeyInputIndexPair({key: "userID", inputIndex: 1});
pairs[1] = ICircuitValidator.KeyInputIndexPair({key: "timestamp", inputIndex: 10});
return pairs;
Expand Down
10 changes: 8 additions & 2 deletions contracts/validators/CredentialAtomicQuerySigValidator.sol
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,14 @@ contract CredentialAtomicQuerySigValidator is CredentialAtomicQueryValidator {
return params;
}

function getSpecialInputPairs() public pure override returns (ICircuitValidator.KeyInputIndexPair[] memory) {
ICircuitValidator.KeyInputIndexPair[] memory pairs = new ICircuitValidator.KeyInputIndexPair[](2);
function getSpecialInputPairs()
public
pure
override
returns (ICircuitValidator.KeyInputIndexPair[] memory)
{
ICircuitValidator.KeyInputIndexPair[]
memory pairs = new ICircuitValidator.KeyInputIndexPair[](2);
pairs[0] = ICircuitValidator.KeyInputIndexPair({key: "userID", inputIndex: 1});
pairs[1] = ICircuitValidator.KeyInputIndexPair({key: "timestamp", inputIndex: 10});
return pairs;
Expand Down
10 changes: 8 additions & 2 deletions contracts/validators/CredentialAtomicQueryV3Validator.sol
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,14 @@ contract CredentialAtomicQueryV3Validator is CredentialAtomicQueryValidator {
return pubSignals;
}

function getSpecialInputPairs() public pure override returns (ICircuitValidator.KeyInputIndexPair[] memory) {
ICircuitValidator.KeyInputIndexPair[] memory pairs = new ICircuitValidator.KeyInputIndexPair[](2);
function getSpecialInputPairs()
public
pure
override
returns (ICircuitValidator.KeyInputIndexPair[] memory)
{
ICircuitValidator.KeyInputIndexPair[]
memory pairs = new ICircuitValidator.KeyInputIndexPair[](2);
pairs[0] = ICircuitValidator.KeyInputIndexPair({key: "userID", inputIndex: 1});
pairs[1] = ICircuitValidator.KeyInputIndexPair({key: "linkID", inputIndex: 4});
pairs[2] = ICircuitValidator.KeyInputIndexPair({key: "nullifier", inputIndex: 5});
Expand Down
6 changes: 5 additions & 1 deletion contracts/validators/CredentialAtomicQueryValidator.sol
Original file line number Diff line number Diff line change
Expand Up @@ -263,5 +263,9 @@ abstract contract CredentialAtomicQueryValidator is OwnableUpgradeable, ICircuit
}
}

function getSpecialInputPairs() public pure virtual returns (ICircuitValidator.KeyInputIndexPair[] memory);
function getSpecialInputPairs()
public
pure
virtual
returns (ICircuitValidator.KeyInputIndexPair[] memory);
}
62 changes: 36 additions & 26 deletions contracts/verifiers/UniversalVerifier.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {ICircuitValidator} from "../interfaces/ICircuitValidator.sol";
import {IZKPVerifier} from "../interfaces/IZKPVerifier.sol";
import {ArrayUtils} from "../lib/ArrayUtils.sol";

// TODO scripts
// TODO scripts (do we need it?)
//1. Who requested
//2. Who submitted

Expand All @@ -15,7 +15,7 @@ import {ArrayUtils} from "../lib/ArrayUtils.sol";
contract UniversalVerifier is OwnableUpgradeable {
struct StorageField {
uint256 value;
bytes rawValue; // TODO provisioned with separate transactions
bytes rawValue; // TODO provisioned with separate transactions
}

/// @dev Struct to store ZKP proof and associated data
Expand Down Expand Up @@ -51,7 +51,12 @@ contract UniversalVerifier is OwnableUpgradeable {
event ZKPResponseSubmitted(uint64 indexed requestId, address indexed caller);

/// @dev Event emitted upon adding a ZKP request
event ZKPRequestAdded(uint64 indexed requestId, address indexed controller, string metadata, bytes data);
event ZKPRequestAdded(
uint64 indexed requestId,
address indexed controller,
string metadata,
bytes data
);

/// @dev Modifier to check if the caller is the owner or controller of the ZKP request
modifier onlyOwnerOrController(uint64 requestId) {
Expand Down Expand Up @@ -86,19 +91,15 @@ contract UniversalVerifier is OwnableUpgradeable {

/// @notice Adds a new ZKP request
/// @param request The ZKP request data
function addZKPRequest(IZKPVerifier.ZKPRequest calldata request) public isWhitelistedValidator(request.validator) {
function addZKPRequest(
IZKPVerifier.ZKPRequest calldata request
) public isWhitelistedValidator(request.validator) {
address sender = _msgSender();
uint64 requestId = uint64(_getMainStorage().requestIds.length);
_getMainStorage().requestIds.push(requestId);
_getMainStorage().userRequestIds[sender].push(requestId);
IZKPVerifier.ZKPRequestExtended memory requestWithController = IZKPVerifier
.ZKPRequestExtended(
request.metadata,
request.validator,
request.data,
sender,
false
);
.ZKPRequestExtended(request.metadata, request.validator, request.data, sender, false);
_getMainStorage().requests[requestId] = requestWithController;
emit ZKPRequestAdded(requestId, sender, request.metadata, request.data);
}
Expand Down Expand Up @@ -153,8 +154,9 @@ contract UniversalVerifier is OwnableUpgradeable {
REQUESTS_RETURN_LIMIT
);

IZKPVerifier.ZKPRequestExtended[]
memory result = new IZKPVerifier.ZKPRequestExtended[](end - start);
IZKPVerifier.ZKPRequestExtended[] memory result = new IZKPVerifier.ZKPRequestExtended[](
end - start
);

for (uint256 i = start; i < end; i++) {
result[i - start] = _getMainStorage().requests[_getMainStorage().requestIds[i]];
Expand All @@ -180,11 +182,14 @@ contract UniversalVerifier is OwnableUpgradeable {
REQUESTS_RETURN_LIMIT
);

IZKPVerifier.ZKPRequestExtended[]
memory result = new IZKPVerifier.ZKPRequestExtended[](end - start);
IZKPVerifier.ZKPRequestExtended[] memory result = new IZKPVerifier.ZKPRequestExtended[](
end - start
);

for (uint256 i = start; i < end; i++) {
result[i - start] = _getMainStorage().requests[_getMainStorage().userRequestIds[controller][i]];
result[i - start] = _getMainStorage().requests[
_getMainStorage().userRequestIds[controller][i]
];
}

return result;
Expand All @@ -202,8 +207,11 @@ contract UniversalVerifier is OwnableUpgradeable {
/// @param user The user's address
/// @param requestId The ID of the ZKP request
/// @return The proof
// TODO finalize it
function getProofStorageItem(address user, uint64 requestId, string memory key) public view returns (uint256) {
function getProofStorageItem(
address user,
uint64 requestId,
string memory key
) public view returns (uint256) {
return _getMainStorage().proofs[user][requestId].storageFields[key].value;
}

Expand All @@ -223,18 +231,22 @@ contract UniversalVerifier is OwnableUpgradeable {
uint256[] calldata inputs,
uint256[2] calldata a,
uint256[2][2] calldata b,
uint256[2] calldata c
// TODO add additional data and circuit id
// bytes calldata additionalData,
// string calldata circuitId
uint256[2] calldata c // TODO add bytes calldata additionalData, string calldata circuitId
) public enabled(requestId) {
address sender = _msgSender();
require(
_getMainStorage().requests[requestId].validator != ICircuitValidator(address(0)),
"validator is not set for this request id"
);

ICircuitValidator.KeyInputIndexPair[] memory pairs = _callVerifyWithSender(requestId, inputs, a, b, c, sender);
ICircuitValidator.KeyInputIndexPair[] memory pairs = _callVerifyWithSender(
requestId,
inputs,
a,
b,
c,
sender
);
for (uint256 i = 0; i < pairs.length; i++) {
_getMainStorage().proofs[sender][requestId].storageFields[pairs[i].key] = StorageField(
inputs[pairs[i].inputIndex],
Expand Down Expand Up @@ -276,9 +288,7 @@ contract UniversalVerifier is OwnableUpgradeable {
uint256[2] calldata c,
address sender
) internal view returns (ICircuitValidator.KeyInputIndexPair[] memory) {
IZKPVerifier.ZKPRequestExtended memory request = _getMainStorage().requests[
requestId
];
IZKPVerifier.ZKPRequestExtended memory request = _getMainStorage().requests[requestId];
bytes4 selector = request.validator.verify.selector;
bytes memory data = abi.encodePacked(
selector,
Expand Down

0 comments on commit 90ecccf

Please sign in to comment.