The contract uses OpenZeppelin's deprecated safeApprove() function in multiple locations, which can lead to failed transactions and potential token approval issues.
In GmxProxy.sol, the contract uses the deprecated safeApprove() function:
Similarly in ParaSwap.sol:
The safeApprove() function has been deprecated by OpenZeppelin due to known issues with certain tokens. It can fail when:
Trying to change an existing non-zero approval
Working with tokens that don't revert on failed approvals
Failed transactions due to approval issues
Potential blocking of critical operations
Unnecessary gas consumption from failed transactions
Possible permanent blocking of token approvals requiring contract redeployment
https://github.com/code-423n4/2024-07-reserve-validation/issues/175
Replace safeApprove() with safeIncreaseAllowance() or safeDecreaseAllowance():
USDT or other unusual ERC20 tokens: out of scope. For the other reports: No proof that the allowance won't be consumed by the receiver.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.