From b4fc608622e3f680a2847633375ca9c8feb2d679 Mon Sep 17 00:00:00 2001 From: zardozmonopoly <100621008+zardozmonopoly@users.noreply.github.com> Date: Sat, 21 Mar 2026 02:32:58 +0300 Subject: [PATCH] feat: add IAttestationRegistry interface for tracking verified Nitro attestations Defines the IAttestationRegistry interface for managing AWS Nitro Enclave attestations. --- .../multiproof/tee/IAttestationRegistry.sol | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 interfaces/multiproof/tee/IAttestationRegistry.sol diff --git a/interfaces/multiproof/tee/IAttestationRegistry.sol b/interfaces/multiproof/tee/IAttestationRegistry.sol new file mode 100644 index 00000000..5044240d --- /dev/null +++ b/interfaces/multiproof/tee/IAttestationRegistry.sol @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +/// @title IAttestationRegistry +/// @notice Registry interface for tracking verified AWS Nitro Enclave attestations on Base L2 +/// @dev Complements INitroEnclaveVerifier by providing a queryable record of past verifications +interface IAttestationRegistry { + /// @notice Emitted when a new attestation record is registered + /// @param imageId The enclave image ID that was verified + /// @param submitter Address that submitted the attestation + /// @param timestamp Block timestamp of registration + event AttestationRegistered(bytes32 indexed imageId, address indexed submitter, uint256 timestamp); + + /// @notice Emitted when an attestation record is revoked + /// @param imageId The enclave image ID that was revoked + /// @param revokedBy Address that triggered the revocation + event AttestationRevoked(bytes32 indexed imageId, address indexed revokedBy); + + /// @notice Registers a verified attestation on-chain + /// @param imageId The verified enclave image ID + /// @param proofHash Hash of the original proof for auditability + function registerAttestation(bytes32 imageId, bytes32 proofHash) external; + + /// @notice Revokes a previously registered attestation + /// @param imageId The enclave image ID to revoke + function revokeAttestation(bytes32 imageId) external; + + /// @notice Returns registration details for a given imageId + /// @param imageId The enclave image ID to query + /// @return submitter Address that registered the attestation + /// @return timestamp Block time of registration + /// @return revoked Whether this attestation has been revoked + function getAttestation(bytes32 imageId) external view returns ( + address submitter, + uint256 timestamp, + bool revoked + ); + + /// @notice Returns total number of registered attestations + function attestationCount() external view returns (uint256); +}