{"_id":"@constellation-labs/contracts-bedrock","_rev":"8-78e17ffb5513839d210ac0ce9f64754b","name":"@constellation-labs/contracts-bedrock","description":"Contracts for Optimism Specs","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.0":{"name":"@constellation-labs/contracts-bedrock","version":"1.0.0","license":"MIT","_id":"@constellation-labs/contracts-bedrock@1.0.0","maintainers":[{"name":"tsite","email":"pranav@caldera.xyz"},{"name":"wang7ong","email":"tong@constellationlabs.xyz"},{"name":"theappletucker","email":"parker@constellationlabs.xyz"}],"dist":{"shasum":"b7d27055ca79a6e5c14c11dba939dc792e2f2762","tarball":"https://registry.npmjs.org/@constellation-labs/contracts-bedrock/-/contracts-bedrock-1.0.0.tgz","fileCount":647,"integrity":"sha512-T6iQWpQL/KpbzIwFeiu8Nx1zNh5FHDECpiQ1OIPfInMG+B2EzUN6VW/GOtkWui+eTGw1BSEOoii71BHHYRVdzg==","signatures":[{"sig":"MEUCIF/tNfD54SYB0ATQkbjakra7z7ctznJ24oTkmwhMbjFWAiEAkB9/J/nLb6Lc0jeFW3IU/emGPYbSD2rLNpPZN/nLlwE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":303747235},"gitHead":"a3d311275a3ae19e67065ce0ef667f19f3b79786","scripts":{"lint":"pnpm lint:fix && pnpm lint:check","test":"pnpm build:differential && pnpm build:fuzz && forge test","build":"npx nx build:contracts","clean":"rm -rf ./dist ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./src/contract-artifacts.ts ./test-case-generator/fuzz","slither":"./scripts/slither.sh","bindings":"cd ../../op-bindings && make","coverage":"pnpm build:differential && pnpm build:fuzz && forge coverage","lint:fix":"pnpm lint:contracts:fix && pnpm lint:ts:fix","build:fuzz":"(cd test-case-generator && go build ./cmd/fuzz.go)","lint:check":"pnpm lint:contracts:check && pnpm lint:ts:check","build:forge":"forge build","lint:ts:fix":"eslint --fix .","gas-snapshot":"pnpm build:differential && pnpm build:fuzz && forge snapshot --no-match-test 'testDiff|testFuzz|invariant|generateArtifact'","coverage:lcov":"pnpm build:differential && pnpm build:fuzz && forge coverage --report lcov","lint:ts:check":"eslint . --max-warnings=0","echidna:portal":"echidna-test --contract EchidnaFuzzOptimismPortal --config ./echidna.yaml .","slither:triage":"TRIAGE_MODE=1 ./scripts/slither.sh","build:contracts":"pnpm build:forge","echidna:hashing":"echidna-test --contract EchidnaFuzzHashing --config ./echidna.yaml .","echidna:aliasing":"echidna-test --contract EchidnaFuzzAddressAliasing --config ./echidna.yaml .","echidna:burn:eth":"echidna-test --contract EchidnaFuzzBurnEth --config ./echidna.yaml .","echidna:burn:gas":"echidna-test --contract EchidnaFuzzBurnGas --config ./echidna.yaml .","echidna:encoding":"echidna-test --contract EchidnaFuzzEncoding --config ./echidna.yaml .","echidna:metering":"echidna-test --contract EchidnaFuzzResourceMetering --config ./echidna.yaml .","storage-snapshot":"./scripts/storage-snapshot.sh","validate-spacers":"forge build && npx ts-node scripts/validate-spacers.ts","build:differential":"go build -o ./scripts/differential-testing/differential-testing ./scripts/differential-testing","lint:contracts:fix":"pnpm solhint --fix 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --write 'contracts/**/!(DisputeTypes|RLPReader).sol'","prebuild:contracts":"./scripts/verify-foundry-install.sh","build:with-metadata":"FOUNDRY_PROFILE=echidna pnpm build:forge","lint:contracts:check":"pnpm solhint -f table 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --check 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm lint:forge-tests:check","autogen:invariant-docs":"ts-node scripts/invariant-doc-gen.ts","lint:forge-tests:check":"ts-node scripts/forge-test-names.ts","validate-deploy-configs":"./scripts/validate-deploy-configs.sh"},"_npmUser":{"name":"tsite","email":"pranav@caldera.xyz"},"_npmVersion":"8.11.0","description":"Contracts for Optimism Specs","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ethers":"^5.7.2","fs-extra":"^11.1.1","@aws-sdk/client-s3":"^3.379.1","@rari-capital/solmate":"github:transmissions11/solmate#8f9b23f8838670afda0fd8983f2c41e8037ae6bc","@openzeppelin/contracts":"4.7.3","clones-with-immutable-args":"github:Saw-mon-and-Natalie/clones-with-immutable-args#105efee1b9127ed7f6fedf139e1fc796ce8791f2","@openzeppelin/contracts-upgradeable":"4.7.3"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^7.2.3","ds-test":"github:dapphub/ds-test#c9ce3f25bde29fc5eb9901842bf02850dfd2d084","solhint":"^3.4.1","ts-node":"^10.9.1","forge-std":"github:foundry-rs/forge-std#e8a047e3f40f13fa37af6fe14e6e06283d9a060e","typescript":"^4.9.5","solhint-plugin-prettier":"^0.0.5","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-bedrock_1.0.0_1690948635356_0.38478762754173035","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@constellation-labs/contracts-bedrock","version":"1.0.1","license":"MIT","_id":"@constellation-labs/contracts-bedrock@1.0.1","maintainers":[{"name":"tsite","email":"pranav@caldera.xyz"},{"name":"wang7ong","email":"tong@constellationlabs.xyz"},{"name":"theappletucker","email":"parker@constellationlabs.xyz"}],"dist":{"shasum":"c6b03bebda61b1550831ab737edc21af2b03eeaf","tarball":"https://registry.npmjs.org/@constellation-labs/contracts-bedrock/-/contracts-bedrock-1.0.1.tgz","fileCount":647,"integrity":"sha512-nP/qaScvBKFsnkRKToYiFYTCZjN2A5DJDtSFINxO9N7Kyv7+7IGAO5vrMDv+TNPo6uL2ta4EcEtHfacmLYklTg==","signatures":[{"sig":"MEYCIQCzQ5cKlds68ij0pFjF1u5h0WKWGNCJktIksmYTgaMRmAIhAOHfqTXAgSbnFWheH+sD+tRTG+4S7z5tgkwK0zGLxGXy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":303742376},"_from":"file:constellation-labs-contracts-bedrock-1.0.1.tgz","scripts":{"lint":"pnpm lint:fix && pnpm lint:check","test":"pnpm build:differential && pnpm build:fuzz && forge test","build":"npx nx build:contracts","clean":"rm -rf ./dist ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./src/contract-artifacts.ts ./test-case-generator/fuzz","slither":"./scripts/slither.sh","bindings":"cd ../../op-bindings && make","coverage":"pnpm build:differential && pnpm build:fuzz && forge coverage","lint:fix":"pnpm lint:contracts:fix && pnpm lint:ts:fix","build:fuzz":"(cd test-case-generator && go build ./cmd/fuzz.go)","lint:check":"pnpm lint:contracts:check && pnpm lint:ts:check","build:forge":"forge build","lint:ts:fix":"eslint --fix .","gas-snapshot":"pnpm build:differential && pnpm build:fuzz && forge snapshot --no-match-test 'testDiff|testFuzz|invariant|generateArtifact'","coverage:lcov":"pnpm build:differential && pnpm build:fuzz && forge coverage --report lcov","lint:ts:check":"eslint . --max-warnings=0","echidna:portal":"echidna-test --contract EchidnaFuzzOptimismPortal --config ./echidna.yaml .","slither:triage":"TRIAGE_MODE=1 ./scripts/slither.sh","build:contracts":"pnpm build:forge","echidna:hashing":"echidna-test --contract EchidnaFuzzHashing --config ./echidna.yaml .","echidna:aliasing":"echidna-test --contract EchidnaFuzzAddressAliasing --config ./echidna.yaml .","echidna:burn:eth":"echidna-test --contract EchidnaFuzzBurnEth --config ./echidna.yaml .","echidna:burn:gas":"echidna-test --contract EchidnaFuzzBurnGas --config ./echidna.yaml .","echidna:encoding":"echidna-test --contract EchidnaFuzzEncoding --config ./echidna.yaml .","echidna:metering":"echidna-test --contract EchidnaFuzzResourceMetering --config ./echidna.yaml .","storage-snapshot":"./scripts/storage-snapshot.sh","validate-spacers":"forge build && npx ts-node scripts/validate-spacers.ts","build:differential":"go build -o ./scripts/differential-testing/differential-testing ./scripts/differential-testing","lint:contracts:fix":"pnpm solhint --fix 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --write 'contracts/**/!(DisputeTypes|RLPReader).sol'","prebuild:contracts":"./scripts/verify-foundry-install.sh","build:with-metadata":"FOUNDRY_PROFILE=echidna pnpm build:forge","lint:contracts:check":"pnpm solhint -f table 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --check 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm lint:forge-tests:check","autogen:invariant-docs":"ts-node scripts/invariant-doc-gen.ts","lint:forge-tests:check":"ts-node scripts/forge-test-names.ts","validate-deploy-configs":"./scripts/validate-deploy-configs.sh"},"_npmUser":{"name":"tsite","email":"pranav@caldera.xyz"},"_resolved":"/tmp/5d8e0db184f80729d965d36c485dc9cf/constellation-labs-contracts-bedrock-1.0.1.tgz","_integrity":"sha512-nP/qaScvBKFsnkRKToYiFYTCZjN2A5DJDtSFINxO9N7Kyv7+7IGAO5vrMDv+TNPo6uL2ta4EcEtHfacmLYklTg==","_npmVersion":"8.11.0","description":"Contracts for Optimism Specs","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ethers":"^5.7.2","fs-extra":"^11.1.1","@aws-sdk/client-s3":"^3.383.0","@rari-capital/solmate":"github:transmissions11/solmate#8f9b23f8838670afda0fd8983f2c41e8037ae6bc","@openzeppelin/contracts":"4.7.3","clones-with-immutable-args":"github:Saw-mon-and-Natalie/clones-with-immutable-args#105efee1b9127ed7f6fedf139e1fc796ce8791f2","@openzeppelin/contracts-upgradeable":"4.7.3"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^7.2.3","ds-test":"github:dapphub/ds-test#c9ce3f25bde29fc5eb9901842bf02850dfd2d084","solhint":"^3.4.1","ts-node":"^10.9.1","forge-std":"github:foundry-rs/forge-std#e8a047e3f40f13fa37af6fe14e6e06283d9a060e","typescript":"^4.9.5","solhint-plugin-prettier":"^0.0.5","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-bedrock_1.0.1_1691112049636_0.9221519971051129","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@constellation-labs/contracts-bedrock","version":"1.1.2","license":"MIT","_id":"@constellation-labs/contracts-bedrock@1.1.2","maintainers":[{"name":"tsite","email":"pranav@caldera.xyz"},{"name":"wang7ong","email":"tong@constellationlabs.xyz"},{"name":"theappletucker","email":"parker@constellationlabs.xyz"}],"dist":{"shasum":"db08292b573149c3ecf505f7067520bac97cdea4","tarball":"https://registry.npmjs.org/@constellation-labs/contracts-bedrock/-/contracts-bedrock-1.1.2.tgz","fileCount":637,"integrity":"sha512-DJN898HXifBHphqwN8A3lD98iQ9kbUZddPcD8f5i08ox5t78UoJnoHVeB2WJxy/6YwF6huqfb+6DfzyyaOP/2w==","signatures":[{"sig":"MEUCIH564eT0o82A5c6bdH0mCkSduWvovrV/i+m74PIjzHztAiEA/TVC0lV0s3GD7++1VPPMrYtfrzW7wXjUHvtnrv9GFRk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":306552935},"gitHead":"ce72b071ad1215ab14977cee7bb9661af5e48afc","scripts":{"lint":"pnpm lint:fix && pnpm lint:check","test":"pnpm build:differential && pnpm build:fuzz && forge test","build":"npx nx build:contracts","clean":"rm -rf ./dist ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./src/contract-artifacts.ts ./test-case-generator/fuzz","slither":"./scripts/slither.sh","bindings":"cd ../../op-bindings && make","coverage":"pnpm build:differential && pnpm build:fuzz && forge coverage","lint:fix":"pnpm lint:contracts:fix && pnpm lint:ts:fix","build:fuzz":"(cd test-case-generator && go build ./cmd/fuzz.go)","lint:check":"pnpm lint:contracts:check && pnpm lint:ts:check","build:forge":"forge build","lint:ts:fix":"eslint --fix .","gas-snapshot":"pnpm build:differential && pnpm build:fuzz && forge snapshot --no-match-test 'testDiff|testFuzz|invariant|generateArtifact'","coverage:lcov":"pnpm build:differential && pnpm build:fuzz && forge coverage --report lcov","lint:ts:check":"eslint . --max-warnings=0","echidna:portal":"echidna-test --contract EchidnaFuzzOptimismPortal --config ./echidna.yaml .","slither:triage":"TRIAGE_MODE=1 ./scripts/slither.sh","build:contracts":"pnpm build:forge","echidna:hashing":"echidna-test --contract EchidnaFuzzHashing --config ./echidna.yaml .","echidna:aliasing":"echidna-test --contract EchidnaFuzzAddressAliasing --config ./echidna.yaml .","echidna:burn:eth":"echidna-test --contract EchidnaFuzzBurnEth --config ./echidna.yaml .","echidna:burn:gas":"echidna-test --contract EchidnaFuzzBurnGas --config ./echidna.yaml .","echidna:encoding":"echidna-test --contract EchidnaFuzzEncoding --config ./echidna.yaml .","echidna:metering":"echidna-test --contract EchidnaFuzzResourceMetering --config ./echidna.yaml .","storage-snapshot":"./scripts/storage-snapshot.sh","validate-spacers":"forge build && npx ts-node scripts/validate-spacers.ts","build:differential":"go build -o ./scripts/differential-testing/differential-testing ./scripts/differential-testing","lint:contracts:fix":"pnpm solhint --fix 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --write 'contracts/**/!(DisputeTypes|RLPReader).sol'","prebuild:contracts":"./scripts/verify-foundry-install.sh","build:with-metadata":"FOUNDRY_PROFILE=echidna pnpm build:forge","lint:contracts:check":"pnpm solhint -f table 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --check 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm lint:forge-tests:check","autogen:invariant-docs":"ts-node scripts/invariant-doc-gen.ts","lint:forge-tests:check":"ts-node scripts/forge-test-names.ts","validate-deploy-configs":"./scripts/validate-deploy-configs.sh"},"_npmUser":{"name":"theappletucker","email":"parker@constellationlabs.xyz"},"_npmVersion":"lerna/6.6.2/node@v16.16.0+x64 (linux)","description":"Contracts for Optimism Specs","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ethers":"^5.7.2","fs-extra":"^11.1.1","@aws-sdk/client-s3":"^3.383.0","@rari-capital/solmate":"github:transmissions11/solmate#8f9b23f8838670afda0fd8983f2c41e8037ae6bc","@openzeppelin/contracts":"4.7.3","clones-with-immutable-args":"github:Saw-mon-and-Natalie/clones-with-immutable-args#105efee1b9127ed7f6fedf139e1fc796ce8791f2","@openzeppelin/contracts-upgradeable":"4.7.3"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^7.2.3","ds-test":"github:dapphub/ds-test#c9ce3f25bde29fc5eb9901842bf02850dfd2d084","solhint":"^3.4.1","ts-node":"^10.9.1","forge-std":"github:foundry-rs/forge-std#e8a047e3f40f13fa37af6fe14e6e06283d9a060e","typescript":"^4.9.5","solhint-plugin-prettier":"^0.0.5","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-bedrock_1.1.2_1695363261041_0.12877834387503473","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"@constellation-labs/contracts-bedrock","version":"2.1.2","license":"MIT","_id":"@constellation-labs/contracts-bedrock@2.1.2","maintainers":[{"name":"tsite","email":"pranav@caldera.xyz"},{"name":"wang7ong","email":"tong@constellationlabs.xyz"},{"name":"theappletucker","email":"parker@constellationlabs.xyz"}],"dist":{"shasum":"7451d2ebb9c050e358b0dad342a3d51926df863c","tarball":"https://registry.npmjs.org/@constellation-labs/contracts-bedrock/-/contracts-bedrock-2.1.2.tgz","fileCount":627,"integrity":"sha512-vV7+rfhqAN2PL8TcA+cqVTrLhSkvcObrIev3peIBbRZj+lLDBZ/PgHViJSeaXgKHk+/5SM2a+okwW5zwFfKHAA==","signatures":[{"sig":"MEUCIQDrWIWAntEhvRxqZfzazDMeWbEcStPskMGLxvPf+fp+2wIgPjPbvF90cduPW6n/Hj+7caCBExDavohr0ltyE0eeQFE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":298006965},"gitHead":"e6cc111212f2fbc86bd1dddf6cbec7a4544f3488","scripts":{"lint":"pnpm lint:fix && pnpm lint:check","test":"pnpm build:differential && pnpm build:fuzz && forge test","build":"npx nx build:contracts","clean":"rm -rf ./dist ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./src/contract-artifacts.ts ./test-case-generator/fuzz","slither":"./scripts/slither.sh","bindings":"cd ../../op-bindings && make","coverage":"pnpm build:differential && pnpm build:fuzz && forge coverage","lint:fix":"pnpm lint:contracts:fix && pnpm lint:ts:fix","build:fuzz":"(cd test-case-generator && go build ./cmd/fuzz.go)","lint:check":"pnpm lint:contracts:check && pnpm lint:ts:check","build:forge":"forge build","lint:ts:fix":"eslint --fix .","gas-snapshot":"pnpm build:differential && pnpm build:fuzz && forge snapshot --no-match-test 'testDiff|testFuzz|invariant|generateArtifact'","coverage:lcov":"pnpm build:differential && pnpm build:fuzz && forge coverage --report lcov","lint:ts:check":"eslint . --max-warnings=0","echidna:portal":"echidna-test --contract EchidnaFuzzOptimismPortal --config ./echidna.yaml .","slither:triage":"TRIAGE_MODE=1 ./scripts/slither.sh","build:contracts":"pnpm build:forge","echidna:hashing":"echidna-test --contract EchidnaFuzzHashing --config ./echidna.yaml .","echidna:aliasing":"echidna-test --contract EchidnaFuzzAddressAliasing --config ./echidna.yaml .","echidna:burn:eth":"echidna-test --contract EchidnaFuzzBurnEth --config ./echidna.yaml .","echidna:burn:gas":"echidna-test --contract EchidnaFuzzBurnGas --config ./echidna.yaml .","echidna:encoding":"echidna-test --contract EchidnaFuzzEncoding --config ./echidna.yaml .","echidna:metering":"echidna-test --contract EchidnaFuzzResourceMetering --config ./echidna.yaml .","storage-snapshot":"./scripts/storage-snapshot.sh","validate-spacers":"forge build && npx ts-node scripts/validate-spacers.ts","build:differential":"go build -o ./scripts/differential-testing/differential-testing ./scripts/differential-testing","lint:contracts:fix":"pnpm solhint --fix 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --write 'contracts/**/!(DisputeTypes|RLPReader).sol'","prebuild:contracts":"./scripts/verify-foundry-install.sh","build:with-metadata":"FOUNDRY_PROFILE=echidna pnpm build:forge","lint:contracts:check":"pnpm solhint -f table 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --check 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm lint:forge-tests:check","autogen:invariant-docs":"ts-node scripts/invariant-doc-gen.ts","lint:forge-tests:check":"ts-node scripts/forge-test-names.ts","validate-deploy-configs":"./scripts/validate-deploy-configs.sh"},"_npmUser":{"name":"theappletucker","email":"parker@constellationlabs.xyz"},"deprecated":"this package has been deprecated","_npmVersion":"lerna/6.6.2/node@v16.16.0+x64 (linux)","description":"Contracts for Optimism Specs","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ethers":"^5.7.0","fs-extra":"^11.1.1","@aws-sdk/client-s3":"^3.370.0","@rari-capital/solmate":"github:transmissions11/solmate#8f9b23f8838670afda0fd8983f2c41e8037ae6bc","@openzeppelin/contracts":"4.7.3","clones-with-immutable-args":"github:Saw-mon-and-Natalie/clones-with-immutable-args#105efee1b9127ed7f6fedf139e1fc796ce8791f2","@openzeppelin/contracts-upgradeable":"4.7.3"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^7.1.6","ds-test":"github:dapphub/ds-test#c9ce3f25bde29fc5eb9901842bf02850dfd2d084","solhint":"^3.4.1","ts-node":"^10.9.1","forge-std":"github:foundry-rs/forge-std#e8a047e3f40f13fa37af6fe14e6e06283d9a060e","typescript":"^4.9.3","solhint-plugin-prettier":"^0.0.5","@typescript-eslint/parser":"^5.60.1","@typescript-eslint/eslint-plugin":"^5.60.1"},"_npmOperationalInternal":{"tmp":"tmp/contracts-bedrock_2.1.2_1695365538423_0.4235224608343351","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"@constellation-labs/contracts-bedrock","version":"1.1.3","license":"MIT","_id":"@constellation-labs/contracts-bedrock@1.1.3","maintainers":[{"name":"tsite","email":"pranav@caldera.xyz"},{"name":"wang7ong","email":"tong@constellationlabs.xyz"},{"name":"theappletucker","email":"parker@constellationlabs.xyz"}],"dist":{"shasum":"d4d0adf971e8b9baddb7d1a1998205fcc7357a8f","tarball":"https://registry.npmjs.org/@constellation-labs/contracts-bedrock/-/contracts-bedrock-1.1.3.tgz","fileCount":915,"integrity":"sha512-yahgy3lVzBfvC0Jnxqle5XxeZiABSouERiZfnJ7gKVl2U3YxGUaQ20U15MMoZTwFYbOY2rK8fXPb8c3viBZo+w==","signatures":[{"sig":"MEQCIFKf9yl0GEo2+7wv798mUIxw1X426Yl76DC7ht4DBz8ZAiACUNrA1w0Xym6T3G70vWDMyujBgo8kWkWm9kmzjmfyCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":173739112},"scripts":{"lint":"pnpm lint:fix && pnpm lint:check","test":"pnpm build:differential && pnpm build:fuzz && forge test","build":"npx nx build:contracts","clean":"rm -rf ./dist ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo ./src/contract-artifacts.ts ./test-case-generator/fuzz","slither":"./scripts/slither.sh","bindings":"cd ../../op-bindings && make","coverage":"pnpm build:differential && pnpm build:fuzz && forge coverage","lint:fix":"pnpm lint:contracts:fix && pnpm lint:ts:fix","build:fuzz":"(cd test-case-generator && go build ./cmd/fuzz.go)","lint:check":"pnpm lint:contracts:check && pnpm lint:ts:check","build:forge":"forge build","lint:ts:fix":"eslint --fix .","gas-snapshot":"pnpm build:differential && pnpm build:fuzz && forge snapshot --no-match-test 'testDiff|testFuzz|invariant|generateArtifact'","coverage:lcov":"pnpm build:differential && pnpm build:fuzz && forge coverage --report lcov","lint:ts:check":"eslint . --max-warnings=0","echidna:portal":"echidna-test --contract EchidnaFuzzOptimismPortal --config ./echidna.yaml .","slither:triage":"TRIAGE_MODE=1 ./scripts/slither.sh","build:contracts":"pnpm build:forge","echidna:hashing":"echidna-test --contract EchidnaFuzzHashing --config ./echidna.yaml .","echidna:aliasing":"echidna-test --contract EchidnaFuzzAddressAliasing --config ./echidna.yaml .","echidna:burn:eth":"echidna-test --contract EchidnaFuzzBurnEth --config ./echidna.yaml .","echidna:burn:gas":"echidna-test --contract EchidnaFuzzBurnGas --config ./echidna.yaml .","echidna:encoding":"echidna-test --contract EchidnaFuzzEncoding --config ./echidna.yaml .","echidna:metering":"echidna-test --contract EchidnaFuzzResourceMetering --config ./echidna.yaml .","storage-snapshot":"./scripts/storage-snapshot.sh","validate-spacers":"forge build && npx ts-node scripts/validate-spacers.ts","build:differential":"go build -o ./scripts/differential-testing/differential-testing ./scripts/differential-testing","lint:contracts:fix":"pnpm solhint --fix 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --write 'contracts/**/!(DisputeTypes|RLPReader).sol'","prebuild:contracts":"./scripts/verify-foundry-install.sh","build:with-metadata":"FOUNDRY_PROFILE=echidna pnpm build:forge","lint:contracts:check":"pnpm solhint -f table 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm prettier --check 'contracts/**/!(DisputeTypes|RLPReader).sol' && pnpm lint:forge-tests:check","autogen:invariant-docs":"ts-node scripts/invariant-doc-gen.ts","lint:forge-tests:check":"ts-node scripts/forge-test-names.ts","validate-deploy-configs":"./scripts/validate-deploy-configs.sh"},"_npmUser":{"name":"tsite","email":"pranav@caldera.xyz"},"description":"Contracts for Optimism Specs","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2022 Optimism\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","dependencies":{"ethers":"^5.7.2","fs-extra":"^11.1.1","@aws-sdk/client-s3":"^3.383.0","@rari-capital/solmate":"github:transmissions11/solmate#8f9b23f8838670afda0fd8983f2c41e8037ae6bc","@openzeppelin/contracts":"4.7.3","clones-with-immutable-args":"github:Saw-mon-and-Natalie/clones-with-immutable-args#105efee1b9127ed7f6fedf139e1fc796ce8791f2","@openzeppelin/contracts-upgradeable":"4.7.3"},"_hasShrinkwrap":false,"devDependencies":{"glob":"^7.2.3","ds-test":"github:dapphub/ds-test#c9ce3f25bde29fc5eb9901842bf02850dfd2d084","solhint":"^3.4.1","ts-node":"^10.9.1","forge-std":"github:foundry-rs/forge-std#e8a047e3f40f13fa37af6fe14e6e06283d9a060e","typescript":"^4.9.5","@types/node":"^16.18.39","solhint-plugin-prettier":"^0.0.5","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-bedrock_1.1.3_1704953047409_0.7176102392782511","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-08-02T03:57:14.808Z","modified":"2024-06-20T20:19:07.819Z","1.0.0":"2023-08-02T03:57:15.984Z","1.0.1":"2023-08-04T01:20:50.222Z","1.1.2":"2023-09-22T06:14:21.693Z","2.1.2":"2023-09-22T06:52:19.019Z","1.1.3":"2024-01-11T06:04:07.903Z"},"maintainers":[{"email":"ino@caldera.xyz","name":"ino_at_caldera"},{"email":"pranav@caldera.xyz","name":"tsite"},{"email":"parker@constellationlabs.xyz","name":"theappletucker"}],"license":"MIT","readme":"# Optimism Smart Contracts (Bedrock)\n\n[![codecov](https://codecov.io/gh/ethereum-optimism/optimism/branch/develop/graph/badge.svg?token=0VTG7PG7YR&flag=contracts-bedrock-tests)](https://codecov.io/gh/ethereum-optimism/optimism)\n\nThis package contains the smart contracts that compose the on-chain component of Optimism's upcoming Bedrock upgrade.\nWe've tried to maintain 100% backwards compatibility with the existing system while also introducing new useful features.\nYou can find detailed specifications for the contracts contained within this package [here](../../specs).\n\nA style guide we follow for writing contracts can be found [here](./STYLE_GUIDE.md).\n\n## Contracts Overview\n\n### Contracts deployed to L1\n\n| Name                                                                                     | Proxy Type                                                              | Description                                                                                         |\n| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |\n| [`L1CrossDomainMessenger`](../../specs/messengers.md)                                    | [`ResolvedDelegateProxy`](./contracts/legacy/ResolvedDelegateProxy.sol) | High-level interface for sending messages to and receiving messages from Optimism                   |\n| [`L1StandardBridge`](../../specs/bridges.md)                                             | [`L1ChugSplashProxy`](./contracts/legacy/L1ChugSplashProxy.sol)         | Standardized system for transfering ERC20 tokens to/from Optimism                                   |\n| [`L2OutputOracle`](../../specs/proposals.md#l2-output-oracle-smart-contract)             | [`Proxy`](./contracts/universal/Proxy.sol)                              | Stores commitments to the state of Optimism which can be used by contracts on L1 to access L2 state |\n| [`OptimismPortal`](../../specs/deposits.md#deposit-contract)                             | [`Proxy`](./contracts/universal/Proxy.sol)                              | Low-level message passing interface                                                                 |\n| [`OptimismMintableERC20Factory`](../../specs/predeploys.md#optimismmintableerc20factory) | [`Proxy`](./contracts/universal/Proxy.sol)                              | Deploys standard `OptimismMintableERC20` tokens that are compatible with either `StandardBridge`    |\n| [`ProxyAdmin`](../../specs/TODO)                                                         | -                                                                       | Contract that can upgrade L1 contracts                                                              |\n\n### Contracts deployed to L2\n\n| Name                                                                                     | Proxy Type                                 | Description                                                                                      |\n| ---------------------------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------ |\n| [`GasPriceOracle`](../../specs/predeploys.md#ovm_gaspriceoracle)                         | [`Proxy`](./contracts/universal/Proxy.sol) | Stores L2 gas price configuration values                                                         |\n| [`L1Block`](../../specs/predeploys.md#l1block)                                           | [`Proxy`](./contracts/universal/Proxy.sol) | Stores L1 block context information (e.g., latest known L1 block hash)                           |\n| [`L2CrossDomainMessenger`](../../specs/predeploys.md#l2crossdomainmessenger)             | [`Proxy`](./contracts/universal/Proxy.sol) | High-level interface for sending messages to and receiving messages from L1                      |\n| [`L2StandardBridge`](../../specs/predeploys.md#l2standardbridge)                         | [`Proxy`](./contracts/universal/Proxy.sol) | Standardized system for transferring ERC20 tokens to/from L1                                     |\n| [`L2ToL1MessagePasser`](../../specs/predeploys.md#ovm_l2tol1messagepasser)               | [`Proxy`](./contracts/universal/Proxy.sol) | Low-level message passing interface                                                              |\n| [`SequencerFeeVault`](../../specs/predeploys.md#sequencerfeevault)                       | [`Proxy`](./contracts/universal/Proxy.sol) | Vault for L2 transaction fees                                                                    |\n| [`OptimismMintableERC20Factory`](../../specs/predeploys.md#optimismmintableerc20factory) | [`Proxy`](./contracts/universal/Proxy.sol) | Deploys standard `OptimismMintableERC20` tokens that are compatible with either `StandardBridge` |\n| [`L2ProxyAdmin`](../../specs/TODO)                                                       | -                                          | Contract that can upgrade L2 contracts when sent a transaction from L1                           |\n\n### Legacy and deprecated contracts\n\n| Name                                                            | Location | Proxy Type                                 | Description                                                                           |\n| --------------------------------------------------------------- | -------- | ------------------------------------------ | ------------------------------------------------------------------------------------- |\n| [`AddressManager`](./contracts/legacy/AddressManager.sol)       | L1       | -                                          | Legacy upgrade mechanism (unused in Bedrock)                                          |\n| [`DeployerWhitelist`](./contracts/legacy/DeployerWhitelist.sol) | L2       | [`Proxy`](./contracts/universal/Proxy.sol) | Legacy contract for managing allowed deployers (unused since EVM Equivalence upgrade) |\n| [`L1BlockNumber`](./contracts/legacy/L1BlockNumber.sol)         | L2       | [`Proxy`](./contracts/universal/Proxy.sol) | Legacy contract for accessing latest known L1 block number, replaced by `L1Block`     |\n\n## Installation\n\nWe export contract ABIs, contract source code, and contract deployment information for this package via `npm`:\n\n```shell\nnpm install @eth-optimism/contracts-bedrock\n```\n\n## Development\n\n### Dependencies\n\nWe work on this repository with a combination of [Hardhat](https://hardhat.org) and [Foundry](https://getfoundry.sh/).\n\n1. Install node modules with pnpm (v8) and Node.js (16+):\n\n```shell\npnpm install\n```\n\n2. Install the correct version of foundry (defined in the .foundryrc file in the root of this repo.\n\n```shell\npnpm install:foundry\n```\n\n### Build\n\n```shell\npnpm build\n```\n\n### Tests\n\n```shell\npnpm test\n```\n\n#### Running Echidna tests\n\nYou must have [Echidna](https://github.com/crytic/echidna) installed.\n\nContracts targetted for Echidna testing are located in `./contracts/echidna`\nEach target contract is tested with a separate pnpm command, for example:\n\n```shell\npnpm echidna:aliasing\n```\n\n### Deployment\n\nThe smart contracts are deployed using `foundry` with a `hardhat-deploy` compatibility layer. When the contracts are deployed,\nthey will write a temp file to disk that can then be formatted into a `hardhat-deploy` style artifact by calling another script.\n\n#### Configuration\n\nCreate or modify a file `<network-name>.json` inside of the [`deploy-config`](./deploy-config/) folder.\nBy default, the network name will be selected automatically based on the chainid. Alternatively, the `DEPLOYMENT_CONTEXT` env var can be used to override the network name.\nThe spec for the deploy config is defined by the `deployConfigSpec` located inside of the [`hardhat.config.ts`](./hardhat.config.ts).\n\n#### Execution\n\n1. Set the env vars `ETH_RPC_URL`, `PRIVATE_KEY` and `ETHERSCAN_API_KEY` if contract verification is desired\n1. Deploy the contracts with `forge script -vvv scripts/Deploy.s.sol:Deploy --rpc-url $ETH_RPC_URL --broadcast --private-key $PRIVATE_KEY`\n   Pass the `--verify` flag to verify the deployments automatically with Etherscan.\n1. Generate the hardhat deploy artifacts with `forge script -vvv scripts/Deploy.s.sol:Deploy --sig 'sync()' --rpc-url $ETH_RPC_URL --broadcast --private-key $PRIVATE_KEY`\n\n#### Deploying a single contract\n\nAll of the functions for deploying a single contract are `public` meaning that the `--sig` argument to `forge script` can be used to\ntarget the deployment of a single contract.\n\n## Tools\n\n### Layout Locking\n\nWe use a system called \"layout locking\" as a safety mechanism to prevent certain contract variables from being moved to different storage slots accidentally.\nTo lock a contract variable, add it to the `layout-lock.json` file which has the following format:\n\n```json\n{\n  \"MyContractName\": {\n    \"myVariableName\": {\n      \"slot\": 1,\n      \"offset\": 0,\n      \"length\": 32\n    }\n  }\n}\n```\n\nWith the above config, the `validate-spacers` hardhat task will check that we have a contract called `MyContractName`, that the contract has a variable named `myVariableName`, and that the variable is in the correct position as defined in the lock file.\nYou should add things to the `layout-lock.json` file when you want those variables to **never** change.\nLayout locking should be used in combination with diffing the `.storage-layout` file in CI.\n","readmeFilename":"README.md"}