// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.17; import "./IIdentity.sol"; interface IClaimIssuer is IIdentity { /** * @dev Emitted when a claim is revoked. * * Specification: MUST be triggered when revoking a claim. */ event ClaimRevoked(bytes indexed signature); /** * @dev Revoke a claim previously issued, the claim is no longer considered as valid after revocation. * @notice will fetch the claim from the identity contract (unsafe). * @param _claimId the id of the claim * @param _identity the address of the identity contract * @return isRevoked true when the claim is revoked */ function revokeClaim(bytes32 _claimId, address _identity) external returns(bool); /** * @dev Revoke a claim previously issued, the claim is no longer considered as valid after revocation. * @param signature the signature of the claim */ function revokeClaimBySignature(bytes calldata signature) external; /** * @dev Returns revocation status of a claim. * @param _sig the signature of the claim * @return isRevoked true if the claim is revoked and false otherwise */ function isClaimRevoked(bytes calldata _sig) external view returns (bool); /** * @dev Checks if a claim is valid. * @param _identity the identity contract related to the claim * @param claimTopic the claim topic of the claim * @param sig the signature of the claim * @param data the data field of the claim * @return claimValid true if the claim is valid, false otherwise */ function isClaimValid( IIdentity _identity, uint256 claimTopic, bytes calldata sig, bytes calldata data) external view returns (bool); }