Omniscia Mean Finance Audit
RunSwap Manual Review Findings
RunSwap Manual Review Findings
RSP-01M: Potential Mismatch of Contract Functionality
| Type | Severity | Location |
|---|---|---|
| Standard Conformity | ![]() | RunSwap.sol:L28 |
Description:
The runSwap documentation @notice indicates that the "...input tokens are expected to be on the contract before this function is executed.", however, the function is set as payable permitting native funds to be transferred along with the call.
Example:
solidity/contracts/extensions/RunSwap.sol
21/**22 * @notice Executes a swap with the given swapper. The input tokens are expected to be on the contract before23 * this function is executed. If the swap doesn't include a transfer, then the swapped tokens will be left24 * on the contract25 * @dev This function can only be executed with swappers that are allowlisted26 * @param _parameters The parameters for the swap27 */28function runSwap(RunSwapParams calldata _parameters) public payable virtual onlyAllowlisted(_parameters.swapper) {Recommendation:
We advise the payable modifier to be omitted from the codebase or the documentation to be updated depending on the intended behaviour of the RunSwap contract.
Alleviation:
The Mean Finance team considered this exhibit but opted to retain the payable modifier to ensure that the function calls can be bundled with other payable calls via a multi-caller. As a result, we consider this exhibit nullified as it is desirable behaviour.
