// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import "@openzeppelin/contracts/access/Ownable.sol"; /// Tiny Ownable contract used to exercise AereFeeMonetizationV2's owner() control /// path: its Ownable owner (the deployer) may register it; nobody else may. contract OwnableProbe is Ownable { // owner = deployer (set by OZ Ownable constructor). } interface IFeeMonRegister { function register(address contractAddr, address payoutAddr) external returns (uint256); } /// Self-registering probe: calls register(address(this), payout) so it registers /// ITSELF, exercising the msg.sender == contractAddr control path. contract SelfRegisteringProbe { function selfRegister(address feeMon, address payout) external returns (uint256) { return IFeeMonRegister(feeMon).register(address(this), payout); } }