- 13 Sep, 2024 1 commit
-
-
smartcontracts authored
Updates test-heavy-fuzz-modified-tests to skip any files that don't have any modified fuzz tests.
-
- 12 Sep, 2024 26 commits
-
-
Matthew Slipper authored
This PR adds a proof-of-concept for `op-deployer`, a CLI tool that allows declarative management of live OP Stack chains. This POC supports initializing the declarative chain config (called an "intent") and deploying the Superchain smart contracts using the OP Stack Manager. An example intent for a Sepolia chain looks like this: ```toml l1ChainID = 11155111 useFaultProofs = true useAltDA = false fundDevAccounts = true contractArtifactsURL = "file:///Users/matthewslipper/dev/optimism/packages/contracts-bedrock/forge-artifacts" [superchainRoles] proxyAdminOwner = "0xb9cdf788704088a4c0191d045c151fcbe2db14a4" protocolVersionsOwner = "0xb910764be39c84d572ff17713c615b5bfd7df650" guardian = "0x8c7e4a51acb17719d225bd17598b8a94b46c8767" ``` When deployed, it produces a state file that looks like this: ```json { "version": 1, "appliedIntent": { "l1ChainID": 11155111, "superchainRoles": { "proxyAdminOwner": "0xb9cdf788704088a4c0191d045c151fcbe2db14a4", "protocolVersionsOwner": "0xb910764be39c84d572ff17713c615b5bfd7df650", "guardian": "0x8c7e4a51acb17719d225bd17598b8a94b46c8767" }, "useFaultProofs": true, "useAltDA": false, "fundDevAccounts": true, "contractArtifactsURL": "file:///Users/matthewslipper/dev/optimism/packages/contracts-bedrock/forge-artifacts", "chains": null }, "superchainDeployment": { "proxyAdminAddress": "0x54a6088c04a7782e69b5031579a1973a9e3c1a8c", "superchainConfigProxyAddress": "0xc969afc4799a9350f9f05b60748bc62f2829b03a", "superchainConfigImplAddress": "0x08426b74350e7cba5b52be4909c542d28b6b3962", "protocolVersionsProxyAddress": "0x212a023892803c7570eb317c77672c8391bf3dde", "protocolVersionsImplAddress": "0x2633ac74edb7ae1f1b5656e042285015f9ee477d" } } ``` To use `op-deployer`, run `op-deployer init --dev --l1-chain-id <chain-id>`. This will initialize a deployment intent using the development keys in the repo. Then, run `op-deployer apply --l1-rpc-url <l1-rpc> --private-key <deployer-private-key>` to apply the deployment. - The contracts deployment is performed by the local Go/Forge tooling. - Upgrades of the contracts (i.e. modifying them after deploying the contracts afresh) is not currently supported. This will be supported in the future. - The rest of the pipeline (i.e., deploying L2s and generating genesis files) is not included in this PR to keep it smaller and allow us to get buy-in on the fundamental concepts behind `op-deployer` before further implementation.
-
Matthew Slipper authored
This reverts commit 87af6f0d.
-
Sebastian Stammler authored
-
Sebastian Stammler authored
-
smartcontracts authored
Our "just clean" command was deleting the entirety of .testdata which gets in several scripts now. We don't actually want to delete the entirety of .testdata, we want to delete anything inside of it (except for the gitkeep file).
-
AgusDuha authored
* test: add L2 standard bridge interop unit tests (#13) * test: add L2 standard bridge interop unit tests * fix: add tests natspec * fix: unit tests fixes * fix: super to legacy tests failing * fix: mock and expect mint and burn * fix: add generic factory interface (#14) * test: add L2 standard bridge interop unit tests * fix: add tests natspec * fix: add generic factory interface * feat: modify OptimismMintableERC20Factory for convert (#17) * test: add L2 standard bridge interop unit tests * fix: add tests natspec * fix: add generic factory interface * feat: modify OptimismMintableERC20Factory for convert * fix: use only a public function for create3 * feat: rollback interop factory, modify legacy one * fix: delete local token return variable * fix: PR fixes * feat: add superchain erc20 factory implementation (#23) * feat: add superchain erc20 factory implementation * fix: remove createX comments * test: add superchain erc20 factory tests (#25) * test: add superchain erc20 factory tests * test: add erc20 asserts * test: fix expect emit * fix: remove comments * feat: add constructor to superchain ERC20 beacon (#34) * test: remove factory predeploy etch ---------- Co-authored-by:
0xng <ng@defi.sucks> Co-authored-by:
0xParticle <particle@defi.sucks> Co-authored-by:
gotzenx <78360669+gotzenx@users.noreply.github.com> * fix: set an arbitrary address for superchain erc20 impl * fix: deploy a proxy for the beacon on genesis (#45) --------- Co-authored-by:
0xng <ng@defi.sucks> * fix: conflicts and imports * fix: interfaces * chore: add .testdata * fix: adding back .testdata to gitignore * fix: new conflicts from ci improvements --------- Co-authored-by:
0xng <ng@defi.sucks> Co-authored-by:
0xParticle <particle@defi.sucks> Co-authored-by:
gotzenx <78360669+gotzenx@users.noreply.github.com> Co-authored-by:
Disco <131301107+0xDiscotech@users.noreply.github.com>
-
Matthew Slipper authored
* Add SendAsync to TxMgr Adds a SendAsync method to TxMgr. I'd like to use this for `op-deployer`, which needs to send multiple transactions in parallel but with predictable nonces. `SendAsync` returns a channel that resolves with the result of each send, but synchronously increases the nonce and prepares the first send prior to returning. * review updates + tests
-
clabby authored
* chore: Cleanup proofs actions * tidy * lint * adrian review * move `RunFaultProofProgram` onto the `L2FaultProofEnv` type * chore(op-program): Turn off `fsync` on pebble KV store
-
wissyLeeei authored
-
Inphi authored
* cannon: Fix GC emulation of Go programs Improves Linux/MIPS32 emulation for Go programs that utilize the garbage collector and goroutine scheduling. This adds support for the following syscalls: - getpid - used by the go scheduler - clock_gettime - used by the go scheduler and for GC assists and to properly emulate time related operations such as `time.Sleep`. Note on GC assists: The Go GC relies on `clock_gettime` for GC "assists", whereby a mutator can perform a little bit of GC without waiting for the scheduler to do so. A monotonic clock (runtime.nanotime) is used to compute the current goroutine's compute budget. By modeling a MIPS32 CPU that runs at some clock speed (ex: 10 MHz), we can provide a consistent emulation of monotonic time needed by the Go runtime. All other clock_gettime flags are handled as unimplemented syscalls. * fix unsupported syscalls test * fix some review comments * address review comments * update snapshots * fuzz invalid memory proof * reduce test runtime * tweak realtime emulation * reduce test runtime * set a high timeout for heavy fuzz tests * simplify fuzz * fix heavy tests
-
Adrian Sutton authored
-
clabby authored
* chore: Cleanup proofs actions * tidy * lint * adrian review * move `RunFaultProofProgram` onto the `L2FaultProofEnv` type
-
Ratan Kaliani authored
-
Adrian Sutton authored
-
clabby authored
* feat: Helper for dumping `fp-tests` fixtures in `op-program` action tests * adrian review
-
smartcontracts authored
Updates the output of the check-interfaces script to be more clear about cases when removing items from the EXCLUDE_CONTRACTS list is acceptable and how to verify that an item is unnecessary.
-
smartcontracts authored
Adds a comment to OptimismPortal2 that further explains the proofSubmitters mapping.
-
Adrian Sutton authored
-
smartcontracts authored
IBeacon should've thrown an error but didn't, need to investigate why that was the case. For now I've added it to the ignore list.
-
clabby authored
* feat: Run `op-program` in `op-e2e` action tests * configurable forks * golint / op-program test * use correct endpoint
-
smartcontracts authored
Adds interfaces for all remaining L1 contracts. L2 contracts are next!
-
Adrian Sutton authored
* op-challenger: Add a "big" op-challenger docker image including asterisc and kona * proofs-tools: Rename op-challenger-deps to proofs-tools and use tagged asterisc and kona sources. * proofs-tools: Use more recent version of challenger for testing * proofs-tools: Remove TODO * proofs-tools: Only build for amd64 - kona doesn't support arm64. * proofs-tools: Add README * proofs-tools: Use challenger v1.1.0
-
Inphi authored
* op-contracts/v1.6.0-rc.1 release (#11528) * Fix deploy-config absolute prestate * chore: update semver-lock --------- Co-authored-by:
smartcontracts <kelvin@optimism.io> Co-authored-by:
Kelvin Fichter <kelvinfichter@gmail.com>
-
smartcontracts authored
Adds a new script that can run extra fuzz test iterations when new fuzz tests are added. Can be used in CI or locally to make sure that new fuzz tests aren't flaky.
-
Samuel Laferriere authored
* feat: initial goroutine blob submission implementation test(batcher): add e2e test for concurrent altda requests doc: add explanation comment for FakeDAServer chore: fix if condition in altda sendTransaction path feat: add maxConcurrentDaRequests config flag + semaphore refactor: batcher to use errgroup for da instead of separate semaphore/waitgroup fix: nil pointer bug after using wrong function after rebase fix: defn of maxConcurrentDaRequests=0 fix: TestBatcherConcurrentAltDARequests chore: remove unneeded if statement around time.Sleep refactor: use TryGo instead of Go to make logic local and easier to read chore: clean up some comments in batcher chore: make batcher shutdown cancel pending altda requests by using shutdownCtx instead of killCtx * chore(batcher): make altda wg wait + log only when useAltDa is true * refactor: batcher altda submission code into its own function * test: refactor batcher e2e test to only count batcher txs * chore: log errors from wait functions * chore: refactor and minimize time that e2e batcher system tests can run * chore: lower timeout duration in test * fix(batcher): maxConcurentDARequests was not being initialized
-
Matt Solomon authored
-
- 11 Sep, 2024 9 commits
-
-
Matthew Slipper authored
* Add entrypoint to deploy against existing Superchain Creates a separate entrypoint in the deploy script to allow an L2 to be deployed against an existing set of Superchain contracts. The deployment assumes that the Superchain contracts have been deployed correctly. The L2 still gets its own ProxyAdmin, AddressManager, and Safe. The API is additive and backwards-compatible. * Update packages/contracts-bedrock/scripts/deploy/Deploy.s.sol Co-authored-by:
Maurelian <john@oplabs.co> * remove redundant call --------- Co-authored-by:
Maurelian <john@oplabs.co>
-
smartcontracts authored
Updates the contracts-bedrock-tests job to only build the specific tests that are being tested as part of the test split for that job. Also merges the other contracts-bedrock-build with build-devnet-allocs since this is a bottleneck now. Overall impact is that CI time is now 7-10 minutes.
-
smartcontracts authored
Another PR adding contract interfaces. L1 contract interfaces are way more involved than everything else so we're required to start replacing the contracts with interfaces all over the place.
-
Matt Solomon authored
* refactor: remove structs from DeploySuperchainInput and DeploySuperchainOutput * test: fix tests * test: fix test * chore: remove outdated struct references * pr feedback * chore: code comments
-
Matthew Slipper authored
* Improvements/bugfixes to Go forge scripts Adds some improvements to the Go forge scripts: - Adds a `GasUsed` field to the `Broadcast` struct so that transaction broadcast utilities can use it for gas estimation. Gas estimation using the RPC will fail when sending transactions in parallel since the state can change significantly between calls. - Fixes a bug in the `vm.broadcast` cheatcode where sender nonce were not increased for `vm.CALL`s. This led to a mismatch between the contract addresses generated by the Forge tooling, and what was actually being generated onchain. * op-chain-ops: isolate broadcast functionality * review updates * wrap in broadcast check * Add nonce tests * Update op-chain-ops/script/script.go Co-authored-by:
protolambda <proto@protolambda.com> * Fix test * op-chain-ops: track broadcast nonce, add sanity checks --------- Co-authored-by:
protolambda <proto@protolambda.com>
-
Skeletor Spaceman authored
* interop: disable interop messages in force-deposits Co-authored-by:
Disco <131301107+0xDiscotech@users.noreply.github.com> * interop: clean up config helpers * op-node: fix/improve L1 info tx tests * op-node: fix attributes test * op-node: fix sequence-number usage in post-interop system deposit, fix tests * op-contracts: L1Block interop: fix diff, remove duplicate test from renaming * contracts: update metadata * contracts: fix build warnings * contracts: fix interface build * script: ignore * lint: fix * test: .testdata directory * tests: fix revert --------- Co-authored-by:
Disco <131301107+0xDiscotech@users.noreply.github.com> Co-authored-by:
protolambda <proto@protolambda.com> Co-authored-by:
Mark Tyneway <mark.tyneway@gmail.com>
-
smartcontracts authored
-
smartcontracts authored
semgrep-scan kept failing with a medium docker image with 4g RAM. Updating this image to large seems to fix the issue.
-
Inphi authored
-
- 10 Sep, 2024 4 commits
-
-
smartcontracts authored
OptimismPortal fuzz tests were flaking because the base fee would increase so much that there wouldn't be enough gas to burn for the user to be able to buy the gas that they want. Introduces an additional assumption that will prevent the elasticity multiplier and max change denominator from being such that the maximum change to the base fee won't cause us to run out of gas.
-
protolambda authored
-
Matt Solomon authored
* begin supporting specifying versions in OPSM * add deploy logic * deploy OPSM along with implementations * scaffold opsm interface between scripts * fixes * mvp of DeployOPChain * start working on an e2e opsm test, currently reverts * fix tests * test cleanup * rename opsmSingleton to opsm * chore: remove unused imports * refactor: switch from 'new' to blueprints, 50% code size reduction * fix semgrep * feat: add OPSM interop tests * test: add missing specs * add DisputeGameFactory deployment * chore: update snapshots * fix opsm interop support * chore: update snapshots * Update packages/contracts-bedrock/test/DeployOPChain.t.sol * fix: add L1StandardBridge setter and initialization * chore: small clarification of deploy flow * Update packages/contracts-bedrock/scripts/DeployImplementations.s.sol Co-authored-by:
Blaine Malone <blainemalone01@gmail.com> * chore: add todos * fix: change bytes32 to string * rename addrs to opChainAddrs for clarity * test: fix assertion string numbering * chore: update semver lock: --------- Co-authored-by:
Blaine Malone <blainemalone01@gmail.com>
-
Sam Stokes authored
* op-node: read DACommitmentType from scr in LoadOPStackRollupConfig * op-node: check for altda nil pointers before dereferencing * op-node: leave altDA config nil if not existent in scr config
-