- 17 Sep, 2024 4 commits
-
-
tre authored
-
AgusDuha authored
* feat: add superchain erc20 baseline (#37) * feat: add superchain erc20 baseline * feat: make superchain ERC20 simpler * fix: small version fix and tests * test: fix test name * test: remove unused import * feat: making baseline abstract * fix: interfaces to comply with the new interface checker * fix: import paths and empty line * fix: lint line --------- Co-authored-by:
0xng <ng@defi.sucks> Co-authored-by:
0xng <87835144+0xng@users.noreply.github.com>
-
Inphi authored
-
Matthew Slipper authored
* Add integration test for apply Adds an integration test for OP Deployer's `apply` method. This test uses Kurtosis to spin up an in-memory L1, deploy the contracts using OP Deployer, then asserts that there is code at all reported addresses. * Review updates
-
- 16 Sep, 2024 2 commits
-
-
mbaxter authored
* cannon: Extract RMW op handling from shared logic * cannon: Add more test cases of LL/SC behavior * cannon: Cut ll/sc-related logic from common mips code * cannon: Setup mips helpers to return memory modification info * cannon: Add new fields to track reserved memory * cannon: Add a boolean field indicating whether an ll reservation is active * cannon: Implement ll/sc for MTCannon * cannon: Add modified sysRead tests for MTCannon * cannon: Test store operations cleare memory reservations * cannon: Update SysClockGettime to clear ll memory reservation * cannon: Fix slither warning - initialize variable * cannon: Bump MIP2.sol version * cannon: Run semver, snapshot tasks * cannon: Cut unused log msg * cannon: Add new error to MIPS interfaces * cannon: Cut stale TODO
-
Adrian Sutton authored
* op-e2e: Move action test helpers for proofs to a separate package. * op-e2e: Use helpers package under proofs rather than a completely separate package tree for helpers.
-
- 15 Sep, 2024 2 commits
-
-
Matthew Slipper authored
-
Blaine Malone authored
* fix: Additional testing for inferring proxy admin from superchain config. * Apply suggestions from code review --------- Co-authored-by:
Matt Solomon <matt@mattsolomon.dev>
-
- 14 Sep, 2024 5 commits
-
-
Blaine Malone authored
* fix: getting stack underflow error. * feat: adding proxy infront of OPStackManager. * fix: PR comments, we're landing on using the initialize function over setRelease. * fix: rename function. * fix: nit * fix: infering proxy admin from superchain config. * fix: ran command: just pre-pr-no-build * fix: nits * fix: using CommonBase in DeployImplementations.s.sol. * op-chain-ops: pass superchain proxy admin address as input to deployments script --------- Co-authored-by:
Matt Solomon <matt@mattsolomon.dev> Co-authored-by:
protolambda <proto@protolambda.com>
-
Axel Kingsley authored
* op-e2e: interop test setup (work in progress) * op-e2e: interop test setup * organization and comment updates * refactor creation code into WIP system2 * save secrets per L2 * Add SuperSystem Interface ; Add Users and Transactions * Further Refactoring ; Fix Test * Add Supervisor * Add Supervisor Client * Comment out Proposer * Add AddL2RPC to Supervisor Client * Fully link Supervisor and OP Node in E2E Test * correct RPC call supervisor_checkBlock * Make EOF acceptable for backend check * final structure names * Change unused functions to _ for linter * fix import order * Add Github Issue Numbers to TODOs * tynes comments: add World Resource as configurable --------- Co-authored-by:
protolambda <proto@protolambda.com>
-
Maurelian authored
* feat: Scaffolding for DeployAuthSystemInput * feat: Scaffolding for DeployAuthSystem Output * feat: Address feedback and remove comments
-
mbaxter authored
* cannon: Handle preimage bounds checks consistently * cannon: Cleanup stray comment
-
protolambda authored
* op-chain-ops/interopgen: OPSM powered interop genesis * ci: make forge scripts available to op-e2e * op-chain-ops: address interopgen review comments
-
- 13 Sep, 2024 17 commits
-
-
Maurelian authored
* feat: Scaffolding for DeployAuthSystemInput * fix: Remove undefined import * feat: Address feedback
-
Adrian Sutton authored
Automatically use the correct format if it has been recorded. Change the default format to directory. Compatibility with op-challenger is preserved because it now uses the automatic format detection, defaulting to file if not specified (e.g for kona-host).
-
clabby authored
* feat: `op-program` actor test API improvements * lint * sort fix * rebase
-
Adrian Sutton authored
* op-program: Support injecting a Prefetcher creator rather than setting code on the Config object. * op-program: Use an interface for the Prefetcher instead of requiring a concrete type.
-
Inphi authored
* op-e2e: Use mt-cannon Introduces a `USE_MT_CANNON` env to optionally enables MT-Cannon in op-e2e integration tests * a couple of fixes * fix todo
-
smartcontracts authored
Fixes an incorrect import inside of ManageDrippie.s.sol. Seems to work just fine when forge install is executed but not otherwise.
-
clabby authored
-
Mark Tyneway authored
* contracts-bedrock: add permit functionality to mintable erc20 Adds `permit` functionality to `OptimismMintableERC20` tokens that are deployed by the `OptimismMintableERC20Factory`. * feat: max approve permit2 in ERC20Mintable This commit max approves permit2 automatically for all holders of the ERC20 bridge token. This enables all users on OP stack chains to skip an approval step for actions on protocols utilizing permit2 e.g. Uniswap * fix: constants first * semver-lock: update * snapshots: fix * contracts: add natspec * semver-lock: update * contracts-bedrock: fix nits * snapshots: update --------- Co-authored-by:
Mark Toda <toda.mark@gmail.com>
-
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 10 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
-