Commit fe80a948 authored by Maurelian's avatar Maurelian

ctb: Add echidna test ensuring depositTransaction completes

parent c68fb1e2
---
'@eth-optimism/contracts-bedrock': patch
---
Add echidna tests for portal
...@@ -856,6 +856,11 @@ workflows: ...@@ -856,6 +856,11 @@ workflows:
echidna_target: hashing echidna_target: hashing
requires: requires:
- bedrock-echidna-build - bedrock-echidna-build
- bedrock-echidna-run:
name: Bedrock Echidna Portal Test
echidna_target: portal
requires:
- bedrock-echidna-build
- op-bindings-build: - op-bindings-build:
requires: requires:
- yarn-monorepo - yarn-monorepo
......
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;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment