Summary
The stabilityPool calls the `depositRAACFromPool` function and transfers some amount of RAACTokens to the contract, after the RAACTokens are sent, the tokens are meant to be distributed accross different managers based on their different allocations, but the function was not fully implemented.
In the `StabilityPool::depositRAACFromPool()` function, some amount of RAACTokens are sent by the stabilityPool to the `address(this)`, with no other functionality to allocate the tokens approptiately accross to the different managers. without the complete implementation, when the stabilityPool sends raacTokens to the contract using the `depositRAACFromPool` function the RAACTokens will remain locked in the contract.
function depositRAACFromPool(uint256 amount) external onlyLiquidityPool validAmount(amount) {
uint256 preBalance = raacToken.balanceOf(address(this));
raacToken.safeTransferFrom(msg.sender, address(this), amount);
uint256 postBalance = raacToken.balanceOf(address(this));
if (postBalance != preBalance + amount) revert InvalidTransfer();
emit RAACDepositedFromPool(msg.sender, amount);
}
Impact
The Managers will not get any Tokens from the pool, even after some amount of tokens are already allocated to them.
Tools Used
manual analysis
Recommendations
The `depositRAACFromPool` function should be completed and correctly implemented.