// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; // interfaces import {Attestation} from "@ethereum-attestation-service/eas-contracts/Common.sol"; import {AttestationRequest, RevocationRequest} from "@ethereum-attestation-service/eas-contracts/IEAS.sol"; // libraries // contracts interface IAttestationRegistryBase { /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ /* ERRORS */ /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ error NotPayable(); error InsufficientBalance(); error InvalidRevocation(); error InvalidAttestation(); error InvalidAttestationSchema(); error InvalidExpirationTime(); error Irrevocable(); error InvalidRevoker(); } /// @title IAttestationRegistry Interface /// @notice Interface for managing attestations in the registry interface IAttestationRegistry is IAttestationRegistryBase { /// @notice Creates a new attestation /// @param request The attestation request containing schema ID and attestation data /// @return The UID of the created attestation function attest(AttestationRequest calldata request) external payable returns (bytes32); /// @notice Revokes an existing attestation /// @param request The revocation request containing schema ID and attestation data function revoke(RevocationRequest calldata request) external payable; /// @notice Retrieves an attestation by its UID /// @param uid The unique identifier of the attestation /// @return The attestation data structure function getAttestation(bytes32 uid) external view returns (Attestation memory); }