Omniscia Keyko Audit

TreasuryImplementation Manual Review Findings

TreasuryImplementation Manual Review Findings

TIN-01M: Inexistent Initialization of Re-Entrancy Guard

Description:

The re-entrancy guard contract is never initialized in the initialize call chain, thus causing it to be improperly set up.

Example:

contracts/token/TreasuryImplementation.sol
36/**
37 * @notice Used to initialize a new Treasury contract
38 *
39 * @param communityAdmin_ Address of the CommunityAdmin contract
40 */
41function initialize(ICommunityAdmin communityAdmin_) public override initializer {
42 __Ownable_init();
43
44 _communityAdmin = communityAdmin_;
45}

Recommendation:

We advise it to be properly initialized by invoking its __ReentrancyGuard_init function within the initialize function of the TreasuryImplementation contract.

Alleviation:

The re-entrancy guard is now properly initialised in the initialize call chain.