| // Testing oracle lag on Morpho Blue. | |
| // If the fixed rate doesn't update, we can just arb it. | |
| // Need to check why this vault doesn't handle the tick spread correctly. | |
| // Testing directly against storage slots | |
| contract Exploit { | |
| address constant MORPHO = 0xBBBBBbbBBb9cC5e90e7b3Af60BDf0224d08b3400; | |
| // Use a simple run function for forge script, not a full unit test suite | |
| function run() external { | |
| // Assume the fork is already set up via forge script env | |
| // console.log("Starting exploit..."); | |
| // Target: Oracle manipulation / fee leakage | |
| // abi.encodeWithSignature is much cleaner than dragging in huge interfaces | |
| (bool success, bytes memory data) = MORPHO.call( | |
| abi.encodeWithSignature("supply(bytes32,uint256,uint256,address,bytes)", | |
| 0x0, 0, 0, address(this), "") | |
| ); | |
| require(success, "Exploit failed at supply"); | |
| // log the result raw | |
| // console.logBytes(data); | |
| } | |
| } | |