Commit f54a2234 authored by Mark Tyneway's avatar Mark Tyneway

contracts-bedrock: foundry-ify

Move the `contracts` directory to `src` and then move
the tests into a top level `test` dir so that its
standard foundry style for a repo.

This is going to break any in flight PRs so worth trying
to get in relatively quickly, will be no fun to rebase a
bunch of PRs.

Will need to follow up with another commit that bumps the
patch versions.
parent 7b97a447
[profile.default]
src = 'contracts'
src = 'src'
out = 'forge-artifacts'
optimizer = true
optimizer_runs = 999999
script = 'scripts'
remappings = [
'@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts',
......
......@@ -9,27 +9,27 @@ import { stdJson } from "forge-std/StdJson.sol";
import { Deployer } from "./Deployer.sol";
import { DeployConfig } from "./DeployConfig.s.sol";
import { ProxyAdmin } from "../contracts/universal/ProxyAdmin.sol";
import { AddressManager } from "../contracts/legacy/AddressManager.sol";
import { Proxy } from "../contracts/universal/Proxy.sol";
import { L1StandardBridge } from "../contracts/L1/L1StandardBridge.sol";
import { OptimismPortal } from "../contracts/L1/OptimismPortal.sol";
import { L1ChugSplashProxy } from "../contracts/legacy/L1ChugSplashProxy.sol";
import { ResolvedDelegateProxy } from "../contracts/legacy/ResolvedDelegateProxy.sol";
import { L1CrossDomainMessenger } from "../contracts/L1/L1CrossDomainMessenger.sol";
import { L2OutputOracle } from "../contracts/L1/L2OutputOracle.sol";
import { OptimismMintableERC20Factory } from "../contracts/universal/OptimismMintableERC20Factory.sol";
import { SystemConfig } from "../contracts/L1/SystemConfig.sol";
import { ResourceMetering } from "../contracts/L1/ResourceMetering.sol";
import { Constants } from "../contracts/libraries/Constants.sol";
import { DisputeGameFactory } from "../contracts/dispute/DisputeGameFactory.sol";
import { FaultDisputeGame } from "../contracts/dispute/FaultDisputeGame.sol";
import { L1ERC721Bridge } from "../contracts/L1/L1ERC721Bridge.sol";
import { Predeploys } from "../contracts/libraries/Predeploys.sol";
import { IBigStepper } from "../contracts/dispute/interfaces/IBigStepper.sol";
import { AlphabetVM } from "../contracts/test/FaultDisputeGame.t.sol";
import "../contracts/libraries/DisputeTypes.sol";
import { ProxyAdmin } from "../src/universal/ProxyAdmin.sol";
import { AddressManager } from "../src/legacy/AddressManager.sol";
import { Proxy } from "../src/universal/Proxy.sol";
import { L1StandardBridge } from "../src/L1/L1StandardBridge.sol";
import { OptimismPortal } from "../src/L1/OptimismPortal.sol";
import { L1ChugSplashProxy } from "../src/legacy/L1ChugSplashProxy.sol";
import { ResolvedDelegateProxy } from "../src/legacy/ResolvedDelegateProxy.sol";
import { L1CrossDomainMessenger } from "../src/L1/L1CrossDomainMessenger.sol";
import { L2OutputOracle } from "../src/L1/L2OutputOracle.sol";
import { OptimismMintableERC20Factory } from "../src/universal/OptimismMintableERC20Factory.sol";
import { SystemConfig } from "../src/L1/SystemConfig.sol";
import { ResourceMetering } from "../src/L1/ResourceMetering.sol";
import { Constants } from "../src/libraries/Constants.sol";
import { DisputeGameFactory } from "../src/dispute/DisputeGameFactory.sol";
import { FaultDisputeGame } from "../src/dispute/FaultDisputeGame.sol";
import { L1ERC721Bridge } from "../src/L1/L1ERC721Bridge.sol";
import { Predeploys } from "../src/libraries/Predeploys.sol";
import { IBigStepper } from "../src/dispute/interfaces/IBigStepper.sol";
import { AlphabetVM } from "../test/FaultDisputeGame.t.sol";
import "../src/libraries/DisputeTypes.sol";
/// @title Deploy
/// @notice Script used to deploy a bedrock system. The entire system is deployed within the `run` function.
......
......@@ -5,10 +5,10 @@ import { Deployer } from "./Deployer.sol";
import { DeployConfig } from "./DeployConfig.s.sol";
import { console2 as console } from "forge-std/console2.sol";
import { EAS } from "../contracts/EAS/EAS.sol";
import { SchemaRegistry } from "../contracts/EAS/SchemaRegistry.sol";
import { ISchemaRegistry } from "../contracts/EAS/ISchemaRegistry.sol";
import { Predeploys } from "../contracts/libraries/Predeploys.sol";
import { EAS } from "../src/EAS/EAS.sol";
import { SchemaRegistry } from "../src/EAS/SchemaRegistry.sol";
import { ISchemaRegistry } from "../src/EAS/ISchemaRegistry.sol";
import { Predeploys } from "../src/libraries/Predeploys.sol";
/// @title DeployL2
/// @notice Script used to deploy predeploy implementations to L2.
......
......@@ -3,15 +3,15 @@ pragma solidity ^0.8.15;
import { Script } from "forge-std/Script.sol";
import { console2 as console } from "forge-std/console2.sol";
import { FaultDisputeGame_Init } from "../contracts/test/FaultDisputeGame.t.sol";
import { DisputeGameFactory } from "../contracts/dispute/DisputeGameFactory.sol";
import { FaultDisputeGame } from "../contracts/dispute/FaultDisputeGame.sol";
import { IFaultDisputeGame } from "../contracts/dispute/interfaces/IFaultDisputeGame.sol";
import { FaultDisputeGame_Init } from "../test/FaultDisputeGame.t.sol";
import { DisputeGameFactory } from "../src/dispute/DisputeGameFactory.sol";
import { FaultDisputeGame } from "../src/dispute/FaultDisputeGame.sol";
import { IFaultDisputeGame } from "../src/dispute/interfaces/IFaultDisputeGame.sol";
import "../contracts/libraries/DisputeTypes.sol";
import "../contracts/libraries/DisputeErrors.sol";
import { LibClock } from "../contracts/dispute/lib/LibClock.sol";
import { LibPosition } from "../contracts/dispute/lib/LibPosition.sol";
import "../src/libraries/DisputeTypes.sol";
import "../src/libraries/DisputeErrors.sol";
import { LibClock } from "../src/dispute/lib/LibClock.sol";
import { LibPosition } from "../src/dispute/lib/LibPosition.sol";
/**
* @title FaultDisputeGameViz
......
......@@ -3,8 +3,8 @@ pragma solidity 0.8.15;
import { console } from "forge-std/console.sol";
import { Script } from "forge-std/Script.sol";
import { Predeploys } from "../contracts/libraries/Predeploys.sol";
import { FeeVault } from "../contracts/universal/FeeVault.sol";
import { Predeploys } from "../src/libraries/Predeploys.sol";
import { FeeVault } from "../src/universal/FeeVault.sol";
import { IMulticall3 } from "forge-std/interfaces/IMulticall3.sol";
/// @title FeeVaultWithdrawal
......
......@@ -9,7 +9,7 @@ const BASE_INVARIANTS_DIR = path.join(
'invariants'
)
const BASE_DOCS_DIR = path.join(__dirname, '..', 'invariant-docs')
const BASE_INVARIANT_GH_URL = '../contracts/test/invariants/'
const BASE_INVARIANT_GH_URL = '../test/invariants/'
const NATSPEC_INV = '@custom:invariant'
// Represents an invariant test contract
......@@ -111,8 +111,7 @@ const docGen = (dir: string): void => {
}
console.log(
`Generated invariant test documentation for:\n - ${
docs.length
`Generated invariant test documentation for:\n - ${docs.length
} contracts\n - ${docs.reduce(
(acc: number, contract: Contract) => acc + contract.docs.length,
0
......
......@@ -8,10 +8,10 @@ import { LibSort } from "../libraries/LibSort.sol";
import { IGnosisSafe, Enum } from "../interfaces/IGnosisSafe.sol";
import { SafeBuilder } from "../universal/SafeBuilder.sol";
import { Types } from "../../contracts/libraries/Types.sol";
import { FeeVault } from "../../contracts/universal/FeeVault.sol";
import { L2OutputOracle } from "../../contracts/L1/L2OutputOracle.sol";
import { Predeploys } from "../../contracts/libraries/Predeploys.sol";
import { Types } from "../../src/libraries/Types.sol";
import { FeeVault } from "../../src/universal/FeeVault.sol";
import { L2OutputOracle } from "../../src/L1/L2OutputOracle.sol";
import { Predeploys } from "../../src/libraries/Predeploys.sol";
/// @title DeleteOutput
/// @notice Deletes an output root from the L2OutputOracle.
......
......@@ -10,28 +10,28 @@ then
fi
contracts=(
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
contracts/L1/L1StandardBridge.sol:L1StandardBridge
contracts/L1/L2OutputOracle.sol:L2OutputOracle
contracts/L1/OptimismPortal.sol:OptimismPortal
contracts/L1/SystemConfig.sol:SystemConfig
contracts/legacy/DeployerWhitelist.sol:DeployerWhitelist
contracts/L2/L1Block.sol:L1Block
contracts/legacy/L1BlockNumber.sol:L1BlockNumber
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
contracts/L2/L2StandardBridge.sol:L2StandardBridge
contracts/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
contracts/L2/SequencerFeeVault.sol:SequencerFeeVault
contracts/L2/BaseFeeVault.sol:BaseFeeVault
contracts/L2/L1FeeVault.sol:L1FeeVault
contracts/vendor/WETH9.sol:WETH9
contracts/universal/ProxyAdmin.sol:ProxyAdmin
contracts/universal/Proxy.sol:Proxy
contracts/legacy/L1ChugSplashProxy.sol:L1ChugSplashProxy
contracts/universal/OptimismMintableERC20.sol:OptimismMintableERC20
contracts/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory
contracts/dispute/DisputeGameFactory.sol:DisputeGameFactory
src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
src/L1/L1StandardBridge.sol:L1StandardBridge
src/L1/L2OutputOracle.sol:L2OutputOracle
src/L1/OptimismPortal.sol:OptimismPortal
src/L1/SystemConfig.sol:SystemConfig
src/legacy/DeployerWhitelist.sol:DeployerWhitelist
src/L2/L1Block.sol:L1Block
src/legacy/L1BlockNumber.sol:L1BlockNumber
src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
src/L2/L2StandardBridge.sol:L2StandardBridge
src/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser
src/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
src/L2/SequencerFeeVault.sol:SequencerFeeVault
src/L2/BaseFeeVault.sol:BaseFeeVault
src/L2/L1FeeVault.sol:L1FeeVault
src/vendor/WETH9.sol:WETH9
src/universal/ProxyAdmin.sol:ProxyAdmin
src/universal/Proxy.sol:Proxy
src/legacy/L1ChugSplashProxy.sol:L1ChugSplashProxy
src/universal/OptimismMintableERC20.sol:OptimismMintableERC20
src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory
src/dispute/DisputeGameFactory.sol:DisputeGameFactory
)
dir=$(dirname "$0")
......
......@@ -3,7 +3,7 @@ pragma solidity 0.8.15;
import { console } from "forge-std/console.sol";
import { Script } from "forge-std/Script.sol";
import { Semver } from "../../contracts/universal/Semver.sol";
import { Semver } from "../../src/universal/Semver.sol";
/// @title EnhancedScript
/// @notice Enhances forge-std' Script.sol with some additional application-specific functionality.
......
......@@ -8,7 +8,7 @@ import { LibSort } from "../libraries/LibSort.sol";
import { IGnosisSafe, Enum } from "../interfaces/IGnosisSafe.sol";
import { EnhancedScript } from "../universal/EnhancedScript.sol";
import { GlobalConstants } from "../universal/GlobalConstants.sol";
import { ProxyAdmin } from "../../contracts/universal/ProxyAdmin.sol";
import { ProxyAdmin } from "../../src/universal/ProxyAdmin.sol";
/// @title SafeBuilder
/// @notice Builds SafeTransactions
......
......@@ -5,8 +5,8 @@ import { console2 as console } from "forge-std/console2.sol";
import { SafeBuilder } from "../universal/SafeBuilder.sol";
import { IGnosisSafe, Enum } from "../interfaces/IGnosisSafe.sol";
import { IMulticall3 } from "forge-std/interfaces/IMulticall3.sol";
import { Predeploys } from "../../contracts/libraries/Predeploys.sol";
import { ProxyAdmin } from "../../contracts/universal/ProxyAdmin.sol";
import { Predeploys } from "../../src/libraries/Predeploys.sol";
import { ProxyAdmin } from "../../src/universal/ProxyAdmin.sol";
import { Deployer } from "../Deployer.sol";
/// @title EASUpgrader
......
......@@ -6,11 +6,11 @@ import { SafeBuilder } from "../universal/SafeBuilder.sol";
import { IMulticall3 } from "forge-std/interfaces/IMulticall3.sol";
import { IGnosisSafe, Enum } from "../interfaces/IGnosisSafe.sol";
import { LibSort } from "../libraries/LibSort.sol";
import { ProxyAdmin } from "../../contracts/universal/ProxyAdmin.sol";
import { Constants } from "../../contracts/libraries/Constants.sol";
import { SystemConfig } from "../../contracts/L1/SystemConfig.sol";
import { ResourceMetering } from "../../contracts/L1/ResourceMetering.sol";
import { Semver } from "../../contracts/universal/Semver.sol";
import { ProxyAdmin } from "../../src/universal/ProxyAdmin.sol";
import { Constants } from "../../src/libraries/Constants.sol";
import { SystemConfig } from "../../src/L1/SystemConfig.sol";
import { ResourceMetering } from "../../src/L1/ResourceMetering.sol";
import { Semver } from "../../src/universal/Semver.sol";
/// @title PostSherlockL1
/// @notice Upgrade script for upgrading the L1 contracts after the sherlock audit.
......
......@@ -5,8 +5,8 @@ import { console } from "forge-std/console.sol";
import { SafeBuilder } from "../universal/SafeBuilder.sol";
import { IGnosisSafe, Enum } from "../interfaces/IGnosisSafe.sol";
import { IMulticall3 } from "forge-std/interfaces/IMulticall3.sol";
import { Predeploys } from "../../contracts/libraries/Predeploys.sol";
import { ProxyAdmin } from "../../contracts/universal/ProxyAdmin.sol";
import { Predeploys } from "../../src/libraries/Predeploys.sol";
import { ProxyAdmin } from "../../src/universal/ProxyAdmin.sol";
/// @title PostSherlockL2
/// @notice Upgrades the L2 contracts.
......
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