Lender#lend for Sense has mismatched decimals
The decimals of the Sense principal token don't match the decimals of the ERC5095 vault it mints shares to. This can be abused on the USDC market to mint a large number of shares to steal yield from all other users.\\n```\\n    uint256 received;\\n    {\\n        // Get the starting balance of the principal token\\n        uint256 starting = token.balanceOf(address(this));\\n\\n        // Swap those tokens for the principal tokens\\n        ISensePeriphery(x).swapUnderlyingForPTs(adapter, s, lent, r);\\n\\n        // Calculate number of principal tokens received in the swap\\n        received = token.balanceOf(address(this)) - starting;\\n\\n        // Verify that we received the principal tokens\\n        if (received < r) {\\n            revert Exception(11, 0, 0, address(0), address(0));\\n        }\\n    }\\n\\n    // Mint the Illuminate tokens based on the returned amount\\n    IERC5095(principalToken(u, m)).authMint(msg.sender, received);\\n```\\n\\nSense principal tokens for DIA and USDC are 8 decimals to match the decimals of the underlying cTokens, cUSDC and cDAI. The decimals of the ERC5095 vault matches the underlying of the vault. This creates a disparity in decimals that aren't adjusted for in Lender#lend for Sense, which assumes that the vault and Sense principal tokens match in decimals. In the example of USDC the ERC5095 will be 6 decimals but the sense token will be 8 decimals. Each 1e6 USDC token will result in ~1e8 Sense tokens being received. Since the contract mints based on the difference in the number of sense tokens before and after the call, it will mint ~100x the number of vault shares than it should. Since the final yield is distributed pro-rata to the number of shares, the user who minted with sense will be entitled to much more yield than they should be and everyone else will get substantially less.
Issue Lender#lend for Sense has mismatched decimals\\nQuery the decimals of the Sense principal and use that to adjust the decimals to match the decimals of the vault.
User can mint large number of shares to steal funds from other users
```\\n    uint256 received;\\n    {\\n        // Get the starting balance of the principal token\\n        uint256 starting = token.balanceOf(address(this));\\n\\n        // Swap those tokens for the principal tokens\\n        ISensePeriphery(x).swapUnderlyingForPTs(adapter, s, lent, r);\\n\\n        // Calculate number of principal tokens received in the swap\\n        received = token.balanceOf(address(this)) - starting;\\n\\n        // Verify that we received the principal tokens\\n        if (received < r) {\\n            revert Exception(11, 0, 0, address(0), address(0));\\n        }\\n    }\\n\\n    // Mint the Illuminate tokens based on the returned amount\\n    IERC5095(principalToken(u, m)).authMint(msg.sender, received);\\n```\\n