gitextract_p1t8o229/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ └── workflows/ │ ├── build-test-lint-contracts.yml │ ├── dockerhub-build-push.yml │ ├── integration.yml │ ├── push-to-integration-repo.yml │ └── tag-release.yml ├── .gitignore ├── .solcover.js ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── bin/ │ ├── deploy.js │ ├── deploy.ts │ ├── gen_safety_checker_constants.py │ ├── serve_dump.sh │ └── take-dump.ts ├── contracts/ │ ├── optimistic-ethereum/ │ │ ├── OVM/ │ │ │ ├── accounts/ │ │ │ │ ├── OVM_ECDSAContractAccount.sol │ │ │ │ └── OVM_ProxyEOA.sol │ │ │ ├── bridge/ │ │ │ │ ├── messaging/ │ │ │ │ │ ├── Abs_BaseCrossDomainMessenger.sol │ │ │ │ │ ├── OVM_L1CrossDomainMessenger.sol │ │ │ │ │ ├── OVM_L1MultiMessageRelayer.sol │ │ │ │ │ └── OVM_L2CrossDomainMessenger.sol │ │ │ │ └── tokens/ │ │ │ │ ├── Abs_L1TokenGateway.sol │ │ │ │ ├── Abs_L2DepositedToken.sol │ │ │ │ ├── OVM_L1ERC20Gateway.sol │ │ │ │ ├── OVM_L1ETHGateway.sol │ │ │ │ └── OVM_L2DepositedERC20.sol │ │ │ ├── chain/ │ │ │ │ ├── OVM_CanonicalTransactionChain.sol │ │ │ │ ├── OVM_ChainStorageContainer.sol │ │ │ │ └── OVM_StateCommitmentChain.sol │ │ │ ├── execution/ │ │ │ │ ├── OVM_ExecutionManager.sol │ │ │ │ ├── OVM_SafetyChecker.sol │ │ │ │ ├── OVM_StateManager.sol │ │ │ │ └── OVM_StateManagerFactory.sol │ │ │ ├── predeploys/ │ │ │ │ ├── ERC1820Registry.sol │ │ │ │ ├── OVM_DeployerWhitelist.sol │ │ │ │ ├── OVM_ETH.sol │ │ │ │ ├── OVM_L1MessageSender.sol │ │ │ │ ├── OVM_L2ToL1MessagePasser.sol │ │ │ │ ├── OVM_ProxySequencerEntrypoint.sol │ │ │ │ └── OVM_SequencerEntrypoint.sol │ │ │ └── verification/ │ │ │ ├── Abs_FraudContributor.sol │ │ │ ├── OVM_BondManager.sol │ │ │ ├── OVM_FraudVerifier.sol │ │ │ ├── OVM_StateTransitioner.sol │ │ │ └── OVM_StateTransitionerFactory.sol │ │ ├── iOVM/ │ │ │ ├── accounts/ │ │ │ │ └── iOVM_ECDSAContractAccount.sol │ │ │ ├── bridge/ │ │ │ │ ├── messaging/ │ │ │ │ │ ├── iAbs_BaseCrossDomainMessenger.sol │ │ │ │ │ ├── iOVM_L1CrossDomainMessenger.sol │ │ │ │ │ ├── iOVM_L1MultiMessageRelayer.sol │ │ │ │ │ └── iOVM_L2CrossDomainMessenger.sol │ │ │ │ └── tokens/ │ │ │ │ ├── iOVM_L1ETHGateway.sol │ │ │ │ ├── iOVM_L1TokenGateway.sol │ │ │ │ └── iOVM_L2DepositedToken.sol │ │ │ ├── chain/ │ │ │ │ ├── iOVM_CanonicalTransactionChain.sol │ │ │ │ ├── iOVM_ChainStorageContainer.sol │ │ │ │ └── iOVM_StateCommitmentChain.sol │ │ │ ├── execution/ │ │ │ │ ├── iOVM_ExecutionManager.sol │ │ │ │ ├── iOVM_SafetyChecker.sol │ │ │ │ ├── iOVM_StateManager.sol │ │ │ │ └── iOVM_StateManagerFactory.sol │ │ │ ├── predeploys/ │ │ │ │ ├── iOVM_DeployerWhitelist.sol │ │ │ │ ├── iOVM_ERC20.sol │ │ │ │ ├── iOVM_L1MessageSender.sol │ │ │ │ └── iOVM_L2ToL1MessagePasser.sol │ │ │ └── verification/ │ │ │ ├── iOVM_BondManager.sol │ │ │ ├── iOVM_FraudVerifier.sol │ │ │ ├── iOVM_StateTransitioner.sol │ │ │ └── iOVM_StateTransitionerFactory.sol │ │ ├── libraries/ │ │ │ ├── bridge/ │ │ │ │ └── OVM_CrossDomainEnabled.sol │ │ │ ├── codec/ │ │ │ │ └── Lib_OVMCodec.sol │ │ │ ├── resolver/ │ │ │ │ ├── Lib_AddressManager.sol │ │ │ │ ├── Lib_AddressResolver.sol │ │ │ │ ├── Lib_Ownable.sol │ │ │ │ └── Lib_ResolvedDelegateProxy.sol │ │ │ ├── rlp/ │ │ │ │ ├── Lib_RLPReader.sol │ │ │ │ └── Lib_RLPWriter.sol │ │ │ ├── standards/ │ │ │ │ ├── IUniswapV2ERC20.sol │ │ │ │ ├── UniSafeMath.sol │ │ │ │ └── UniswapV2ERC20.sol │ │ │ ├── trie/ │ │ │ │ ├── Lib_MerkleTrie.sol │ │ │ │ └── Lib_SecureMerkleTrie.sol │ │ │ ├── utils/ │ │ │ │ ├── Lib_Bytes32Utils.sol │ │ │ │ ├── Lib_BytesUtils.sol │ │ │ │ ├── Lib_ECDSAUtils.sol │ │ │ │ ├── Lib_ErrorUtils.sol │ │ │ │ ├── Lib_EthUtils.sol │ │ │ │ ├── Lib_Math.sol │ │ │ │ ├── Lib_MerkleTree.sol │ │ │ │ ├── Lib_ReentrancyGuard.sol │ │ │ │ └── Lib_RingBuffer.sol │ │ │ └── wrappers/ │ │ │ ├── Lib_SafeExecutionManagerWrapper.sol │ │ │ └── Lib_SafeMathWrapper.sol │ │ └── mockOVM/ │ │ ├── accounts/ │ │ │ └── mockOVM_ECDSAContractAccount.sol │ │ ├── bridge/ │ │ │ ├── mockOVM_CrossDomainMessenger.sol │ │ │ └── mockOVM_GenericCrossDomainMessenger.sol │ │ └── verification/ │ │ └── mockOVM_BondManager.sol │ ├── test-helpers/ │ │ ├── Helper_GasMeasurer.sol │ │ ├── Helper_ModifiableStorage.sol │ │ ├── Helper_PrecompileCaller.sol │ │ ├── Helper_SimpleProxy.sol │ │ ├── Helper_TestRunner.sol │ │ ├── Mock_FraudVerifier.sol │ │ └── TestERC20.sol │ └── test-libraries/ │ ├── codec/ │ │ └── TestLib_OVMCodec.sol │ ├── rlp/ │ │ ├── TestLib_RLPReader.sol │ │ └── TestLib_RLPWriter.sol │ ├── trie/ │ │ ├── TestLib_MerkleTrie.sol │ │ └── TestLib_SecureMerkleTrie.sol │ └── utils/ │ ├── TestLib_Bytes32Utils.sol │ ├── TestLib_BytesUtils.sol │ ├── TestLib_ECDSAUtils.sol │ ├── TestLib_EthUtils.sol │ ├── TestLib_MerkleTree.sol │ └── TestLib_RingBuffer.sol ├── deploy/ │ ├── 000-Lib_AddressManager.deploy.ts │ ├── 001-OVM_ChainStorageContainer_ctc_batches.deploy.ts │ ├── 002-OVM_ChainStorageContainer_ctc_queue.deploy.ts │ ├── 003-OVM_ChainStorageContainer_scc_batches.deploy.ts │ ├── 004-OVM_CanonicalTransactionChain.deploy.ts │ ├── 005-OVM_StateCommitmentChain.deploy.ts │ ├── 006-mockOVM_BondManager.deploy.ts │ ├── 007-OVM_L1CrossDomainMessenger.deploy.ts │ ├── 008-Proxy__OVM_L1CrossDomainMessenger.deploy.ts │ ├── 009-OVM_ExecutionManager.deploy.ts │ ├── 010-OVM_FraudVerifer.deploy.ts │ ├── 011-OVM_StateManagerFactory.deploy.ts │ ├── 012-OVM_StateTransitionerFactory.deploy.ts │ ├── 013-OVM_SafetyChecker.deploy.ts │ ├── 014-OVM_L1MultiMessageRelayer.deploy.ts │ ├── 015-OVM_L1ETHGateway.deploy.ts │ ├── 016-Proxy__OVM_L1ETHGateway.deploy.ts │ └── 017-finalize.ts ├── hardhat.config.ts ├── hh/ │ ├── index.ts │ └── tasks/ │ └── task-deploy.ts ├── package.json ├── prettier-config.json ├── src/ │ ├── contract-defs.ts │ ├── contract-deployment/ │ │ ├── config.ts │ │ ├── deploy.ts │ │ └── index.ts │ ├── contract-dumps.ts │ ├── hardhat-deploy-ethers.ts │ ├── index.ts │ └── predeploys.ts ├── test/ │ ├── contracts/ │ │ ├── OVM/ │ │ │ ├── accounts/ │ │ │ │ ├── OVM_ECDSAContractAccount.spec.ts │ │ │ │ └── OVM_ProxyEOA.spec.ts │ │ │ ├── bridge/ │ │ │ │ ├── assets/ │ │ │ │ │ ├── OVM_L1ERC20Gateway.spec.ts │ │ │ │ │ ├── OVM_L1ETHGateway.spec.ts │ │ │ │ │ └── OVM_L2DepositedERC20.spec.ts │ │ │ │ └── base/ │ │ │ │ ├── OVM_L1CrossDomainMessenger.spec.ts │ │ │ │ ├── OVM_L1MultiMessageRelayer.ts │ │ │ │ └── OVM_L2CrossDomainMessenger.spec.ts │ │ │ ├── chain/ │ │ │ │ ├── OVM_CanonicalTransactionChain.gas.spec.ts │ │ │ │ ├── OVM_CanonicalTransactionChain.spec.ts │ │ │ │ └── OVM_StateCommitmentChain.spec.ts │ │ │ ├── execution/ │ │ │ │ ├── OVM_ExecutionManager/ │ │ │ │ │ ├── context-opcodes.spec.ts │ │ │ │ │ ├── nuisance-gas.spec.ts │ │ │ │ │ ├── ovmCALL.spec.ts │ │ │ │ │ ├── ovmCREATE.spec.ts │ │ │ │ │ ├── ovmCREATEEOA.spec.ts │ │ │ │ │ ├── ovmDELEGATECALL.spec.ts │ │ │ │ │ ├── ovmREVERT.spec.ts │ │ │ │ │ ├── ovmSLOAD.spec.ts │ │ │ │ │ ├── ovmSTATICCALL.spec.ts │ │ │ │ │ └── run.spec.ts │ │ │ │ ├── OVM_ExecutionManager.gas-spec.ts │ │ │ │ ├── OVM_SafetyChecker.spec.ts │ │ │ │ ├── OVM_StateManager.gas-spec.ts │ │ │ │ └── OVM_StateManager.spec.ts │ │ │ ├── precompiles/ │ │ │ │ ├── OVM_L1MessageSender.spec.ts │ │ │ │ ├── OVM_L2ToL1MessagePasser.spec.ts │ │ │ │ ├── OVM_ProxySequencerEntrypoint.spec.ts │ │ │ │ └── OVM_SequencerEntrypoint.spec.ts │ │ │ └── verification/ │ │ │ ├── OVM_BondManager.spec.ts │ │ │ ├── OVM_FraudVerifier.spec.ts │ │ │ ├── OVM_StateTransitioner.spec.ts │ │ │ └── OVM_StateTransitionerFactory.spec.ts │ │ ├── libraries/ │ │ │ ├── codec/ │ │ │ │ └── Lib_OVMCodec.spec.ts │ │ │ ├── rlp/ │ │ │ │ ├── Lib_RLPReader.spec.ts │ │ │ │ └── Lib_RLPWriter.spec.ts │ │ │ ├── trie/ │ │ │ │ ├── Lib_MerkleTrie.spec.ts │ │ │ │ └── Lib_SecureMerkleTrie.spec.ts │ │ │ └── utils/ │ │ │ ├── Lib_Bytes32Utils.spec.ts │ │ │ ├── Lib_BytesUtils.spec.ts │ │ │ ├── Lib_ECDSAUtils.spec.ts │ │ │ ├── Lib_EthUtils.spec.ts │ │ │ └── Lib_MerkleTree.spec.ts │ │ └── mockOVM/ │ │ └── verification/ │ │ └── mockOVM_BondManager.spec.ts │ ├── data/ │ │ ├── index.ts │ │ └── json/ │ │ ├── create2.test.json │ │ ├── libraries/ │ │ │ ├── codec/ │ │ │ │ └── Lib_OVMCodec.test.json │ │ │ ├── rlp/ │ │ │ │ ├── Lib_RLPReader.test.json │ │ │ │ └── Lib_RLPWriter.test.json │ │ │ ├── trie/ │ │ │ │ └── Lib_MerkleTrie.test.json │ │ │ └── utils/ │ │ │ ├── Lib_Bytes32Utils.test.json │ │ │ ├── Lib_BytesUtils.test.json │ │ │ └── Lib_ECDSAUtils.test.json │ │ └── safety-checker.test.json │ ├── helpers/ │ │ ├── codec/ │ │ │ ├── bridge.ts │ │ │ ├── encoding.ts │ │ │ ├── index.ts │ │ │ └── revert-flags.ts │ │ ├── constants.ts │ │ ├── dummy/ │ │ │ ├── accounts.ts │ │ │ ├── batches.ts │ │ │ ├── bytecode.ts │ │ │ ├── bytes32.ts │ │ │ ├── context.ts │ │ │ ├── index.ts │ │ │ └── transactions.ts │ │ ├── gas/ │ │ │ ├── gas.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── resolver/ │ │ │ ├── address-manager.ts │ │ │ └── index.ts │ │ ├── test-runner/ │ │ │ ├── index.ts │ │ │ ├── json-test-runner.ts │ │ │ ├── test-runner.ts │ │ │ └── test.types.ts │ │ ├── trie/ │ │ │ ├── index.ts │ │ │ └── trie-test-generator.ts │ │ ├── types/ │ │ │ ├── index.ts │ │ │ └── ovm-types.ts │ │ └── utils/ │ │ ├── custom-deployer.ts │ │ ├── eth-time.ts │ │ ├── index.ts │ │ └── sol-utils.ts │ └── setup.ts ├── tsconfig.json └── tslint.json