Overview
Freeze is a standalone condition that blocks capture on frozen payments. It manages freeze and unfreeze state with configurable authorization and an optional duration-based auto expiry. Type: Per-deployment via FreezeFactoryArchitecture
- Implements
ICondition - Freeze/unfreeze authorization via
IConditioncontracts (passed to constructor) - Optionally linked to EscrowPeriod to restrict freezing to during the escrow window
Logic
Deployment
Deploy via FreezeFactory:Composition Patterns
Freeze Duration
- Payment frozen at time
T - Freeze expires at
T + freezeDuration - After expiry, payment is automatically unfrozen
- Can be manually unfrozen earlier by the authorized party
- Duration of
0means permanent freeze (until manually unfrozen)
| Duration | Use Case |
|---|---|
| 1 day | Quick investigation period |
| 3 days | Standard fraud check window |
| 5-7 days | Extended investigation |
| 14+ days | Complex dispute resolution |
Use Cases
- Buyer protection: Payer freezes suspicious payments during escrow
- Dispute holds: Arbiter freezes payments pending investigation
- Compliance: Compliance officer freezes flagged transactions
Gas
Cost: ~20k gas per freeze/unfreeze (oneSSTORE). The check() call is a view with one SLOAD.
Next Steps
EscrowPeriod
Add time-based capture restrictions.
Factories
Deploy Freeze via FreezeFactory.
