- 12 Sep, 2024 18 commits
-
-
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 13 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
-
Emiliano Bonassi authored
* fix(op-batcher): initAltDA before initChannelConfig * chore(op-bastcher): fix comment
-
Matthew Slipper authored
* Add broadcast API to Go forge scripts Adds a hooks-based API to collect transactions broadcasted via `vm.broadcast(*)` in the Go-based Forge scripts. Users pass an `OnBroadcast` hook to the host, which will be called with a `Broadcast` struct with the following fields whenever a transaction needs to be emitted: ```go type Broadcast struct { From common.Address To common.Address Calldata []byte Value *big.Int } ``` This API lets us layer on custom transaction management in the future which will be helpful for `op-deployer`. As part of this PR, I changed the internal `callStack` data structure to contain pointers to `CallFrame`s rather than passing by value. I discovered a bug where the pranked sender was not being cleared in subsequent calls due to an ineffectual assignment error. I took a look at the implementation and there are many places where assignments to call frames within the stack happen after converting the value to a reference, so converting the stack to store pointers in the first place both simplified the code and eliminated a class of errors in the future. I updated the public API methods to return copies of the internal structs to prevent accidental mutation. * Code review updates * moar review updates * fix bug with staticcall
-
Adrian Sutton authored
-
Brian Bland authored
* feat: Add nested directory data format for op-program kvstore * Review feedback: Update error message Co-authored-by:
Adrian Sutton <adrian@symphonious.net> * op-program: Make directory preimage format the default. --------- Co-authored-by:
Adrian Sutton <adrian@symphonious.net> Co-authored-by:
Adrian Sutton <adrian@oplabs.co>
-
Michael de Hoog authored
* Fix race condition in sequencer stopping logic * Add channel to signal that latestHead has been updated * Fix test * Store latest sealed separately, as latest gets cleared by engine.PayloadSuccessEvent * Cleanup tests * Add assertions on latest block ref variables * Re-check if sequencer is active
-
Adrian Sutton authored
-
Adrian Sutton authored
* cannon: Autodetect VM type from state in run command * cannon: Autodetect VM type from state in witness command * cannon: Remove vm type flag from run and witness * cannon: Only peek the version byte * cannon: Move all version handling to VersionedState, simplify a lot and forbid serializing multithreaded states to JSON * cannon: Rename method * op-challenger: Update cannon state parsing to use version detecting methods * cannon: Move CreateVM to FPVMState for simplicity Test read/write/create for VersionedState * cannon: Readd detect_test * cannon: Remove json names from multithreaded.State. Multithreaded states always use binary serialization. * cannon: Move vmtype to load_elf since it is no longer shared. * cannon: Ensure metadata is available and sleepCheck used even if debug is disabled. * op-challenger: Update canon state loading test to cover multiple state versions.
-
smartcontracts authored
First in a series of PRs adding interfaces for L2 contracts. Since each of these changes involves touching a lot of other contracts it seemed easier to split this up into several PRs for legibility.
-
Adrian Sutton authored
Avoids being surprised by the special handling for - and empty string output paths.
-