Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: update redesign with dev #77

Merged
merged 117 commits into from
Oct 2, 2024

Conversation

agusduha
Copy link
Member

@agusduha agusduha commented Oct 2, 2024

No description provided.

Inphi and others added 30 commits September 24, 2024 14:33
* chore: fix semver lock

* fix: no permissionless root, remove hash from 0xdead

* fix: use 0xdead root properly

* feat: add remaining fault proof support

* chore: Update semver-lock

* fix: Remove extra anchor root definition and restore aritfactsFs argument

* feat: Add wip big blueprint code

* Don't wrap input to deployBigBytecode with preamble

* fix: off by one in deployBigBytecode

* feat: more gas efficient blueprint deployment for permissioned game

* Get the big deployments working

* perf: more efficient preamble parsing

* chore: snapshots + fix revert

* test: skip FaultDisputeGameAddress since we don't deploy it yet

* chore: cleanup

---------

Co-authored-by: Matt Solomon <[email protected]>
Co-authored-by: Matthew Slipper <[email protected]>
…12035)

* forge install: superchain-registry

v0.1.2

* fix: better clarity around when we're in a broadcast context.
* fix: justfile clean command

* fix: removed stale comment
* test: Add permissioned game output assertions

* test: reorder DeployOpChainTest_Base for clarity

* Update packages/contracts-bedrock/test/DeployOPChain.t.sol

Co-authored-by: Matt Solomon <[email protected]>

---------

Co-authored-by: Matt Solomon <[email protected]>
* cannon: Cut unnecessary wakeup reset

* cannon: Cut now-extraneous state argument

* cannon: Run semver lock
)

* feat:add cannon add/addi/addu/addiu opcodes test

Signed-off-by: Chen Kai <[email protected]>

* feat:add cannon add/addu/addi/addiu opcodes test

Signed-off-by: Chen Kai <[email protected]>

---------

Signed-off-by: Chen Kai <[email protected]>
* cannon: Multi VM executor

* fix run subcmd arg fwding

* fix mt prestate

* add list subcmd; multicannon in op-stack-go

* remove cannon-latest

* safer strconv

* lint

* include .gitkeep in embed

* fix .git copy

* add detect.go tests

* add nosemgrep

* review comments

* list filtering

* add note to MIPS.sol in version stf ref

* use fork-exec

* minimal flag parsing

* load old cannon binaries from docker images

* note

* --help flag defaults

