Skip to content

Commit 4db3734

Browse files
authored
Add DisclosureVerified event for comprehensive verification tracking (#945)
* Add VerificationPerformed event to track verification calls - Added VerificationPerformed event with comprehensive tracking fields - Captures requestor contract, version, attestation ID, chain ID, config ID, user identifier, output, and user data - Enhanced _executeVerificationFlow to return additional tracking data - Event emission placed after verification completion for accurate tracking * chore: run formatter * chore: rename verify event name to DisclosureVerified
1 parent 0518217 commit 4db3734

File tree

4 files changed

+55
-15
lines changed

4 files changed

+55
-15
lines changed

contracts/contracts/IdentityVerificationHubImplV2.sol

Lines changed: 52 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,28 @@ contract IdentityVerificationHubImplV2 is ImplRoot {
101101
*/
102102
event DscCircuitVerifierUpdated(uint256 typeId, address verifier);
103103

104+
/**
105+
* @notice Emitted when a verification is performed.
106+
* @param requestor The contract that initiated the verification request.
107+
* @param contractVersion The contract version used for verification output formatting.
108+
* @param attestationId The attestation identifier (E_PASSPORT or EU_ID_CARD).
109+
* @param destChainId The destination chain ID.
110+
* @param configId The configuration ID.
111+
* @param userIdentifier The user identifier.
112+
* @param output The formatted verification output containing proof results.
113+
* @param userDataToPass The user data passed through to the verification result handler.
114+
*/
115+
event DisclosureVerified(
116+
address indexed requestor,
117+
uint8 indexed contractVersion,
118+
bytes32 indexed attestationId,
119+
uint256 destChainId,
120+
bytes32 configId,
121+
uint256 userIdentifier,
122+
bytes output,
123+
bytes userDataToPass
124+
);
125+
104126
// ====================================================
105127
// Errors
106128
// ====================================================
@@ -311,14 +333,28 @@ contract IdentityVerificationHubImplV2 is ImplRoot {
311333
(SelfStructs.HubInputHeader memory header, bytes calldata proofData) = _decodeInput(baseVerificationInput);
312334

313335
// Perform verification and get output along with user data
314-
(bytes memory output, uint256 destChainId, bytes memory userDataToPass) = _executeVerificationFlow(
315-
header,
316-
proofData,
317-
userContextData
318-
);
336+
(
337+
bytes memory output,
338+
uint256 destChainId,
339+
bytes memory userDataToPass,
340+
bytes32 configId,
341+
uint256 userIdentifier
342+
) = _executeVerificationFlow(header, proofData, userContextData);
319343

320344
// Use destChainId and userDataToPass returned from _executeVerificationFlow
321345
_handleVerificationResult(destChainId, output, userDataToPass);
346+
347+
// Emit verification event for tracking
348+
emit DisclosureVerified(
349+
msg.sender,
350+
header.contractVersion,
351+
header.attestationId,
352+
destChainId,
353+
configId,
354+
userIdentifier,
355+
output,
356+
userDataToPass
357+
);
322358
}
323359

324360
/**
@@ -552,14 +588,19 @@ contract IdentityVerificationHubImplV2 is ImplRoot {
552588
SelfStructs.HubInputHeader memory header,
553589
bytes memory proofData,
554590
bytes calldata userContextData
555-
) internal returns (bytes memory output, uint256 destChainId, bytes memory userDataToPass) {
556-
bytes32 configId;
557-
uint256 userIdentifier;
591+
)
592+
internal
593+
returns (
594+
bytes memory output,
595+
uint256 destChainId,
596+
bytes memory userDataToPass,
597+
bytes32 configId,
598+
uint256 userIdentifier
599+
)
600+
{
558601
bytes calldata remainingData;
559602
{
560-
uint256 _destChainId;
561-
(configId, _destChainId, userIdentifier, remainingData) = _decodeUserContextData(userContextData);
562-
destChainId = _destChainId;
603+
(configId, destChainId, userIdentifier, remainingData) = _decodeUserContextData(userContextData);
563604
}
564605

565606
{

contracts/contracts/libraries/CustomVerifier.sol

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ pragma solidity 0.8.28;
44
import {CircuitAttributeHandlerV2} from "./CircuitAttributeHandlerV2.sol";
55
import {AttestationId} from "../constants/AttestationId.sol";
66
import {SelfStructs} from "./SelfStructs.sol";
7-
import {Formatter} from "./Formatter.sol";
87
import {GenericFormatter} from "./GenericFormatter.sol";
98

109
library CustomVerifier {

contracts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@
116116
"mocha": "^10.7.3",
117117
"mochawesome": "^7.1.3",
118118
"prettier": "3.5.3",
119-
"prettier-plugin-solidity": "^2.0.0",
119+
"prettier-plugin-solidity": "^2.1.0",
120120
"solidity-coverage": "^0.8.14",
121121
"tsup": "^8.5.0",
122122
"typechain": "^8.3.2",

yarn.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4847,7 +4847,7 @@ __metadata:
48474847
poseidon-lite: "npm:^0.3.0"
48484848
poseidon-solidity: "npm:^0.0.5"
48494849
prettier: "npm:3.5.3"
4850-
prettier-plugin-solidity: "npm:^2.0.0"
4850+
prettier-plugin-solidity: "npm:^2.1.0"
48514851
snarkjs: "npm:^0.7.4"
48524852
solidity-coverage: "npm:^0.8.14"
48534853
tsup: "npm:^8.5.0"
@@ -21500,7 +21500,7 @@ __metadata:
2150021500
languageName: node
2150121501
linkType: hard
2150221502

21503-
"prettier-plugin-solidity@npm:^2.0.0":
21503+
"prettier-plugin-solidity@npm:^2.1.0":
2150421504
version: 2.1.0
2150521505
resolution: "prettier-plugin-solidity@npm:2.1.0"
2150621506
dependencies:

0 commit comments

Comments
 (0)