diff --git a/contracts/contracts/IdentityVerificationHubImplV2.sol b/contracts/contracts/IdentityVerificationHubImplV2.sol index 56d49dd59..f90866521 100644 --- a/contracts/contracts/IdentityVerificationHubImplV2.sol +++ b/contracts/contracts/IdentityVerificationHubImplV2.sol @@ -101,6 +101,28 @@ contract IdentityVerificationHubImplV2 is ImplRoot { */ event DscCircuitVerifierUpdated(uint256 typeId, address verifier); + /** + * @notice Emitted when a verification is performed. + * @param requestor The contract that initiated the verification request. + * @param contractVersion The contract version used for verification output formatting. + * @param attestationId The attestation identifier (E_PASSPORT or EU_ID_CARD). + * @param destChainId The destination chain ID. + * @param configId The configuration ID. + * @param userIdentifier The user identifier. + * @param output The formatted verification output containing proof results. + * @param userDataToPass The user data passed through to the verification result handler. + */ + event DisclosureVerified( + address indexed requestor, + uint8 indexed contractVersion, + bytes32 indexed attestationId, + uint256 destChainId, + bytes32 configId, + uint256 userIdentifier, + bytes output, + bytes userDataToPass + ); + // ==================================================== // Errors // ==================================================== @@ -311,14 +333,28 @@ contract IdentityVerificationHubImplV2 is ImplRoot { (SelfStructs.HubInputHeader memory header, bytes calldata proofData) = _decodeInput(baseVerificationInput); // Perform verification and get output along with user data - (bytes memory output, uint256 destChainId, bytes memory userDataToPass) = _executeVerificationFlow( - header, - proofData, - userContextData - ); + ( + bytes memory output, + uint256 destChainId, + bytes memory userDataToPass, + bytes32 configId, + uint256 userIdentifier + ) = _executeVerificationFlow(header, proofData, userContextData); // Use destChainId and userDataToPass returned from _executeVerificationFlow _handleVerificationResult(destChainId, output, userDataToPass); + + // Emit verification event for tracking + emit DisclosureVerified( + msg.sender, + header.contractVersion, + header.attestationId, + destChainId, + configId, + userIdentifier, + output, + userDataToPass + ); } /** @@ -552,14 +588,19 @@ contract IdentityVerificationHubImplV2 is ImplRoot { SelfStructs.HubInputHeader memory header, bytes memory proofData, bytes calldata userContextData - ) internal returns (bytes memory output, uint256 destChainId, bytes memory userDataToPass) { - bytes32 configId; - uint256 userIdentifier; + ) + internal + returns ( + bytes memory output, + uint256 destChainId, + bytes memory userDataToPass, + bytes32 configId, + uint256 userIdentifier + ) + { bytes calldata remainingData; { - uint256 _destChainId; - (configId, _destChainId, userIdentifier, remainingData) = _decodeUserContextData(userContextData); - destChainId = _destChainId; + (configId, destChainId, userIdentifier, remainingData) = _decodeUserContextData(userContextData); } { diff --git a/contracts/contracts/libraries/CustomVerifier.sol b/contracts/contracts/libraries/CustomVerifier.sol index 1152589a1..43c4b39cf 100644 --- a/contracts/contracts/libraries/CustomVerifier.sol +++ b/contracts/contracts/libraries/CustomVerifier.sol @@ -4,7 +4,6 @@ pragma solidity 0.8.28; import {CircuitAttributeHandlerV2} from "./CircuitAttributeHandlerV2.sol"; import {AttestationId} from "../constants/AttestationId.sol"; import {SelfStructs} from "./SelfStructs.sol"; -import {Formatter} from "./Formatter.sol"; import {GenericFormatter} from "./GenericFormatter.sol"; library CustomVerifier { diff --git a/contracts/package.json b/contracts/package.json index d4474fbca..54518ce8f 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -116,7 +116,7 @@ "mocha": "^10.7.3", "mochawesome": "^7.1.3", "prettier": "3.5.3", - "prettier-plugin-solidity": "^2.0.0", + "prettier-plugin-solidity": "^2.1.0", "solidity-coverage": "^0.8.14", "tsup": "^8.5.0", "typechain": "^8.3.2", diff --git a/yarn.lock b/yarn.lock index 67b021df7..46760b3bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4847,7 +4847,7 @@ __metadata: poseidon-lite: "npm:^0.3.0" poseidon-solidity: "npm:^0.0.5" prettier: "npm:3.5.3" - prettier-plugin-solidity: "npm:^2.0.0" + prettier-plugin-solidity: "npm:^2.1.0" snarkjs: "npm:^0.7.4" solidity-coverage: "npm:^0.8.14" tsup: "npm:^8.5.0" @@ -21500,7 +21500,7 @@ __metadata: languageName: node linkType: hard -"prettier-plugin-solidity@npm:^2.0.0": +"prettier-plugin-solidity@npm:^2.1.0": version: 2.1.0 resolution: "prettier-plugin-solidity@npm:2.1.0" dependencies: