- 13 Sep, 2024 9 commits
-
-
clabby authored
* feat: Add channel timeout tests for `op-program` * typo * assert error * fix comment * feat: Add garbage frame tests for `op-program` * assert error * fix comment
-
clabby authored
* feat: Add channel timeout tests for `op-program` * typo * assert error * fix comment
-
Matt Solomon authored
* refactor: remove structs from DeployImplementations * refactor: remove structs from DeployOPChain * test: fix tests * Update packages/contracts-bedrock/test/DeployOPChain.t.sol Co-authored-by:
Blaine Malone <blainemalone01@gmail.com> * Update packages/contracts-bedrock/test/DeployOPChain.t.sol Co-authored-by:
Blaine Malone <blainemalone01@gmail.com> * test: add missing assertions * fix: update fuzz test timeout --------- Co-authored-by:
Blaine Malone <blainemalone01@gmail.com> Co-authored-by:
Kelvin Fichter <kelvinfichter@gmail.com>
-
smartcontracts authored
Renames the Safe folder (uppercase) to safe (lowercase) in line with all other folders.
-
smartcontracts authored
Adds interfaces for the two governance contracts.
-
Sebastian Stammler authored
-
zhiqiangxu authored
* discard candidate when ahead * also discard result.Unsafe for consistency * remove unnecessary type convertion for FakeGenesis * Revert "also discard result.Unsafe for consistency" This reverts commit d2288d4a01bb4176fd1a3c6e1901646c7bb404c7. * remove type cast
-
smartcontracts authored
Tweaks various parameters for the heavy fuzz run tests to prevent the test from taking too long. We can run a daily super heavy fuzz run instead to catch any rare flakes.
-
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 5 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>
-