Commit f7368e09 authored by clabby's avatar clabby

chore: fix

chore: fix

x
parent 45a7ab80
......@@ -717,32 +717,6 @@ jobs:
command: make fuzz
working_directory: op-chain-ops
op-chain-ops-tests:
docker:
- image: us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder:latest
resource_class: xlarge
steps:
- checkout
- attach_workspace: { at: "." }
- restore_cache:
name: Restore PNPM Package Cache
keys:
- pnpm-packages-v2-{{ checksum "pnpm-lock.yaml" }}
- run:
name: prep results dir
command: mkdir -p /tmp/test-results
- run:
name: run tests
command: |
gotestsum --format=standard-verbose --junitfile=/tmp/test-results/op-chain-ops.xml \
-- -parallel=8 -coverpkg=github.com/ethereum-optimism/optimism/... -coverprofile=coverage.out ./...
working_directory: op-chain-ops
- run:
name: upload coverage
command: codecov --verbose --clean --flags bedrock-go-tests
- store_test_results:
path: /tmp/test-results
fuzz-cannon:
docker:
- image: us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder:latest
......@@ -1257,10 +1231,6 @@ workflows:
- depcheck:
requires:
- pnpm-monorepo
- op-chain-ops-tests:
name: op-chain-ops-tests
requires:
- pnpm-monorepo
- devnet:
name: devnet (with deployed contracts)
deploy: true
......@@ -1324,6 +1294,9 @@ workflows:
- go-test:
name: op-bindings-tests
module: op-bindings
- go-test:
name: op-chain-ops-tests
module: op-chain-ops
- go-test:
name: op-node-tests
module: op-node
......@@ -1362,6 +1335,7 @@ workflows:
- op-service-lint
- op-batcher-tests
- op-bindings-tests
- op-chain-ops-tests
- op-node-tests
- op-proposer-tests
- op-challenger-tests
......
......@@ -19,7 +19,6 @@ import (
"github.com/ethereum/go-ethereum/eth/tracers/logger"
"github.com/stretchr/testify/require"
"github.com/ethereum-optimism/optimism/op-bindings/bindings"
"github.com/ethereum-optimism/optimism/op-chain-ops/srcmap"
)
......@@ -38,19 +37,12 @@ func testContractsSetup(t require.TestingT) (*Contracts, *Addresses) {
}
func SourceMapTracer(t *testing.T, contracts *Contracts, addrs *Addresses) vm.EVMLogger {
sources := bindings.Sources
contractsDir := "../../packages/contracts-bedrock"
for i, source := range sources {
// Add relative path to contracts directory if the source is not
// already relativized.
if !strings.HasPrefix(source, "..") {
sources[i] = path.Join(contractsDir, source)
}
}
t.Fatal("TODO(clabby): The source map tracer is disabled until source IDs have been added to foundry artifacts.")
mipsSrcMap, err := contracts.MIPS.SourceMap(append([]string{path.Join(contractsDir, "src/cannon/MIPS.sol")}, sources...))
contractsDir := "../../packages/contracts-bedrock"
mipsSrcMap, err := contracts.MIPS.SourceMap([]string{path.Join(contractsDir, "src/cannon/MIPS.sol")})
require.NoError(t, err)
oracleSrcMap, err := contracts.Oracle.SourceMap(append([]string{path.Join(contractsDir, "src/cannon/PreimageOracle.sol")}, sources...))
oracleSrcMap, err := contracts.Oracle.SourceMap([]string{path.Join(contractsDir, "src/cannon/PreimageOracle.sol")})
require.NoError(t, err)
return srcmap.NewSourceMapTracer(map[common.Address]*srcmap.SourceMap{addrs.MIPS: mipsSrcMap, addrs.Oracle: oracleSrcMap}, os.Stdout)
......
......@@ -12,14 +12,13 @@ version:
compile:
cd $(contracts-dir) && \
pnpm build --build-info
pnpm build
bindings: compile bindings-build
bindings-build:
go run ./gen/main.go \
-forge-artifacts $(contracts-dir)/forge-artifacts \
-forge-build-info $(contracts-dir)/artifacts/build-info \
-out ./bindings \
-contracts ./artifacts.json \
-source-maps MIPS,PreimageOracle \
......
// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package bindings
var Sources = []string{
"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol",
"lib/ds-test/src/test.sol",
"lib/forge-std/src/Base.sol",
"lib/forge-std/src/Script.sol",
"lib/forge-std/src/StdAssertions.sol",
"lib/forge-std/src/StdChains.sol",
"lib/forge-std/src/StdCheats.sol",
"lib/forge-std/src/StdError.sol",
"lib/forge-std/src/StdInvariant.sol",
"lib/forge-std/src/StdJson.sol",
"lib/forge-std/src/StdMath.sol",
"lib/forge-std/src/StdStorage.sol",
"lib/forge-std/src/StdStyle.sol",
"lib/forge-std/src/StdUtils.sol",
"lib/forge-std/src/Test.sol",
"lib/forge-std/src/Vm.sol",
"lib/forge-std/src/console.sol",
"lib/forge-std/src/console2.sol",
"lib/forge-std/src/interfaces/IMulticall3.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
"lib/openzeppelin-contracts/contracts/access/Ownable.sol",
"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol",
"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol",
"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol",
"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol",
"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol",
"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol",
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol",
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol",
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol",
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol",
"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol",
"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol",
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol",
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol",
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol",
"lib/openzeppelin-contracts/contracts/utils/Address.sol",
"lib/openzeppelin-contracts/contracts/utils/Context.sol",
"lib/openzeppelin-contracts/contracts/utils/Counters.sol",
"lib/openzeppelin-contracts/contracts/utils/Strings.sol",
"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol",
"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol",
"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol",
"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol",
"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol",
"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol",
"lib/openzeppelin-contracts/contracts/utils/math/Math.sol",
"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol",
"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol",
"lib/solmate/src/auth/Owned.sol",
"lib/solmate/src/tokens/ERC20.sol",
"lib/solmate/src/tokens/ERC721.sol",
"lib/solmate/src/utils/Bytes32AddressLib.sol",
"lib/solmate/src/utils/FixedPointMathLib.sol",
"scripts/Deploy.s.sol",
"scripts/DeployConfig.s.sol",
"scripts/Deployer.sol",
"scripts/Executables.sol",
"scripts/FaultDisputeGameViz.s.sol",
"scripts/FeeVaultWithdrawal.s.sol",
"scripts/SemverLock.s.sol",
"scripts/interfaces/IGnosisSafe.sol",
"scripts/libraries/LibSort.sol",
"scripts/outputs/DeleteOutput.s.sol",
"scripts/universal/EnhancedScript.sol",
"scripts/universal/GlobalConstants.sol",
"scripts/universal/SafeBuilder.sol",
"scripts/upgrades/EASUpgrade.s.sol",
"scripts/upgrades/PostSherlock.s.sol",
"scripts/upgrades/PostSherlockL2.s.sol",
"src/L1/L1CrossDomainMessenger.sol",
"src/L1/L1ERC721Bridge.sol",
"src/L1/L1StandardBridge.sol",
"src/L1/L2OutputOracle.sol",
"src/L1/OptimismPortal.sol",
"src/L1/ResourceMetering.sol",
"src/L1/SystemConfig.sol",
"src/L2/BaseFeeVault.sol",
"src/L2/CrossDomainOwnable.sol",
"src/L2/CrossDomainOwnable2.sol",
"src/L2/CrossDomainOwnable3.sol",
"src/L2/GasPriceOracle.sol",
"src/L2/L1Block.sol",
"src/L2/L1FeeVault.sol",
"src/L2/L2CrossDomainMessenger.sol",
"src/L2/L2ERC721Bridge.sol",
"src/L2/L2StandardBridge.sol",
"src/L2/L2ToL1MessagePasser.sol",
"src/L2/SequencerFeeVault.sol",
"src/cannon/MIPS.sol",
"src/cannon/PreimageKeyLib.sol",
"src/cannon/PreimageOracle.sol",
"src/cannon/interfaces/IPreimageOracle.sol",
"src/cannon/libraries/CannonErrors.sol",
"src/dispute/DisputeGameFactory.sol",
"src/dispute/FaultDisputeGame.sol",
"src/dispute/interfaces/IBigStepper.sol",
"src/dispute/interfaces/IBondManager.sol",
"src/dispute/interfaces/IDisputeGame.sol",
"src/dispute/interfaces/IDisputeGameFactory.sol",
"src/dispute/interfaces/IFaultDisputeGame.sol",
"src/dispute/interfaces/IInitializable.sol",
"src/dispute/lib/LibClock.sol",
"src/dispute/lib/LibHashing.sol",
"src/dispute/lib/LibPosition.sol",
"src/governance/GovernanceToken.sol",
"src/governance/MintManager.sol",
"src/legacy/AddressManager.sol",
"src/legacy/DeployerWhitelist.sol",
"src/legacy/L1BlockNumber.sol",
"src/legacy/L1ChugSplashProxy.sol",
"src/legacy/LegacyERC20ETH.sol",
"src/legacy/LegacyMessagePasser.sol",
"src/legacy/LegacyMintableERC20.sol",
"src/legacy/ResolvedDelegateProxy.sol",
"src/libraries/Arithmetic.sol",
"src/libraries/Burn.sol",
"src/libraries/Bytes.sol",
"src/libraries/Clone.sol",
"src/libraries/Constants.sol",
"src/libraries/DisputeErrors.sol",
"src/libraries/DisputeTypes.sol",
"src/libraries/Encoding.sol",
"src/libraries/Hashing.sol",
"src/libraries/LegacyCrossDomainUtils.sol",
"src/libraries/Predeploys.sol",
"src/libraries/SafeCall.sol",
"src/libraries/Types.sol",
"src/libraries/rlp/RLPReader.sol",
"src/libraries/rlp/RLPWriter.sol",
"src/libraries/trie/MerkleTrie.sol",
"src/libraries/trie/SecureMerkleTrie.sol",
"src/periphery/AssetReceiver.sol",
"src/periphery/Transactor.sol",
"src/periphery/TransferOnion.sol",
"src/periphery/drippie/Drippie.sol",
"src/periphery/drippie/IDripCheck.sol",
"src/periphery/drippie/dripchecks/CheckBalanceHigh.sol",
"src/periphery/drippie/dripchecks/CheckBalanceLow.sol",
"src/periphery/drippie/dripchecks/CheckGelatoLow.sol",
"src/periphery/drippie/dripchecks/CheckTrue.sol",
"src/periphery/faucet/Faucet.sol",
"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol",
"src/periphery/faucet/authmodules/IFaucetAuthModule.sol",
"src/periphery/op-nft/AttestationStation.sol",
"src/periphery/op-nft/Optimist.sol",
"src/periphery/op-nft/OptimistAllowlist.sol",
"src/periphery/op-nft/OptimistInviter.sol",
"src/periphery/op-nft/libraries/OptimistConstants.sol",
"src/universal/CrossDomainMessenger.sol",
"src/universal/ERC721Bridge.sol",
"src/universal/FeeVault.sol",
"src/universal/IOptimismMintableERC20.sol",
"src/universal/IOptimismMintableERC721.sol",
"src/universal/OptimismMintableERC20.sol",
"src/universal/OptimismMintableERC20Factory.sol",
"src/universal/OptimismMintableERC721.sol",
"src/universal/OptimismMintableERC721Factory.sol",
"src/universal/Proxy.sol",
"src/universal/ProxyAdmin.sol",
"src/universal/Semver.sol",
"src/universal/StandardBridge.sol",
"src/vendor/AddressAliasHelper.sol",
"test/AddressAliasHelper.t.sol",
"test/AdminFaucetAuthModule.t.sol",
"test/AssetReceiver.t.sol",
"test/AttestationStation.t.sol",
"test/BenchmarkTest.t.sol",
"test/Bytes.t.sol",
"test/CheckBalanceHigh.t.sol",
"test/CheckBalanceLow.t.sol",
"test/CheckGelatoLow.t.sol",
"test/CheckTrue.t.sol",
"test/CommonTest.t.sol",
"test/CrossDomainMessenger.t.sol",
"test/CrossDomainOwnable.t.sol",
"test/CrossDomainOwnable2.t.sol",
"test/CrossDomainOwnable3.t.sol",
"test/DeployerWhitelist.t.sol",
"test/DisputeGameFactory.t.sol",
"test/Drippie.t.sol",
"test/Encoding.t.sol",
"test/Faucet.t.sol",
"test/FaultDisputeGame.t.sol",
"test/FeeVault.t.sol",
"test/GasPriceOracle.t.sol",
"test/GovernanceToken.t.sol",
"test/Hashing.t.sol",
"test/Helpers.sol",
"test/L1Block.t.sol",
"test/L1BlockNumber.t.sol",
"test/L1CrossDomainMessenger.t.sol",
"test/L1ERC721Bridge.t.sol",
"test/L1StandardBridge.t.sol",
"test/L2CrossDomainMessenger.t.sol",
"test/L2ERC721Bridge.t.sol",
"test/L2OutputOracle.t.sol",
"test/L2StandardBridge.t.sol",
"test/L2ToL1MessagePasser.t.sol",
"test/LegacyERC20ETH.t.sol",
"test/LegacyMessagePasser.t.sol",
"test/MerkleTrie.t.sol",
"test/MintManager.t.sol",
"test/OptimismMintableERC20.t.sol",
"test/OptimismMintableERC20Factory.t.sol",
"test/OptimismMintableERC721.t.sol",
"test/OptimismMintableERC721Factory.t.sol",
"test/OptimismPortal.t.sol",
"test/Optimist.t.sol",
"test/OptimistAllowlist.t.sol",
"test/OptimistInviter.t.sol",
"test/PreimageOracle.t.sol",
"test/Proxy.t.sol",
"test/ProxyAdmin.t.sol",
"test/RLP.t.sol",
"test/RLPReader.t.sol",
"test/RLPWriter.t.sol",
"test/ResolvedDelegateProxy.t.sol",
"test/ResourceMetering.t.sol",
"test/SafeCall.t.sol",
"test/Semver.t.sol",
"test/SequencerFeeVault.t.sol",
"test/StandardBridge.t.sol",
"test/SystemConfig.t.sol",
"test/Transactor.t.sol",
"test/TransferOnion.t.sol",
"test/invariants/AddressAliasHelper.t.sol",
"test/invariants/Burn.Eth.t.sol",
"test/invariants/Burn.Gas.t.sol",
"test/invariants/CrossDomainMessenger.t.sol",
"test/invariants/Encoding.t.sol",
"test/invariants/Hashing.t.sol",
"test/invariants/L2OutputOracle.t.sol",
"test/invariants/OptimismPortal.t.sol",
"test/invariants/ResourceMetering.t.sol",
"test/invariants/SafeCall.t.sol",
"test/invariants/SystemConfig.t.sol",
}
var SourceToId = map[string]uint{
"lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol": 0,
"lib/ds-test/src/test.sol": 1,
"lib/forge-std/src/Base.sol": 2,
"lib/forge-std/src/Script.sol": 3,
"lib/forge-std/src/StdAssertions.sol": 4,
"lib/forge-std/src/StdChains.sol": 5,
"lib/forge-std/src/StdCheats.sol": 6,
"lib/forge-std/src/StdError.sol": 7,
"lib/forge-std/src/StdInvariant.sol": 8,
"lib/forge-std/src/StdJson.sol": 9,
"lib/forge-std/src/StdMath.sol": 10,
"lib/forge-std/src/StdStorage.sol": 11,
"lib/forge-std/src/StdStyle.sol": 12,
"lib/forge-std/src/StdUtils.sol": 13,
"lib/forge-std/src/Test.sol": 14,
"lib/forge-std/src/Vm.sol": 15,
"lib/forge-std/src/console.sol": 16,
"lib/forge-std/src/console2.sol": 17,
"lib/forge-std/src/interfaces/IMulticall3.sol": 18,
"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol": 19,
"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": 20,
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol": 21,
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol": 22,
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol": 23,
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol": 24,
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol": 25,
"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": 26,
"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": 27,
"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol": 28,
"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol": 29,
"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol": 30,
"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol": 31,
"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol": 32,
"lib/openzeppelin-contracts/contracts/access/Ownable.sol": 33,
"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol": 34,
"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol": 35,
"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol": 36,
"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol": 37,
"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol": 38,
"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": 39,
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol": 40,
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol": 41,
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": 42,
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol": 43,
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": 44,
"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol": 45,
"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol": 46,
"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": 47,
"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol": 48,
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol": 49,
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol": 50,
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": 51,
"lib/openzeppelin-contracts/contracts/utils/Address.sol": 52,
"lib/openzeppelin-contracts/contracts/utils/Context.sol": 53,
"lib/openzeppelin-contracts/contracts/utils/Counters.sol": 54,
"lib/openzeppelin-contracts/contracts/utils/Strings.sol": 55,
"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol": 56,
"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol": 57,
"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol": 58,
"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": 59,
"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol": 60,
"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": 61,
"lib/openzeppelin-contracts/contracts/utils/math/Math.sol": 62,
"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": 63,
"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": 64,
"lib/solmate/src/auth/Owned.sol": 65,
"lib/solmate/src/tokens/ERC20.sol": 66,
"lib/solmate/src/tokens/ERC721.sol": 67,
"lib/solmate/src/utils/Bytes32AddressLib.sol": 68,
"lib/solmate/src/utils/FixedPointMathLib.sol": 69,
"scripts/Deploy.s.sol": 70,
"scripts/DeployConfig.s.sol": 71,
"scripts/Deployer.sol": 72,
"scripts/Executables.sol": 73,
"scripts/FaultDisputeGameViz.s.sol": 74,
"scripts/FeeVaultWithdrawal.s.sol": 75,
"scripts/SemverLock.s.sol": 76,
"scripts/interfaces/IGnosisSafe.sol": 77,
"scripts/libraries/LibSort.sol": 78,
"scripts/outputs/DeleteOutput.s.sol": 79,
"scripts/universal/EnhancedScript.sol": 80,
"scripts/universal/GlobalConstants.sol": 81,
"scripts/universal/SafeBuilder.sol": 82,
"scripts/upgrades/EASUpgrade.s.sol": 83,
"scripts/upgrades/PostSherlock.s.sol": 84,
"scripts/upgrades/PostSherlockL2.s.sol": 85,
"src/L1/L1CrossDomainMessenger.sol": 86,
"src/L1/L1ERC721Bridge.sol": 87,
"src/L1/L1StandardBridge.sol": 88,
"src/L1/L2OutputOracle.sol": 89,
"src/L1/OptimismPortal.sol": 90,
"src/L1/ResourceMetering.sol": 91,
"src/L1/SystemConfig.sol": 92,
"src/L2/BaseFeeVault.sol": 93,
"src/L2/CrossDomainOwnable.sol": 94,
"src/L2/CrossDomainOwnable2.sol": 95,
"src/L2/CrossDomainOwnable3.sol": 96,
"src/L2/GasPriceOracle.sol": 97,
"src/L2/L1Block.sol": 98,
"src/L2/L1FeeVault.sol": 99,
"src/L2/L2CrossDomainMessenger.sol": 100,
"src/L2/L2ERC721Bridge.sol": 101,
"src/L2/L2StandardBridge.sol": 102,
"src/L2/L2ToL1MessagePasser.sol": 103,
"src/L2/SequencerFeeVault.sol": 104,
"src/cannon/MIPS.sol": 105,
"src/cannon/PreimageKeyLib.sol": 106,
"src/cannon/PreimageOracle.sol": 107,
"src/cannon/interfaces/IPreimageOracle.sol": 108,
"src/cannon/libraries/CannonErrors.sol": 109,
"src/dispute/DisputeGameFactory.sol": 110,
"src/dispute/FaultDisputeGame.sol": 111,
"src/dispute/interfaces/IBigStepper.sol": 112,
"src/dispute/interfaces/IBondManager.sol": 113,
"src/dispute/interfaces/IDisputeGame.sol": 114,
"src/dispute/interfaces/IDisputeGameFactory.sol": 115,
"src/dispute/interfaces/IFaultDisputeGame.sol": 116,
"src/dispute/interfaces/IInitializable.sol": 117,
"src/dispute/lib/LibClock.sol": 118,
"src/dispute/lib/LibHashing.sol": 119,
"src/dispute/lib/LibPosition.sol": 120,
"src/governance/GovernanceToken.sol": 121,
"src/governance/MintManager.sol": 122,
"src/legacy/AddressManager.sol": 123,
"src/legacy/DeployerWhitelist.sol": 124,
"src/legacy/L1BlockNumber.sol": 125,
"src/legacy/L1ChugSplashProxy.sol": 126,
"src/legacy/LegacyERC20ETH.sol": 127,
"src/legacy/LegacyMessagePasser.sol": 128,
"src/legacy/LegacyMintableERC20.sol": 129,
"src/legacy/ResolvedDelegateProxy.sol": 130,
"src/libraries/Arithmetic.sol": 131,
"src/libraries/Burn.sol": 132,
"src/libraries/Bytes.sol": 133,
"src/libraries/Clone.sol": 134,
"src/libraries/Constants.sol": 135,
"src/libraries/DisputeErrors.sol": 136,
"src/libraries/DisputeTypes.sol": 137,
"src/libraries/Encoding.sol": 138,
"src/libraries/Hashing.sol": 139,
"src/libraries/LegacyCrossDomainUtils.sol": 140,
"src/libraries/Predeploys.sol": 141,
"src/libraries/SafeCall.sol": 142,
"src/libraries/Types.sol": 143,
"src/libraries/rlp/RLPReader.sol": 144,
"src/libraries/rlp/RLPWriter.sol": 145,
"src/libraries/trie/MerkleTrie.sol": 146,
"src/libraries/trie/SecureMerkleTrie.sol": 147,
"src/periphery/AssetReceiver.sol": 148,
"src/periphery/Transactor.sol": 149,
"src/periphery/TransferOnion.sol": 150,
"src/periphery/drippie/Drippie.sol": 151,
"src/periphery/drippie/IDripCheck.sol": 152,
"src/periphery/drippie/dripchecks/CheckBalanceHigh.sol": 153,
"src/periphery/drippie/dripchecks/CheckBalanceLow.sol": 154,
"src/periphery/drippie/dripchecks/CheckGelatoLow.sol": 155,
"src/periphery/drippie/dripchecks/CheckTrue.sol": 156,
"src/periphery/faucet/Faucet.sol": 157,
"src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol": 158,
"src/periphery/faucet/authmodules/IFaucetAuthModule.sol": 159,
"src/periphery/op-nft/AttestationStation.sol": 160,
"src/periphery/op-nft/Optimist.sol": 161,
"src/periphery/op-nft/OptimistAllowlist.sol": 162,
"src/periphery/op-nft/OptimistInviter.sol": 163,
"src/periphery/op-nft/libraries/OptimistConstants.sol": 164,
"src/universal/CrossDomainMessenger.sol": 165,
"src/universal/ERC721Bridge.sol": 166,
"src/universal/FeeVault.sol": 167,
"src/universal/IOptimismMintableERC20.sol": 168,
"src/universal/IOptimismMintableERC721.sol": 169,
"src/universal/OptimismMintableERC20.sol": 170,
"src/universal/OptimismMintableERC20Factory.sol": 171,
"src/universal/OptimismMintableERC721.sol": 172,
"src/universal/OptimismMintableERC721Factory.sol": 173,
"src/universal/Proxy.sol": 174,
"src/universal/ProxyAdmin.sol": 175,
"src/universal/Semver.sol": 176,
"src/universal/StandardBridge.sol": 177,
"src/vendor/AddressAliasHelper.sol": 178,
"test/AddressAliasHelper.t.sol": 179,
"test/AdminFaucetAuthModule.t.sol": 180,
"test/AssetReceiver.t.sol": 181,
"test/AttestationStation.t.sol": 182,
"test/BenchmarkTest.t.sol": 183,
"test/Bytes.t.sol": 184,
"test/CheckBalanceHigh.t.sol": 185,
"test/CheckBalanceLow.t.sol": 186,
"test/CheckGelatoLow.t.sol": 187,
"test/CheckTrue.t.sol": 188,
"test/CommonTest.t.sol": 189,
"test/CrossDomainMessenger.t.sol": 190,
"test/CrossDomainOwnable.t.sol": 191,
"test/CrossDomainOwnable2.t.sol": 192,
"test/CrossDomainOwnable3.t.sol": 193,
"test/DeployerWhitelist.t.sol": 194,
"test/DisputeGameFactory.t.sol": 195,
"test/Drippie.t.sol": 196,
"test/Encoding.t.sol": 197,
"test/Faucet.t.sol": 198,
"test/FaultDisputeGame.t.sol": 199,
"test/FeeVault.t.sol": 200,
"test/GasPriceOracle.t.sol": 201,
"test/GovernanceToken.t.sol": 202,
"test/Hashing.t.sol": 203,
"test/Helpers.sol": 204,
"test/L1Block.t.sol": 205,
"test/L1BlockNumber.t.sol": 206,
"test/L1CrossDomainMessenger.t.sol": 207,
"test/L1ERC721Bridge.t.sol": 208,
"test/L1StandardBridge.t.sol": 209,
"test/L2CrossDomainMessenger.t.sol": 210,
"test/L2ERC721Bridge.t.sol": 211,
"test/L2OutputOracle.t.sol": 212,
"test/L2StandardBridge.t.sol": 213,
"test/L2ToL1MessagePasser.t.sol": 214,
"test/LegacyERC20ETH.t.sol": 215,
"test/LegacyMessagePasser.t.sol": 216,
"test/MerkleTrie.t.sol": 217,
"test/MintManager.t.sol": 218,
"test/OptimismMintableERC20.t.sol": 219,
"test/OptimismMintableERC20Factory.t.sol": 220,
"test/OptimismMintableERC721.t.sol": 221,
"test/OptimismMintableERC721Factory.t.sol": 222,
"test/OptimismPortal.t.sol": 223,
"test/Optimist.t.sol": 224,
"test/OptimistAllowlist.t.sol": 225,
"test/OptimistInviter.t.sol": 226,
"test/PreimageOracle.t.sol": 227,
"test/Proxy.t.sol": 228,
"test/ProxyAdmin.t.sol": 229,
"test/RLP.t.sol": 230,
"test/RLPReader.t.sol": 231,
"test/RLPWriter.t.sol": 232,
"test/ResolvedDelegateProxy.t.sol": 233,
"test/ResourceMetering.t.sol": 234,
"test/SafeCall.t.sol": 235,
"test/Semver.t.sol": 236,
"test/SequencerFeeVault.t.sol": 237,
"test/StandardBridge.t.sol": 238,
"test/SystemConfig.t.sol": 239,
"test/Transactor.t.sol": 240,
"test/TransferOnion.t.sol": 241,
"test/invariants/AddressAliasHelper.t.sol": 242,
"test/invariants/Burn.Eth.t.sol": 243,
"test/invariants/Burn.Gas.t.sol": 244,
"test/invariants/CrossDomainMessenger.t.sol": 245,
"test/invariants/Encoding.t.sol": 246,
"test/invariants/Hashing.t.sol": 247,
"test/invariants/L2OutputOracle.t.sol": 248,
"test/invariants/OptimismPortal.t.sol": 249,
"test/invariants/ResourceMetering.t.sol": 250,
"test/invariants/SafeCall.t.sol": 251,
"test/invariants/SystemConfig.t.sol": 252,
}
var IdToSource = map[uint]string{
0: "lib/clones-with-immutable-args/src/ClonesWithImmutableArgs.sol",
1: "lib/ds-test/src/test.sol",
2: "lib/forge-std/src/Base.sol",
3: "lib/forge-std/src/Script.sol",
4: "lib/forge-std/src/StdAssertions.sol",
5: "lib/forge-std/src/StdChains.sol",
6: "lib/forge-std/src/StdCheats.sol",
7: "lib/forge-std/src/StdError.sol",
8: "lib/forge-std/src/StdInvariant.sol",
9: "lib/forge-std/src/StdJson.sol",
10: "lib/forge-std/src/StdMath.sol",
11: "lib/forge-std/src/StdStorage.sol",
12: "lib/forge-std/src/StdStyle.sol",
13: "lib/forge-std/src/StdUtils.sol",
14: "lib/forge-std/src/Test.sol",
15: "lib/forge-std/src/Vm.sol",
16: "lib/forge-std/src/console.sol",
17: "lib/forge-std/src/console2.sol",
18: "lib/forge-std/src/interfaces/IMulticall3.sol",
19: "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol",
20: "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
21: "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol",
22: "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol",
23: "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol",
24: "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721BurnableUpgradeable.sol",
25: "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol",
26: "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol",
27: "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
28: "lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol",
29: "lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/ECDSAUpgradeable.sol",
30: "lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/draft-EIP712Upgradeable.sol",
31: "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
32: "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol",
33: "lib/openzeppelin-contracts/contracts/access/Ownable.sol",
34: "lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol",
35: "lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol",
36: "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol",
37: "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol",
38: "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol",
39: "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
40: "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol",
41: "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol",
42: "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol",
43: "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20Permit.sol",
44: "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
45: "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
46: "lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol",
47: "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol",
48: "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol",
49: "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol",
50: "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol",
51: "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol",
52: "lib/openzeppelin-contracts/contracts/utils/Address.sol",
53: "lib/openzeppelin-contracts/contracts/utils/Context.sol",
54: "lib/openzeppelin-contracts/contracts/utils/Counters.sol",
55: "lib/openzeppelin-contracts/contracts/utils/Strings.sol",
56: "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol",
57: "lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol",
58: "lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol",
59: "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol",
60: "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol",
61: "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol",
62: "lib/openzeppelin-contracts/contracts/utils/math/Math.sol",
63: "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol",
64: "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol",
65: "lib/solmate/src/auth/Owned.sol",
66: "lib/solmate/src/tokens/ERC20.sol",
67: "lib/solmate/src/tokens/ERC721.sol",
68: "lib/solmate/src/utils/Bytes32AddressLib.sol",
69: "lib/solmate/src/utils/FixedPointMathLib.sol",
70: "scripts/Deploy.s.sol",
71: "scripts/DeployConfig.s.sol",
72: "scripts/Deployer.sol",
73: "scripts/Executables.sol",
74: "scripts/FaultDisputeGameViz.s.sol",
75: "scripts/FeeVaultWithdrawal.s.sol",
76: "scripts/SemverLock.s.sol",
77: "scripts/interfaces/IGnosisSafe.sol",
78: "scripts/libraries/LibSort.sol",
79: "scripts/outputs/DeleteOutput.s.sol",
80: "scripts/universal/EnhancedScript.sol",
81: "scripts/universal/GlobalConstants.sol",
82: "scripts/universal/SafeBuilder.sol",
83: "scripts/upgrades/EASUpgrade.s.sol",
84: "scripts/upgrades/PostSherlock.s.sol",
85: "scripts/upgrades/PostSherlockL2.s.sol",
86: "src/L1/L1CrossDomainMessenger.sol",
87: "src/L1/L1ERC721Bridge.sol",
88: "src/L1/L1StandardBridge.sol",
89: "src/L1/L2OutputOracle.sol",
90: "src/L1/OptimismPortal.sol",
91: "src/L1/ResourceMetering.sol",
92: "src/L1/SystemConfig.sol",
93: "src/L2/BaseFeeVault.sol",
94: "src/L2/CrossDomainOwnable.sol",
95: "src/L2/CrossDomainOwnable2.sol",
96: "src/L2/CrossDomainOwnable3.sol",
97: "src/L2/GasPriceOracle.sol",
98: "src/L2/L1Block.sol",
99: "src/L2/L1FeeVault.sol",
100: "src/L2/L2CrossDomainMessenger.sol",
101: "src/L2/L2ERC721Bridge.sol",
102: "src/L2/L2StandardBridge.sol",
103: "src/L2/L2ToL1MessagePasser.sol",
104: "src/L2/SequencerFeeVault.sol",
105: "src/cannon/MIPS.sol",
106: "src/cannon/PreimageKeyLib.sol",
107: "src/cannon/PreimageOracle.sol",
108: "src/cannon/interfaces/IPreimageOracle.sol",
109: "src/cannon/libraries/CannonErrors.sol",
110: "src/dispute/DisputeGameFactory.sol",
111: "src/dispute/FaultDisputeGame.sol",
112: "src/dispute/interfaces/IBigStepper.sol",
113: "src/dispute/interfaces/IBondManager.sol",
114: "src/dispute/interfaces/IDisputeGame.sol",
115: "src/dispute/interfaces/IDisputeGameFactory.sol",
116: "src/dispute/interfaces/IFaultDisputeGame.sol",
117: "src/dispute/interfaces/IInitializable.sol",
118: "src/dispute/lib/LibClock.sol",
119: "src/dispute/lib/LibHashing.sol",
120: "src/dispute/lib/LibPosition.sol",
121: "src/governance/GovernanceToken.sol",
122: "src/governance/MintManager.sol",
123: "src/legacy/AddressManager.sol",
124: "src/legacy/DeployerWhitelist.sol",
125: "src/legacy/L1BlockNumber.sol",
126: "src/legacy/L1ChugSplashProxy.sol",
127: "src/legacy/LegacyERC20ETH.sol",
128: "src/legacy/LegacyMessagePasser.sol",
129: "src/legacy/LegacyMintableERC20.sol",
130: "src/legacy/ResolvedDelegateProxy.sol",
131: "src/libraries/Arithmetic.sol",
132: "src/libraries/Burn.sol",
133: "src/libraries/Bytes.sol",
134: "src/libraries/Clone.sol",
135: "src/libraries/Constants.sol",
136: "src/libraries/DisputeErrors.sol",
137: "src/libraries/DisputeTypes.sol",
138: "src/libraries/Encoding.sol",
139: "src/libraries/Hashing.sol",
140: "src/libraries/LegacyCrossDomainUtils.sol",
141: "src/libraries/Predeploys.sol",
142: "src/libraries/SafeCall.sol",
143: "src/libraries/Types.sol",
144: "src/libraries/rlp/RLPReader.sol",
145: "src/libraries/rlp/RLPWriter.sol",
146: "src/libraries/trie/MerkleTrie.sol",
147: "src/libraries/trie/SecureMerkleTrie.sol",
148: "src/periphery/AssetReceiver.sol",
149: "src/periphery/Transactor.sol",
150: "src/periphery/TransferOnion.sol",
151: "src/periphery/drippie/Drippie.sol",
152: "src/periphery/drippie/IDripCheck.sol",
153: "src/periphery/drippie/dripchecks/CheckBalanceHigh.sol",
154: "src/periphery/drippie/dripchecks/CheckBalanceLow.sol",
155: "src/periphery/drippie/dripchecks/CheckGelatoLow.sol",
156: "src/periphery/drippie/dripchecks/CheckTrue.sol",
157: "src/periphery/faucet/Faucet.sol",
158: "src/periphery/faucet/authmodules/AdminFaucetAuthModule.sol",
159: "src/periphery/faucet/authmodules/IFaucetAuthModule.sol",
160: "src/periphery/op-nft/AttestationStation.sol",
161: "src/periphery/op-nft/Optimist.sol",
162: "src/periphery/op-nft/OptimistAllowlist.sol",
163: "src/periphery/op-nft/OptimistInviter.sol",
164: "src/periphery/op-nft/libraries/OptimistConstants.sol",
165: "src/universal/CrossDomainMessenger.sol",
166: "src/universal/ERC721Bridge.sol",
167: "src/universal/FeeVault.sol",
168: "src/universal/IOptimismMintableERC20.sol",
169: "src/universal/IOptimismMintableERC721.sol",
170: "src/universal/OptimismMintableERC20.sol",
171: "src/universal/OptimismMintableERC20Factory.sol",
172: "src/universal/OptimismMintableERC721.sol",
173: "src/universal/OptimismMintableERC721Factory.sol",
174: "src/universal/Proxy.sol",
175: "src/universal/ProxyAdmin.sol",
176: "src/universal/Semver.sol",
177: "src/universal/StandardBridge.sol",
178: "src/vendor/AddressAliasHelper.sol",
179: "test/AddressAliasHelper.t.sol",
180: "test/AdminFaucetAuthModule.t.sol",
181: "test/AssetReceiver.t.sol",
182: "test/AttestationStation.t.sol",
183: "test/BenchmarkTest.t.sol",
184: "test/Bytes.t.sol",
185: "test/CheckBalanceHigh.t.sol",
186: "test/CheckBalanceLow.t.sol",
187: "test/CheckGelatoLow.t.sol",
188: "test/CheckTrue.t.sol",
189: "test/CommonTest.t.sol",
190: "test/CrossDomainMessenger.t.sol",
191: "test/CrossDomainOwnable.t.sol",
192: "test/CrossDomainOwnable2.t.sol",
193: "test/CrossDomainOwnable3.t.sol",
194: "test/DeployerWhitelist.t.sol",
195: "test/DisputeGameFactory.t.sol",
196: "test/Drippie.t.sol",
197: "test/Encoding.t.sol",
198: "test/Faucet.t.sol",
199: "test/FaultDisputeGame.t.sol",
200: "test/FeeVault.t.sol",
201: "test/GasPriceOracle.t.sol",
202: "test/GovernanceToken.t.sol",
203: "test/Hashing.t.sol",
204: "test/Helpers.sol",
205: "test/L1Block.t.sol",
206: "test/L1BlockNumber.t.sol",
207: "test/L1CrossDomainMessenger.t.sol",
208: "test/L1ERC721Bridge.t.sol",
209: "test/L1StandardBridge.t.sol",
210: "test/L2CrossDomainMessenger.t.sol",
211: "test/L2ERC721Bridge.t.sol",
212: "test/L2OutputOracle.t.sol",
213: "test/L2StandardBridge.t.sol",
214: "test/L2ToL1MessagePasser.t.sol",
215: "test/LegacyERC20ETH.t.sol",
216: "test/LegacyMessagePasser.t.sol",
217: "test/MerkleTrie.t.sol",
218: "test/MintManager.t.sol",
219: "test/OptimismMintableERC20.t.sol",
220: "test/OptimismMintableERC20Factory.t.sol",
221: "test/OptimismMintableERC721.t.sol",
222: "test/OptimismMintableERC721Factory.t.sol",
223: "test/OptimismPortal.t.sol",
224: "test/Optimist.t.sol",
225: "test/OptimistAllowlist.t.sol",
226: "test/OptimistInviter.t.sol",
227: "test/PreimageOracle.t.sol",
228: "test/Proxy.t.sol",
229: "test/ProxyAdmin.t.sol",
230: "test/RLP.t.sol",
231: "test/RLPReader.t.sol",
232: "test/RLPWriter.t.sol",
233: "test/ResolvedDelegateProxy.t.sol",
234: "test/ResourceMetering.t.sol",
235: "test/SafeCall.t.sol",
236: "test/Semver.t.sol",
237: "test/SequencerFeeVault.t.sol",
238: "test/StandardBridge.t.sol",
239: "test/SystemConfig.t.sol",
240: "test/Transactor.t.sol",
241: "test/TransferOnion.t.sol",
242: "test/invariants/AddressAliasHelper.t.sol",
243: "test/invariants/Burn.Eth.t.sol",
244: "test/invariants/Burn.Gas.t.sol",
245: "test/invariants/CrossDomainMessenger.t.sol",
246: "test/invariants/Encoding.t.sol",
247: "test/invariants/Hashing.t.sol",
248: "test/invariants/L2OutputOracle.t.sol",
249: "test/invariants/OptimismPortal.t.sol",
250: "test/invariants/ResourceMetering.t.sol",
251: "test/invariants/SafeCall.t.sol",
252: "test/invariants/SystemConfig.t.sol",
}
......@@ -15,12 +15,10 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/ast"
"github.com/ethereum-optimism/optimism/op-bindings/foundry"
"github.com/ethereum-optimism/optimism/op-bindings/hardhat"
)
type flags struct {
ForgeArtifacts string
ForgeBuildInfo string
Contracts string
SourceMaps string
OutDir string
......@@ -29,7 +27,6 @@ type flags struct {
}
type data struct {
SourceId uint
Name string
StorageLayout string
DeployedBin string
......@@ -37,17 +34,9 @@ type data struct {
DeployedSourceMap string
}
type sourceIdData struct {
Package string
Sources []string
SourceToId map[string]uint
IdToSource map[uint]string
}
func main() {
var f flags
flag.StringVar(&f.ForgeArtifacts, "forge-artifacts", "", "Forge artifacts directory, to load sourcemaps from, if available")
flag.StringVar(&f.ForgeBuildInfo, "forge-build-info", "", "Forge build info directory, to load source IDs from, if available")
flag.StringVar(&f.OutDir, "out", "", "Output directory to put code in")
flag.StringVar(&f.Contracts, "contracts", "artifacts.json", "Path to file containing list of contracts to generate bindings for")
flag.StringVar(&f.SourceMaps, "source-maps", "", "Comma-separated list of contracts to generate source-maps for")
......@@ -208,79 +197,6 @@ func main() {
outfile.Close()
log.Printf("wrote file %s\n", outfile.Name())
}
mostRecentBuildInfo, err := getLargestInDir(f.ForgeBuildInfo)
if err != nil {
log.Fatalf("Error getting most recently modified build info file: %v", err)
}
buildInfoRaw, err := os.ReadFile(mostRecentBuildInfo)
if err != nil {
log.Fatalf("Error reading build info file: %v", err)
}
var buildInfo hardhat.BuildInfo
if err := json.Unmarshal(buildInfoRaw, &buildInfo); err != nil {
log.Fatalf("Error parsing build info file: %v", err)
}
sourceToId := make(map[string]uint)
idToSource := make(map[uint]string)
monorepoBase, err := filepath.Abs(f.MonorepoBase)
if err != nil {
log.Fatalf("Error getting absolute path of monorepo base: %v", err)
}
for k, v := range buildInfo.Output.Sources {
// Replace absolute monorepo base with relative path to monorepo root
k = strings.Replace(k, monorepoBase+"/", "../../", 1)
sourceToId[k] = v.Id
idToSource[v.Id] = k
}
fname := filepath.Join(f.OutDir, "source_ids.go")
outfile, err := os.OpenFile(
fname,
os.O_RDWR|os.O_CREATE|os.O_TRUNC,
0o600,
)
if err != nil {
log.Fatalf("error opening %s: %v\n", fname, err)
}
t = template.Must(template.New("source_ids").Parse(sourceIdTmpl))
d := sourceIdData{
Package: f.Package,
SourceToId: sourceToId,
IdToSource: idToSource,
}
if err := t.Execute(outfile, d); err != nil {
log.Fatalf("error writing template %s: %v", outfile.Name(), err)
}
outfile.Close()
log.Printf("wrote file %s\n", outfile.Name())
}
// getLargestInDir returns the path of the largest file in a directory.
func getLargestInDir(dirPath string) (string, error) {
var largestFile string
var largestSize int64
err := filepath.Walk(dirPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// Check if the current path is a regular file and not a directory
if !info.IsDir() {
if info.Size() > largestSize {
largestFile = path
largestSize = info.Size()
}
}
return nil
})
return largestFile, err
}
var tmpl = `// Code generated - DO NOT EDIT.
......@@ -311,21 +227,3 @@ func init() {
deployedBytecodes["{{.Name}}"] = {{.Name}}DeployedBin
}
`
var sourceIdTmpl = `// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package {{.Package}}
var Sources = []string{
{{range $key, $value := .SourceToId}} "{{$key}}",
{{end}}}
var SourceToId = map[string]uint{
{{range $key, $value := .SourceToId}} "{{$key}}": {{$value}},
{{end}}}
var IdToSource = map[uint]string{
{{range $key, $value := .IdToSource}} {{$key}}: "{{$value}}",
{{end}}}
`
......@@ -12,15 +12,12 @@ import (
)
func TestSourcemap(t *testing.T) {
t.Skip("TODO(clabby): This test is disabled until source IDs have been added to foundry artifacts.")
contractsDir := "../../packages/contracts-bedrock"
sources := []string{path.Join(contractsDir, "src/cannon/MIPS.sol")}
sources = append(sources, bindings.Sources...)
for i, source := range sources {
// Add relative path to contracts directory if the source is not
// already relativized.
if !strings.HasPrefix(source, "..") {
sources[i] = path.Join(contractsDir, source)
}
sources[i] = path.Join(contractsDir, source)
}
deployedByteCode := hexutil.MustDecode(bindings.MIPSDeployedBin)
......
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