pragma solidity 0.8.15; import { OptimismPortal } from "../L1/OptimismPortal.sol"; import { L2OutputOracle } from "../L1/L2OutputOracle.sol"; import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol"; contract EchidnaFuzzOptimismPortal { OptimismPortal internal portal; bool internal failedToComplete; constructor() { portal = new OptimismPortal(L2OutputOracle(address(0)), 10); } // A test intended to identify any unexpected halting conditions function testDepositTransactionCompletes( address _to, uint256 _mint, uint256 _value, uint64 _gasLimit, bool _isCreation, bytes memory _data ) public payable { failedToComplete = true; require(!_isCreation || _to == address(0), "EchidnaFuzzOptimismPortal: invalid test case."); portal.depositTransaction{ value: _mint }(_to, _value, _gasLimit, _isCreation, _data); failedToComplete = false; } function echidna_deposit_completes() public view returns (bool) { return !failedToComplete; } }