ArchonArchon
Public verified reportRun your own audit

Archon public report

ApogeeEscrow

Mantle Mainnet · scan depth deep · generated 7/3/2026, 10:42:43 AM

Risk Score

41

Archon completed a read-only Mantle Mainnet audit of ApogeeEscrow and found 8 deterministic findings. The highest-priority issue is Reentrancy Events, with risk score 41/100 based on severity-weighted findings. Potential reentrancy issue due to external call before state change. Review the recommended fixes and run regression tests before deployment.

Models used: Tencent Cloud TokenHub (deepseek-v4-pro), OpenAI (gpt-4o-mini) — AI reasoning served on Tencent Cloud TokenHub.

Findings

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

Reentrancy Events

Potential reentrancy issue due to external call before state change.

ApogeeEscrow.sol:9080%
info

Low Level Calls

The use of low-level calls can introduce risks such as reentrancy attacks.

ApogeeEscrow.sol:9070%
low

Immutable States

The `arbiter` address is set once during construction and cannot be updated. If the arbiter becomes compromised, unreachable, or is an EOA that loses its private key, the arbitration functionality becomes permanently unavailable, potentially locking the escrow in a disputed state.

ApogeeEscrow.sol:1470%
low

Immutable States

The `buyer` and `seller` addresses are immutable once set in the constructor. This design is intentional for a simple escrow, but it means that a mis‑deployed contract (wrong address) or future identity loss cannot be corrected. Funds may become stuck if the designated receiver is inaccessible.

ApogeeEscrow.sol:1360%
low

Immutable States

Immutable States was detected from deterministic analysis at ApogeeEscrow.sol:12. The issue should be reviewed because it can affect contract correctness, user balances, or operational cost depending on how the function is used.

ApogeeEscrow.sol:1274%
medium

Pack small storage variables into fewer slots

Storage variables can be packed to optimize gas usage.

ApogeeEscrow.sol:1470%
info

Replace long revert string with custom error

The revert string "Seller cannot be buyer" in the constructor is replaced with a custom error to reduce deployment gas costs on Mantle.

ApogeeEscrow.sol:4990%
info

Use != 0 for unsigned non-zero checks

Replace `msg.value > 0` with `msg.value != 0` for unsigned integer comparison to save gas on Mantle.

ApogeeEscrow.sol:5895%