Incorrect parameters
Some functions and integrations receive the wrong parameters.\\nHere, this does not work:\\n```\\n      } else if (p == uint8(Principals.Notional)) {\\n            // Principal token must be approved for Notional's lend\\n            ILender(lender).approve(address(0), address(0), address(0), a);\\n```\\n\\nbecause it basically translates to:\\n```\\n  } else if (p == uint8(Principals.Notional)) {\\n   if (a != address(0)) {\\n        Safe.approve(IERC20(address(0)), a, type(uint256).max);\\n  }\\n```\\n\\nIt tries to approve a non-existing token. It should approve the underlying token and Notional's token contract.\\nAnother issue is with Tempus here:\\n```\\n        // Swap on the Tempus Router using the provided market and params\\n        ITempus(controller).depositAndFix(x, lent, true, r, d);\\n\\n        // Calculate the amount of Tempus principal tokens received after the deposit\\n        uint256 received = IERC20(principal).balanceOf(address(this)) - start;\\n\\n        // Verify that a minimum number of principal tokens were received\\n        if (received < r) {\\n            revert Exception(11, received, r, address(0), address(0));\\n        }\\n```\\n\\nIt passes `r` as a slippage parameter and later checks that received >= `r`. However, in Tempus this parameter is not exactly the minimum amount to receive, it is the ratio which is calculated as follows:\\n```\\n  /// @param minTYSRate Minimum exchange rate of TYS (denominated in TPS) to receive in exchange for TPS\\n    function depositAndFix(\\n        ITempusAMM tempusAMM,\\n        uint256 tokenAmount,\\n        bool isBackingToken,\\n        uint256 minTYSRate,\\n        uint256 deadline\\n    ) external payable nonReentrant {\\n// rest of code\\n  uint256 minReturn = swapAmount.mulfV(minTYSRate, targetPool.backingTokenONE());\\n```\\n
Review all the integrations and function invocations, and make sure the appropriate parameters are passed.
Inaccurate parameter values may lead to protocol misfunction down the road, e.g. insufficient approval or unpredicted slippage.
```\\n      } else if (p == uint8(Principals.Notional)) {\\n            // Principal token must be approved for Notional's lend\\n            ILender(lender).approve(address(0), address(0), address(0), a);\\n```\\n