Pre-auditThree days of senior audit time for $1,500, credited in full toward your Zealynx audit.3 audit days, credited toward your auditSee how →
L-14·

Strategy cannot be added after removal in AdminOperationalTreasury

Not reportedoptionsleverageblack-scholes
TL;DR

Admin Can not add already removed strategy, because addStrategy function calls connect in strategy but it will revert since can be called once:

Severity
LOW
Method
MManual review
CAT.

Admin Can not add already removed strategy, because addStrategy function calls connect in strategy but it will revert since can be called once:

solidity
function addStrategy(IStrategy s) external override onlyRole(AccessControlStorage.DEFAULT_ADMIN_ROLE) {
OperationalTreasuryStorage.SetUp storage setUp = OperationalTreasuryStorage.layout().setUp;
if (setUp.acceptedStrategy[s]) revert StrategyAlreadyAdded();
_connect(s, setUp);
}
function _connect(IStrategy s, OperationalTreasuryStorage.SetUp storage strg) internal {
s.connect();
strg.acceptedStrategy[s] = true;
}

connect function in AdminStrategy contract can be called only once:

solidity
function connect() external override {
StrategyStorage.SetUp storage setUp = StrategyStorage.layout().setUp;
IOperationalTreasury treasury_ = IOperationalTreasury(msg.sender);
if (address(setUp.treasury) != address(0)) revert TreasuryAlreadySet();
setUp.treasury = treasury_;
}
02Section · Report provenance

Report provenance

Published by Pashov Audit Group, with Carlos (Bloqarl) participating as a contractor. The source report states that its fixes review was not fully completed; no final remediation disposition is recorded for this finding. Read the full report.

L-14