ArchonArchon
Public verified reportRun your own audit

Archon public report

AuditAttestationRegistry

Mantle Mainnet · scan depth quick · generated 6/21/2026, 6:45:48 PM

Risk Score

29

Archon completed a read-only Mantle Mainnet audit of AuditAttestationRegistry and found 5 deterministic findings. The highest-priority issue is Events Access, with risk score 29/100 based on severity-weighted findings. The `transferOwnership` function lacks an event emission, making it difficult for off-chain monitors to track ownership changes on Mantle. Emitting an event would improve transparency and auditability. Review the recommended fixes and run regression tests before deployment.

Models used: Tencent Cloud TokenHub (deepseek-v4-pro) — AI reasoning served on Tencent Cloud TokenHub.

Findings

low: 1high: 0info: 3medium: 1critical: 0
SeverityFindingLocationConfidence
low

Events Access

The `transferOwnership` function lacks an event emission, making it difficult for off-chain monitors to track ownership changes on Mantle. Emitting an event would improve transparency and auditability.

AuditAttestationRegistry.sol:63100%
info

Mark never-changing value constant or immutable

The `owner` state variable is assigned once in the constructor and never updated. It can be marked `immutable` to save gas on every access, as reading from contract code is cheaper than storage.

AuditAttestationRegistry.sol:23100%
info

Cache repeated storage read

In the constructor, `msg.sender` is read twice: once for the assignment to `owner` and once to set `isAuditor[msg.sender]`. Caching `msg.sender` in a local variable avoids a redundant storage read, improving gas efficiency.

AuditAttestationRegistry.sol:5290%
info

Cache repeated storage read

The code reads the storage variable `_history[auditedContract]` twice within the same transaction: once to push a new attestation and once implicitly to obtain the length. Caching the storage array reference can save gas by avoiding a redundant `sload`.

AuditAttestationRegistry.sol:83100%
medium

Bitmap-pack boolean flags

The `isAuditor` mapping uses a `bool` value type that occupies an entire storage slot per key. On Mantle, where storage operations are expensive, this pattern can be optimized by packing multiple boolean flags into a single `uint256` bitmask, reducing storage footprint and gas costs for writes and reads.

AuditAttestationRegistry.sol:2490%