* remove redundant copy from cannon-builder-0
…ags (ethereum-optimism#12100)

* cannon: Build the cannon docker image and publish on cannon release tags.

* ci: Add docker builds as dependencies so they prevent merging if they fail.

* cannon: Include specific implementation builds in final docker image.
…mission time (ethereum-optimism#12002)

* tidy up godoc

* move data availability config decision to channel submission time

instead of channel creation time

Also, cache the ChannelConfig whenever we switch DA type so it is used by default for new channels

* fix test

* formatting changes

* respond to PR comments

* add unit test for Requeue method

* reduce number of txs in test block

* improve test (more blocks in queue)

* hoist pending tx management up

* wip

* tidy up test

* wip

* fix

* refactor to do requeue before calling nextTxData

* introduce ErrInsufficientData

do not return nextTxData from channel which was discarded by requeue

* run test until nonzero data is returned by TxData

* break up and improve error logic

* fix test to anticipate ErrInsufficientData

* after requeuing, call nextTxData again

* remove unecessary checks

* move err declaration to top of file

* add some comments and whitespace

* hoist lock back up to TxData

* rename variable to blocksToRequeue

* remove panic

* add comment

* use deterministic rng and nonecompressor in test

* test: increase block size to fill channel more quickly

* remove ErrInsufficientData

replace with io.EOF as before

* tidy up

* typo
…imism#12101)

Pick up the version from the release tag automatically.
* show log for devnet

* add comment
* test: assert that default config doesn't change prematurely

* test: use a better system to ensure we are not over assessing

* return io.EOF from getReadyChannel

when the current channel has no tx data

also improve godoc
…sm#12106)

* rename: proxyAdminOwner -> superchainProxyAdminOwner

* fix: renames in tests.

* fix: renaming in go code.

* fix: Changing the intent to contain SuperchainProxyAdminOwner instead of just ProxyAdminOwner

* fix: reverting last change
* Add support for pre-existing OPSM

This PR adds support for deploying OP Chains against an existing OPSM deployment. It adds a new `OPSMAddress` field to the intent to hold the address of the OPSM. When specified, the `ContractsRelease` field is ignored. In the future, this field will be pulled from the Superchain Registry.

Since the Go Forge tooling doesn't support forking yet, the deployment is performed using a raw call to `eth_sendRawTransaction`. Data about the Superchain deployments is pulled from the OPSM itself via `eth_call`. To expose the deployment output following the Superchain deployment, I updated the `Deployed` event to emit the ABI-encoded bytes of the `DeployOutput` struct to avoid stack-too-deep errors. This isn't ideal, but at least it gets me all of the fields I need in a log event without more invasive changes.

* chore: add version identifer to Deployed event

* chore: emit msg.sender in Deployed event

* Fix merge issues

* test: fix specs test

* semver-lock

* code review updates

---------

Co-authored-by: Matt Solomon <[email protected]>
…ptimism#12128)

* feat(opcm): Update comment about what gets deployed where

* test(deploy): Add note clarifying MCP readiness of DelayedWeths and Portal2
This was causing the test to fail in approx 5% of cases
…mism#12031)

* op-supervisor: supervisor-head-pointers squashed

change entry indices to head pointers, refactor block processor, backend fixes

Co-authored-by: Axel Kingsley <[email protected]>

* use ticker instead of time.After

---------

Co-authored-by: Axel Kingsley <[email protected]>
…ism#12131)

Standardizes the input and return argument formatting everywhere.
…sm#12117)

Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.76 to 7.0.77.
- [Release notes](https://github.com/minio/minio-go/releases)
- [Commits](minio/minio-go@v7.0.76...v7.0.77)

---
updated-dependencies:
- dependency-name: github.com/minio/minio-go/v7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
smartcontracts and others added 23 commits October 1, 2024 18:07
…2227)

Temporarily makes semgrep-scan not fail on error. Currently this
is a problem for external contributions because semgrep-scan loads
rules from the online app which requires a login. External
contributors don't get access to this login.
* cannon: 64-bit Refactor

Refactor Cannon codebase to support both 32-bit and 64-bit MIPS emulation
while reusing code as much as possible.

* fix 64-bit test compilation errors

* review comments

* more review comments

* fcntl syscall err for 64-bit

* simplify pad check

* cannon: sc must store lsb 32 on 64-bits

* lint

* fix sc 64-bit logic

* add TODO state test
* Configurable GasLimit for op-deployer

* fix: OPContractsManager.t.sol fixed.

* fix: OPContractsManagerInterop.sol

* fix: make gas limit configurable.
- The array was being appended to, but it was already a fixed length. This cause an empty chain to be added during `init`.
- The outdir will now be created if it does not exist and is not a file
- Hardcodes the contract artifacts to a good URL
…2234)

* cannon: Fix cli --stop-at-preimage value parsing

* Setup alloc type in system config
* use interfaces in opcm contracts

* fix change

* fix encodeConstructor omission

* fix wrong interface usage

* fix change

* fix change

* remove commented fn

* fix semver conflict issue
…rigin from events (ethereum-optimism#12134)

* Sequencer: Origin Selector optimistically prefetches the next origin in background

* L1OriginSelector erases cached state on reset

* L1OriginSelector attempts to fetch on ForkchoiceUpdateEvent

* Move to a fully event-driven model, no extra goroutines

* Add missing test comment

* Minor cleanup, more tests

* Tune the context timeouts
* feat:add cannon load/store opcodes tests

Signed-off-by: Chen Kai <[email protected]>

* fix:code review suggestion

Signed-off-by: Chen Kai <[email protected]>

---------

Signed-off-by: Chen Kai <[email protected]>
…12203)

* feat: Use DeploySuperchain script in Deploy.s.sol

Demonstrate that build breaks when using high level syntax

* fix: Cannot set null protocol versions error

* feat: Also save impls

* fix: semver lock

* fix: bump ProtocolVersions semver

* feat: Add superchainProxyAdmin

* feat: Undo removeing ProtocolVersion type from interface

* fix: semver-lock
…ism#12221)

* op-e2e: Retrieve AllocType from System instead of env

* Remove more uses of env.

* op-e2e: Run mt-cannon as an allocType without needing special env vars.
…ptimism#12226)

* feat: Use DeploySuperchain script in Deploy.s.sol

Demonstrate that build breaks when using high level syntax

* fix: Cannot set null protocol versions error

* feat: Also save impls

* fix: semver lock

* fix: bump ProtocolVersions semver

* feat: Add superchainProxyAdmin

* feat: Undo removeing ProtocolVersion type from interface

* fix: semver-lock

* feat: remove setupOpChainAdmin

* fix: transfer ProxyAdmin ownership after all setup is complete

* feat: separate deployImplementations

* feat: split up deployImplementations and deployImplementationsInterop

* fix: lint
* Configurable Dispute Game Parameters

* fix: more assertions for DeployOPChain.t.sol.

* fix: running pre-pr command.

* fix: changing dispute game types.

* fix: semver lock file change.

* fix: uint64 for maxGameDepth and splitDepth on go side.

* fix: safe casting in solidity
…#12235)

* feat: Add a test to simplify deploy script testing

* fix: lint

* feat: Add clarifying comments to DeployVariations_Test
* op-deployer: Custom gas price estimator

Sepolia's fees are super high and extremely volatile right now. As a result, it became difficult for users to deploy new chains using op-deployer. The OPCM's deploy transaction buys most of the gas in the block, and the default gas price estimation logic in the transaction manager wasn't aggressive enough for the transactions to land on chain in a timely manner.

This PR adds the ability to customize the transaction manager with a custom `GasPriceEstimator` function that returns the tip, base fee, and blob fee. I extracted the original logic in the transaction manager into a default estimator that will be used if one isn't specified. For op-deployer, I built a custom estimator that pads the head block's base fee by 20%, and multiplies the suggested tip by 10. After testing this, I was able to get transactions onto Sepolia reliably. The algorithm is pretty simple and overpays for transactions by a lot, but for op-deployer's use case it's more important that transactions land quickly than it is they be cheap. Deployments are a one-time thing.

* code review updates

* better default support

* specific test for extension
…12180)

