{
  "name": "@eth-optimism/contracts-bedrock",
  "version": "0.17.3",
  "description": "Contracts for Optimism Specs",
  "license": "MIT",
  "files": [
    "forge-artifacts/**/*.json",
    "!forge-artifacts/**/*.t.sol/*.json",
    "deployments/**/*.json",
    "src/**/*.sol"
  ],
  "scripts": {
    "prebuild": "./scripts/checks/check-foundry-install.sh",
    "build": "forge build",
    "build:go-ffi": "(cd scripts/go-ffi && go build)",
    "autogen:invariant-docs": "npx tsx scripts/autogen/generate-invariant-docs.ts",
    "test": "pnpm build:go-ffi && forge test",
    "test:kontrol": "./test/kontrol/scripts/run-kontrol.sh script",
    "genesis": "forge script scripts/L2Genesis.s.sol:L2Genesis --sig 'runWithStateDump()'",
    "coverage": "pnpm build:go-ffi && (forge coverage || (bash -c \"forge coverage 2>&1 | grep -q 'Stack too deep' && echo -e '\\033[1;33mWARNING\\033[0m: Coverage failed with stack too deep, so overriding and exiting successfully' && exit 0 || exit 1\"))",
    "coverage:lcov": "pnpm build:go-ffi && (forge coverage --report lcov || (bash -c \"forge coverage --report lcov 2>&1 | grep -q 'Stack too deep' && echo -e '\\033[1;33mWARNING\\033[0m: Coverage failed with stack too deep, so overriding and exiting successfully' && exit 0 || exit 1\"))",
    "deploy": "./scripts/deploy/deploy.sh",
    "gas-snapshot:no-build": "forge snapshot --match-contract GasBenchMark",
    "statediff": "./scripts/statediff.sh && git diff --exit-code",
    "gas-snapshot": "pnpm build:go-ffi && pnpm gas-snapshot:no-build",
    "kontrol-summary": "./test/kontrol/scripts/make-summary-deployment.sh",
    "kontrol-summary-fp": "KONTROL_FP_DEPLOYMENT=true pnpm kontrol-summary",
    "snapshots": "forge build && npx tsx scripts/autogen/generate-snapshots.ts && pnpm kontrol-summary && pnpm kontrol-summary-fp",
    "snapshots:check": "./scripts/checks/check-snapshots.sh",
    "semver-lock": "forge script scripts/SemverLock.s.sol",
    "validate-deploy-configs": "./scripts/checks/check-deploy-configs.sh",
    "validate-spacers:no-build": "npx tsx scripts/checks/check-spacers.ts",
    "validate-spacers": "pnpm build && pnpm validate-spacers:no-build",
    "clean": "rm -rf ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./scripts/go-ffi/go-ffi ./.testdata ./deployments/hardhat/*",
    "pre-pr:no-build": "pnpm gas-snapshot:no-build && pnpm snapshots && pnpm semver-lock && pnpm autogen:invariant-docs && pnpm lint",
    "pre-pr": "pnpm clean && pnpm build:go-ffi && pnpm build && pnpm pre-pr:no-build",
    "pre-pr:full": "pnpm test && pnpm validate-deploy-configs && pnpm validate-spacers && pnpm pre-pr",
    "lint:ts:check": "eslint . --max-warnings=0",
    "lint:forge-tests:check": "npx tsx scripts/checks/check-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.21.0",
    "@typescript-eslint/parser": "^6.21.0",
    "tsx": "^4.7.0",
    "typescript": "^5.4.5"
  }
}
