The referenced statements will interact with the veRwaNFT known implementation via low-level call operations rather than casting the veRwaNFT to an interface and invoking the methods that way.
Example:
(bool success,) = address(veRwaNFT).call(
abi.encodeWithSignature("migrateBatch(address,uint256[],uint256[])", to, amounts, durations)
);
if (!success) revert MigrationFailed(SEND_NFT_BATCH);
Recommendation:
We advise the code to declare a proper interface for the migration methods and for the RealReceiver to properly use it, optimizing its legibility greatly.
If graceful error handling is desired, the try-catch paradigm can be adopted to achieve the same in a highly legible manner.
RRR-01C: Improper Low-Level Interactions
Description:
The referenced statements will interact with the
veRwaNFT
known implementation via low-levelcall
operations rather than casting theveRwaNFT
to aninterface
and invoking the methods that way.Example:
Recommendation:
We advise the code to declare a proper
interface
for the migration methods and for theRealReceiver
to properly use it, optimizing its legibility greatly.If graceful error handling is desired, the try-catch paradigm can be adopted to achieve the same in a highly legible manner.