* op-service: add queue package

* batcher: use Queue type for blocks

* revert changes to errors.As/Is

* implement and use Peek operation

* queue: add unit tests

* add godoc

* add more test cases

permute expected / got

* ensure enqueue and prepend are noops when args is empty

* use queue.PeekN and queue.DequeueN

* typo

* queue: simplify method implementations

* revert to old dequeue impl
* cannon: Define 64-bit syscalls

Also add SYS_FSTAT to the list of no-op syscalls emulated by MT-Cannon

* update semver-lock
* feat: Add a test to simplify deploy script testing

* fix: lint

* feat: Add clarifying comments to DeployVariations_Test

* feat: Extract deployment of pre-v1.6.0 code

* feat: combine setupOPChain and DeployOpChain

This will help to clarify where the DeployOpcChain script can be used.

* fix: op-e2e issues with unfound contracts

* fix: Undo conditional init of L2OutputOracle

It needs to be in the state no matter what for op-e2e

* fix: correct deploy ordering of legacy contracts

* ugly but working

* clean up legacy deployments

* enable FP on system config custom gas token tests

* op-e2e: allow no OptimismPortal impl if useFaultProofs

* fix: lint
@agusduha agusduha self-assigned this Oct 2, 2024
@agusduha agusduha changed the title fix: redesign merge conflicts fix: update redesign with dev Oct 2, 2024
@agusduha agusduha merged commit 1981789 into sc/superchain-erc20-redesign Oct 2, 2024
2 checks passed
@agusduha agusduha deleted the fix/redesign-merge-conflicts branch October 2, 2024 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.