Summary
The escrow contract (soroban/src/escrow_contract.rs) handles asset locking and release — the highest-value flow in the system. We already have a circuit_breaker module; integrating it into escrow would let us halt withdrawals instantly if an anomaly or exploit is detected, limiting blast radius.
What we'd like
- Add a circuit-breaker / pause check to the sensitive escrow entry points (release/withdraw)
- When tripped, those paths should cleanly revert with a clear error while safe read paths keep working
- An authorized role can trip and reset the breaker
Where to look
soroban/src/escrow_contract.rs — the flows to guard
soroban/src/circuit_breaker.rs and submission_pause.rs — existing pause/breaker primitives to reuse
soroban/src/acl.rs — access control for who may trip/reset
Acceptance criteria
Notes
Reuse the existing breaker module rather than adding a parallel mechanism — consistency matters for auditing.
Summary
The escrow contract (
soroban/src/escrow_contract.rs) handles asset locking and release — the highest-value flow in the system. We already have acircuit_breakermodule; integrating it into escrow would let us halt withdrawals instantly if an anomaly or exploit is detected, limiting blast radius.What we'd like
Where to look
soroban/src/escrow_contract.rs— the flows to guardsoroban/src/circuit_breaker.rsandsubmission_pause.rs— existing pause/breaker primitives to reusesoroban/src/acl.rs— access control for who may trip/resetAcceptance criteria
Notes
Reuse the existing breaker module rather than adding a parallel mechanism — consistency matters for auditing.