{
  "name": "@eth-optimism/contracts-bedrock",
  "version": "0.16.0",
  "description": "Contracts for Optimism Specs",
  "license": "MIT",
  "files": [
    "forge-artifacts/**/*.json",
    "deployments/**/*.json",
    "src/**/*.sol"
  ],
  "scripts": {
    "bindings": "pnpm bindings:ts && pnpm bindings:go",
    "bindings:ts": "nx generate @eth-optimism/contracts-ts",
    "bindings:go": "cd ../../op-bindings && make",
    "build": "forge build",
    "prebuild": "./scripts/verify-foundry-install.sh",
    "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": "tsx 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",
    "semver-lock": "forge script scripts/SemverLock.s.sol",
    "validate-deploy-configs": "./scripts/validate-deploy-configs.sh",
    "validate-spacers": "pnpm build && npx tsx scripts/validate-spacers.ts",
    "slither": "./scripts/slither.sh",
    "slither:triage": "TRIAGE_MODE=1 ./scripts/slither.sh",
    "clean": "rm -rf ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./test-case-generator/fuzz ./scripts/differential-testing/differential-testing",
    "preinstall": "npx only-allow pnpm",
    "pre-pr": "pnpm clean && pnpm gas-snapshot && pnpm storage-snapshot && pnpm semver-lock && pnpm autogen:invariant-docs && pnpm lint && (cd ../../op-bindings && make)",
    "pre-pr:full": "pnpm test && pnpm slither && pnpm validate-deploy-configs && pnpm validate-spacers && pnpm pre-pr",
    "lint:ts:check": "eslint . --max-warnings=0",
    "lint:forge-tests:check": "tsx scripts/forge-test-names.ts",
    "lint:contracts:check": "pnpm lint:fix && git diff --exit-code",
    "lint:check": "pnpm lint:contracts:check && pnpm lint:ts:check",
    "lint:ts:fix": "eslint --fix .",
    "lint:contracts:fix": "forge fmt",
    "lint:fix": "pnpm lint:contracts:fix && pnpm lint:ts:fix",
    "lint": "pnpm lint:fix && pnpm lint:check"
  },
  "devDependencies": {
    "@typescript-eslint/eslint-plugin": "^6.4.0",
    "@typescript-eslint/parser": "^6.4.0",
    "tsx": "^3.12.7",
    "typescript": "^5.1.6"
  }
}
