{
  "name": "@eth-optimism/contracts-bedrock",
  "version": "0.15.0",
  "description": "Contracts for Optimism Specs",
  "license": "MIT",
  "files": [
    "forge-artifacts/**/*.json",
    "deployments/**/*.json",
    "contracts/**/*.sol"
  ],
  "scripts": {
    "bindings": "cd ../../op-bindings && make",
    "build:with-metadata": "FOUNDRY_PROFILE=echidna pnpm build:forge",
    "build": "npx nx build:contracts",
    "prebuild:contracts": "./scripts/verify-foundry-install.sh",
    "build:contracts": "pnpm build:forge",
    "build:forge": "forge build",
    "build:differential": "go build -o ./scripts/differential-testing/differential-testing ./scripts/differential-testing",
    "build:fuzz": "(cd test-case-generator && go build ./cmd/fuzz.go)",
    "autogen:invariant-docs": "ts-node scripts/invariant-doc-gen.ts",
    "test": "pnpm build:differential && pnpm build:fuzz && forge test",
    "coverage": "pnpm build:differential && pnpm build:fuzz && forge coverage",
    "coverage:lcov": "pnpm build:differential && pnpm build:fuzz && forge coverage --report lcov",
    "gas-snapshot": "pnpm build:differential && pnpm build:fuzz && forge snapshot --no-match-test 'testDiff|testFuzz|invariant|generateArtifact'",
    "storage-snapshot": "./scripts/storage-snapshot.sh",
    "validate-deploy-configs": "./scripts/validate-deploy-configs.sh",
    "validate-spacers": "forge build && npx ts-node scripts/validate-spacers.ts",
    "slither": "./scripts/slither.sh",
    "slither:triage": "TRIAGE_MODE=1 ./scripts/slither.sh",
    "clean": "rm -rf ./dist ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./src/contract-artifacts.ts ./test-case-generator/fuzz",
    "lint:ts:check": "eslint . --max-warnings=0",
    "lint:forge-tests:check": "ts-node scripts/forge-test-names.ts",
    "lint:contracts:check": "pnpm solhint -f table 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --check 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm lint:forge-tests:check",
    "lint:check": "pnpm lint:contracts:check && pnpm lint:ts:check",
    "lint:ts:fix": "eslint --fix .",
    "lint:contracts:fix": "pnpm solhint --fix 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --write 'contracts/**/!(DisputeTypes|RLPReader).sol'",
    "lint:fix": "pnpm lint:contracts:fix && pnpm lint:ts:fix",
    "lint": "pnpm lint:fix && pnpm lint:check",
    "echidna:aliasing": "echidna-test --contract EchidnaFuzzAddressAliasing --config ./echidna.yaml .",
    "echidna:burn:gas": "echidna-test --contract EchidnaFuzzBurnGas --config ./echidna.yaml .",
    "echidna:burn:eth": "echidna-test --contract EchidnaFuzzBurnEth --config ./echidna.yaml .",
    "echidna:encoding": "echidna-test --contract EchidnaFuzzEncoding --config ./echidna.yaml .",
    "echidna:portal": "echidna-test --contract EchidnaFuzzOptimismPortal --config ./echidna.yaml .",
    "echidna:hashing": "echidna-test --contract EchidnaFuzzHashing --config ./echidna.yaml .",
    "echidna:metering": "echidna-test --contract EchidnaFuzzResourceMetering --config ./echidna.yaml ."
  },
  "dependencies": {
    "@eth-optimism/core-utils": "^0.12.1",
    "@openzeppelin/contracts": "4.7.3",
    "@openzeppelin/contracts-upgradeable": "4.7.3",
    "@rari-capital/solmate": "github:transmissions11/solmate#8f9b23f8838670afda0fd8983f2c41e8037ae6bc",
    "clones-with-immutable-args": "github:Saw-mon-and-Natalie/clones-with-immutable-args#105efee1b9127ed7f6fedf139e1fc796ce8791f2",
    "ethers": "^5.7.0"
  },
  "devDependencies": {
    "@typescript-eslint/eslint-plugin": "^5.60.1",
    "@typescript-eslint/parser": "^5.60.1",
    "ds-test": "github:dapphub/ds-test#c9ce3f25bde29fc5eb9901842bf02850dfd2d084",
    "forge-std": "github:foundry-rs/forge-std#e8a047e3f40f13fa37af6fe14e6e06283d9a060e",
    "glob": "^7.1.6",
    "solhint": "^3.4.1",
    "solhint-plugin-prettier": "^0.0.5",
    "ts-node": "^10.9.1",
    "typescript": "^4.9.3"
  }
}
