

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
| Severity | Finding | Location | Confidence |
|---|---|---|---|
| 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:63 | 100% |
| 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:23 | 100% |
| 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:52 | 90% |
| 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:83 | 100% |
| 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:24 | 90% |

