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

Merge upstream 20240520 #15

Merged
merged 61 commits into from
May 20, 2024
Merged

Merge upstream 20240520 #15

merged 61 commits into from
May 20, 2024

Conversation

boyuan-chen
Copy link

No description provided.

geoknee and others added 30 commits March 18, 2024 09:49
…C upgrade (ethereum-optimism#139)

* update optimism_portal semver (op sepolia)

* refactor check-security-configs into shell script

this makes it slightly easier to run locally

* remove unecessary forge build step

* skip certain checks for sepolia/op

because it upgraded to FPAC

* run forge fmt

* add forge build command back in

* revert removal of isMainnet boolean

* add TODO
…imism#121)

* pull "adding a chain" section higher in CONTRIBUTING.md

* make add-chain script smarter

can detect need for a new superchain target

* clarify steps 1-4 of adding a chain

also that adding a superchain target is unecessary
…reum-optimism#134)

* make bounds much wider

* (validation) remove redundant value and just use bounds

* set ecotone scalar bounds to {0,1e7}

---------

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

* enshrine type="standard|frontier" in config

and update scripts and instructions accordingly

* hydrate type information into go module, and exclude non standard chains

* split existing chains into standard/frontier

* hydrate new 2 new mappings in Go module StandardChains and FrontierChains

Retain existing OPChains (contains the union of Standardchains and FrontierChains)

* run linter

* remove whitespace

* respond to review comments

* update add-chain.sh script

- add show_usage() fn
- use SUPERCHAIN_LEVEL var

* update existing chains to use superchain_level

* replace type with superchainlevel in go bindings

* remove extra chain mappings

* revert init changes

* export SuperchainLevel enum consts

* exclude Frontier chains from most checks

* lint

---------

Co-authored-by: Matt Solomon <[email protected]>
* fix: clean up validation check exclusions

- ensure t.Skip() command is properly nested under t.Run(), so we skip the subtest only
- trim down isExcluded lists
  - either that chain now passes because tests have been relaxed
  - that chain no longer exists
  - that chain is skipped because it is a Frontier chain

* lint
…eum-optimism#157)

* add legacy l2oo bindings

and a way to check parameters via  older contract ABIs

* unskip OP mainnet

it runs l200 @ 1.7.0, which means it isn't running an "old" version of the contract anymore.

* remove frontier chains from l200 check

* unskip several standard chains from l200 check

we can now successfully validate them

* remove debug log line

* add TODO comment

* strip down legacy bindings

bare minimum for the calls we need to do

* tweak comment
…cks (ethereum-optimism#159)

* excludle mainnet/pontem from contract version checks

ethereum-optimism/security-pod#105

* exclude sepolia/mode from contract version checks

ethereum-optimism/security-pod#105

* exclude mainnet/metal from contract version checking

ethereum-optimism/security-pod#105

* exclude sepolia/metal from contract version checking

ethereum-optimism/security-pod#105
… name regex) (ethereum-optimism#158)

* introduce and use perChainTestName standard

allows test to be focussed like so:

go test -run=/OP-Sepolia

or

go test -run=/11155420

or even

go test -run=TestGasPriceOracleParams/11155420

* clean up / remove t.Log statements
* Update CODEOWNERS per team responsibilities

* Update CODEOWNERS
* add extra contribution guidance

* Update CONTRIBUTING.md

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

---------

Co-authored-by: Matt Solomon <[email protected]>
* scrape hardfork times in add-chain.sh

* add tip in CONTRIBUTING.md
* check superchain level on package init

* rename Type to SuperchainLevel

* rename symbol

* rename to Must- function
* use assert instead of require in version validation check

this means we get more information when the test fails and it is easier to see all of the problematic versions

* updat mainnet superchain semver.yaml file following MCP upgrade

https://etherscan.io/tx/0x4758bd62359bc69d7e8a0faaf5308d826379c23258d689a7430d5c0ad0361ad2#eventlog

* update ProxyAdminOwner for sepolia/zora (ethereum-optimism#176)

* update ProxyAdminOwner for sepolia/zora

* pnpm codegen

---------

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

---------

Co-authored-by: Matt Solomon <[email protected]>
We're gathering the same information for both standard and frontier chains
* fix(hack): skip sepolia devnet

* test: change expected superchain target count

* chore: remove leftover print statement

* chore: clarify chain ID is L1 chain ID

* chore: move skip logic down since most data is keyed off the name

* Update mainnet semver following MCP upgrade (ethereum-optimism#175)

* use assert instead of require in version validation check

this means we get more information when the test fails and it is easier to see all of the problematic versions

* updat mainnet superchain semver.yaml file following MCP upgrade

https://etherscan.io/tx/0x4758bd62359bc69d7e8a0faaf5308d826379c23258d689a7430d5c0ad0361ad2#eventlog

* update ProxyAdminOwner for sepolia/zora (ethereum-optimism#176)

* update ProxyAdminOwner for sepolia/zora

* pnpm codegen

---------

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

---------

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

* Update .env.example (ethereum-optimism#173)

We're gathering the same information for both standard and frontier chains

* test: patch tests to ignore devnet chains + gofumpt

* test: additional test skips

---------

Co-authored-by: George C. Knee <[email protected]>
Co-authored-by: soyboy <[email protected]>
* enhance add-chain.sh to scrape missing addresses

Uses cast call, so introduces an extra dependency and network requests into this script

* add that Go is a dep.
* Add pontem mainnet

* Add Mode Sepolia

* Add metal

* Skip tests for metal/mode/superlumio until they can be debugged
* fix typo

* another typo
* add definition for superchain target

* Update CONTRIBUTING.md

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

---------

Co-authored-by: Matt Solomon <[email protected]>
* add basic rpc chain id test for all chains

* golangci-lint run superchain/... validation/... --fix

* use require.NoError

* require.NoError

* add retry logic
…mism#185)

* sketch out pattern to declare standard config in toml

* tidy up

* go mod tidy

* remove unused fn

* remove comment in toml file

* remove blank line
* update sepolia/metal Guardian address

* pnpm codegen

* update sepolia/mode Guardian address

* pnpm codegen
* Revert "fix(hack): skip sepolia devnet (ethereum-optimism#172)"

This reverts commit 7ee6b3c.

* key Implementations mapping by superchain name
mds1 and others added 24 commits April 24, 2024 13:32
* rename pontem to superlumio in comment

* prefer assert over require

this way, we get full information necessary to realign a chain with expectations

---------

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

* convert l200 expectations to be bounds

* loosen l200 config bounds and unskip metal,superlumio

* update comments on exclusions

* remove struct tags

* use "challengePeriodSeconds" instead of "finalizationPeriodSeconds" in standard config declaration

This matches the specs https://specs.optimism.io/protocol/configurability.html?highlight=standard%20config#consensus-parameters

We retain the other name on the data scraping side of the test, since that is how it is named in the smart contract itself at the moment.

* increase minimum submission interval to 1

this is measured in L2 blocks, so 0 doesn't make sense

* add comments to TOML files

explaining  challenge_period=finalization period
* add TestGenesisHashAgainstRPC

* lint

* perform rpc genesis hash check using declared genesis block number
* Convert add-chain.sh into a go package

* Create  go module

* Fixes to produce correct output files from addchain module

* Rename go module addchain to add-chain

* Remove duplicate invocation of registry-data go program

* Add conditional when searching for contract addrs from file

* Add e2e test for add-chain go module

* Finish removing add-chain go test dep on monorepo

* Rename add-chain test files to expected.[json|yam]l

* Retrieve L1 url from superchain package instead of hardcoding

* Use consistent go 1.21 version in all go.mod files

* Read contract addresses from .deploy file within add-chain

* Move add-chain/.env.test into testdata dir

* Refactor 'cast call' commands to reduce duplicate code

* Fix call to OptimismPortalProxy.guardian() - instead of calling GUARDIAN()

* Removed unused genesis.json file from add-chain/testdata dir

* Use custom yaml encoder to add whitespace

* Compare config raw bytes instead of structs in e2e test

* Add human readable timestamp as comments in yaml file

* Remove hardfork timestamp overrides if they match superchain defaults

* Move enhanceYAML to a method of RollupConfig

* Add godoc comments to a few functions

* improve cast call error handling (ethereum-optimism#215)

* Address PR comments

* Run gofumpt and golangci-lint

* Install foundry in Circle CI for cast call in tests

* Fix timestamp to use consistent UTC+0 timezone

* Set Circle CI shell type to bash

* Move shell type to job level in Circle CI

---------

Co-authored-by: George C. Knee <[email protected]>
…hereum-optimism#218)

* fix: remove L2OO from  OPsepolia, its deprecated with fault proofs

* add L2OO exclusions for OP Sepolia (being a Fault Proof chain)

* lint

---------

Co-authored-by: geoknee <[email protected]>
* Use rpc endpoints stored in Circle CI if available

* Revert change to auto-generated file
* Add support for plasma chains

* Run golangci-lint

* Fix formatting in test .json file

* Deduplicate DAChallengeAddress by omitting from .yaml

* Use separate struct for json Unmarshal to reduce downstream risk

* Use pointer to Plasma struct within ChainConfig

* Reformat JSONChainConfig to un-inline PlasmaConfig
* standard-config: add batcher_inbox_address

* add batcher_hash

* move standard config to separate package

* move helper and refactor

* add gas-limit_test.go

* remove dead code

* increase mimum gas limit to 8M

* renaming

* more renaming
* Add SEAL chains for exercise

* Seal chain ids

* resubmitting with script outputs

* bump l2outputoracle semver

* fix semvers and add config for validation script

* add protocol_version_addr for now

* run codegen

* rename to sealchain-1 and sealchain-2

* delete old files with old name

* changing to sepolia target

* Update seal chains to match sepolia config

- Finalization period
- Challenger
- Guardian
- Superchain Config

Exclude seal chains from version check

* rerun codegen

* fix: Incorrect expected guardians in metal, mode, op, zora on Sepolia

* Exclude seal chains from version, l2oo checks

---------

Co-authored-by: rholterhus <[email protected]>
* feat: Update OP Sepolia addresses

## Overview

Updates the addresses on OP Sepolia in accordance w/ the upgrade in
ethereum-optimism/superchain-ops#200

* add ASR + delayedweth impls

* bump semvers

* Update sealchain addresses to pass CI (ethereum-optimism#241)

* Update sealchain-2.json to pass CI

* pnpm codegen

* Update sealchain-1.json

* pnpm codegen

---------

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

---------

Co-authored-by: Kevin Z Chen <[email protected]>
Co-authored-by: Matt Solomon <[email protected]>
…optimism#233)

* remove exclusions

* add test cases for new desired behaviour

* implement superchain_time and new override behaviour

* fix corner case

* reinstate metal overrides

* declare op-labs-sepolia-dev-0 is superchain

* add comments

* all op chains are superchain

* fix test

* clarify new behaviour for hardfork overrides

* restore inheritance of hardfork times for most chains

this has no effect on the genesis hash, but is used by the GasPriceOracle checks which switch on isEcotone to decide how to validate parameters from that contract.

* add ecotone_time for sepolia/metal and mainnet/superlumio

I set these as just after genesis, GPO indicates ecotone was activated at some point, but genesis.json and hash check shows it was not at genesis.

* fix comment

* use accurate ecotone_times

* add message to frontier chain skip

* explain superchain_time more

* simplify conditionals

* typo

* add superchain_time: 0 to base devnet 0

* reorganise superchain_time and add comments

* improve test output in case of a mismatch

* enshrine new format for chain configs

* haromize comments and file formats

* add dates in comments

* fix regression

* add go program, shell script and github action to generate rollup config diffs and post to PR

* do not replace non nil overrides with defaults

* revert orderly behaviour

* set +e

* simplify

* Update CONTRIBUTING.md

* use unified diff format

* Update validation/generate-rollup-config/main.go

Co-authored-by: Sebastian Stammler <[email protected]>

* Update .github/workflows/rollup-config-diff.yml

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

* Update CONTRIBUTING.md

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

* superlumio and metal sepolia: set canyon and delta to block 1 (2 secs after genesis)

fix UTC times in comment

* mode sepolia: bring superchain_time forward to superchain delta_time

this way, all overrides are before or equal to superchain_time

---------

Co-authored-by: Sebastian Stammler <[email protected]>
Co-authored-by: Matt Solomon <[email protected]>
* sepolia-dev-0: activate Fjord

at unix time 1715961600
Fri May 17 16:00:00 UTC 2024

* Set base-devnet-0 superchain time to Ecotone activation
they will be reinstated when we get to "early access launch"

Co-authored-by: Sebastian Stammler <[email protected]>
…thereum-optimism#244)

* chore: removing the `sealchain1` & `sealchain2`

* chore: remove from the exclusion and the files from the configs

* chore: `}` add at the of the line to close it.

* remove: remove the rest of the git revert

* pnpm codegen

* Revert "Add SEAL chains for exercise (ethereum-optimism#225)" (ethereum-optimism#247)

This reverts commit 3f08c3f.

---------

Co-authored-by: George C. Knee <[email protected]>
Copy link

@mmontour1306 mmontour1306 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved as an upstream merge. I can't comment on the details of the various changes.

@boyuan-chen
Copy link
Author

We didn't touch any code changes, so it should be safe to merge this.
main...bobanetwork:superchain-registry:0964797

@boyuan-chen boyuan-chen merged commit fc75fdc into 0964797 May 20, 2024
1 check failed
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.