Overview
config_freeze.rs implements freeze/unfreeze but these functions are never called from set_config(). The freeze flag has zero gating effect.
Evidence
File: apexchainx_calculator/src/config_freeze.rs — implements freeze logic
File: apexchainx_calculator/src/lib.rs — set_config() has no freeze check
Impact
- Admin who calls freeze_config() has false sense of security
- Config can still be changed despite freeze flag being set
Proposed Solution
Add require_not_frozen() check in set_config(). Expose freeze/unfreeze as admin-gated methods. Emit events.
Acceptance Criteria
File Map
apexchainx_calculator/src/config_freeze.rs
apexchainx_calculator/src/lib.rs
apexchainx_calculator/src/tests.rs
Testing Strategy
Unit: Freeze → attempt set_config → verify rejection. Unfreeze → verify success.
Labels: bug, high, security
Priority: High
Difficulty: Intermediate
Estimated Effort: 3h
Overview
config_freeze.rsimplements freeze/unfreeze but these functions are never called fromset_config(). The freeze flag has zero gating effect.Evidence
File:
apexchainx_calculator/src/config_freeze.rs— implements freeze logicFile:
apexchainx_calculator/src/lib.rs— set_config() has no freeze checkImpact
Proposed Solution
Add require_not_frozen() check in set_config(). Expose freeze/unfreeze as admin-gated methods. Emit events.
Acceptance Criteria
File Map
apexchainx_calculator/src/config_freeze.rsapexchainx_calculator/src/lib.rsapexchainx_calculator/src/tests.rsTesting Strategy
Unit: Freeze → attempt set_config → verify rejection. Unfreeze → verify success.
Labels: bug, high, security
Priority: High
Difficulty: Intermediate
Estimated Effort: 3h