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 20230918 #48

Merged
merged 212 commits into from
Sep 19, 2023
Merged

Merge upstream 20230918 #48

merged 212 commits into from
Sep 19, 2023

Conversation

jyellick
Copy link

Another Monday merge.

$ git diff --name-only HEAD^|grep -ve '\.\(md\|go\|png\|mod\|sum\)$'
.circleci/config.yml
.github/workflows/release-docker-canary.yml
.github/workflows/release.yml
.github/workflows/tag-service.yml
.nvmrc
Makefile
bedrock-devnet/devnet/__init__.py
indexer/api-ts/LICENSE
indexer/api-ts/generated.ts
indexer/api-ts/indexer.cjs
indexer/api-ts/indexer.cjs.map
indexer/api-ts/indexer.js
indexer/api-ts/indexer.js.map
indexer/api-ts/indexer.ts
indexer/api-ts/package.json
indexer/api-ts/tsconfig.json
indexer/api-ts/tsup.config.ts
indexer/api-ts/tygo.yaml
indexer/indexer.toml
indexer/migrations/20230523_create_schema.sql
op-bindings/artifacts.json
op-chain-ops/genesis/testdata/l1-deployments.json
op-chain-ops/genesis/testdata/test-deploy-config-full.json
op-challenger/Dockerfile
op-challenger/scripts/list_games.sh
ops-bedrock/Dockerfile.l1
ops/docker/Dockerfile.packages
package.json
packages/contracts-bedrock/.gas-snapshot
packages/contracts-bedrock/deploy-config/devnetL1-template.json
packages/contracts-bedrock/package.json
packages/contracts-bedrock/scripts/Deploy.s.sol
packages/contracts-bedrock/scripts/DeployConfig.s.sol
packages/contracts-bedrock/scripts/Deployer.sol
packages/contracts-bedrock/semver-lock.json
packages/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol
packages/contracts-bedrock/src/L1/L1ERC721Bridge.sol
packages/contracts-bedrock/src/L1/L1StandardBridge.sol
packages/contracts-bedrock/src/L1/L2OutputOracle.sol
packages/contracts-bedrock/src/L1/OptimismPortal.sol
packages/contracts-bedrock/src/L1/ProtocolVersions.sol
packages/contracts-bedrock/src/L1/SystemConfig.sol
packages/contracts-bedrock/src/L2/BaseFeeVault.sol
packages/contracts-bedrock/src/L2/CrossDomainOwnable.sol
packages/contracts-bedrock/src/L2/CrossDomainOwnable2.sol
packages/contracts-bedrock/src/L2/CrossDomainOwnable3.sol
packages/contracts-bedrock/src/L2/GasPriceOracle.sol
packages/contracts-bedrock/src/L2/L1Block.sol
packages/contracts-bedrock/src/L2/L1FeeVault.sol
packages/contracts-bedrock/src/L2/L2CrossDomainMessenger.sol
packages/contracts-bedrock/src/L2/L2ERC721Bridge.sol
packages/contracts-bedrock/src/L2/L2StandardBridge.sol
packages/contracts-bedrock/src/L2/L2ToL1MessagePasser.sol
packages/contracts-bedrock/src/L2/SequencerFeeVault.sol
packages/contracts-bedrock/src/legacy/LegacyERC20ETH.sol
packages/contracts-bedrock/src/universal/ISemver.sol
packages/contracts-bedrock/src/universal/OptimismMintableERC20.sol
packages/contracts-bedrock/src/universal/OptimismMintableERC20Factory.sol
packages/contracts-bedrock/test/OptimismMintableERC20Factory.t.sol
packages/contracts-bedrock/test/ProtocolVersions.t.sol
packages/contracts-bedrock/test/StandardBridge.t.sol
packages/sdk/package.json
packages/sdk/src/interfaces/types.ts
packages/sdk/src/utils/chain-constants.ts
pnpm-lock.yaml
pnpm-workspace.yaml

Note, that there are many contract changes:

$ git diff --name-only HEAD^|grep -e '\.\(sol\)$'
packages/contracts-bedrock/scripts/Deploy.s.sol
packages/contracts-bedrock/scripts/DeployConfig.s.sol
packages/contracts-bedrock/scripts/Deployer.sol
packages/contracts-bedrock/src/L1/L1CrossDomainMessenger.sol
packages/contracts-bedrock/src/L1/L1ERC721Bridge.sol
packages/contracts-bedrock/src/L1/L1StandardBridge.sol
packages/contracts-bedrock/src/L1/L2OutputOracle.sol
packages/contracts-bedrock/src/L1/OptimismPortal.sol
packages/contracts-bedrock/src/L1/ProtocolVersions.sol
packages/contracts-bedrock/src/L1/SystemConfig.sol
packages/contracts-bedrock/src/L2/BaseFeeVault.sol
packages/contracts-bedrock/src/L2/CrossDomainOwnable.sol
packages/contracts-bedrock/src/L2/CrossDomainOwnable2.sol
packages/contracts-bedrock/src/L2/CrossDomainOwnable3.sol
packages/contracts-bedrock/src/L2/GasPriceOracle.sol
packages/contracts-bedrock/src/L2/L1Block.sol
packages/contracts-bedrock/src/L2/L1FeeVault.sol
packages/contracts-bedrock/src/L2/L2CrossDomainMessenger.sol
packages/contracts-bedrock/src/L2/L2ERC721Bridge.sol
packages/contracts-bedrock/src/L2/L2StandardBridge.sol
packages/contracts-bedrock/src/L2/L2ToL1MessagePasser.sol
packages/contracts-bedrock/src/L2/SequencerFeeVault.sol
packages/contracts-bedrock/src/legacy/LegacyERC20ETH.sol
packages/contracts-bedrock/src/universal/ISemver.sol
packages/contracts-bedrock/src/universal/OptimismMintableERC20.sol
packages/contracts-bedrock/src/universal/OptimismMintableERC20Factory.sol
packages/contracts-bedrock/test/OptimismMintableERC20Factory.t.sol
packages/contracts-bedrock/test/ProtocolVersions.t.sol
packages/contracts-bedrock/test/StandardBridge.t.sol

As best as I can tell, these contract changes are all backwards compatible -- ie, nothing has been removed. So, I think this merge should be safe, but someone more well versed with solidity should certainly review.

protolambda and others added 30 commits September 8, 2023 16:16
Use create2 to deploy L1 contract implementations. This is useful
to deduplicate config, making the contracts have canoncial addresses
per version across networks. Every L1 contract implementation should
use the same create2 salt over time.
Upgrade from node.js v16 to v18. v16 starts end of life on
9/11/2023, meaning it will no longer get security updates.
v18 is currently LTS, https://github.com/nodejs/release#release-schedule
for additional information.

We previously were not able to upgrade node.js versions because
we were using an older version of hardhat that did not support newer
versions of node.js but that is no longer the case.
…create2-deploy

contracts-bedrock: use create2 to deploy implementations
…xer.legacy.blocks

feat(indexer): bridge process pre-bedrock blocks
Bumps [markdownlint](https://github.com/DavidAnson/markdownlint) from 0.30.0 to 0.31.0.
- [Changelog](https://github.com/DavidAnson/markdownlint/blob/main/CHANGELOG.md)
- [Commits](DavidAnson/markdownlint@v0.30.0...v0.31.0)

---
updated-dependencies:
- dependency-name: markdownlint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
…ndabot/npm_and_yarn/markdownlint-0.31.0

build(deps-dev): bump markdownlint from 0.30.0 to 0.31.0
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.62.0 to 6.7.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.7.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Migrate away from using `Semver` where the semantic version is immutable
to using `ISemver` where the semantic version is a constant. Only update
the L1 contracts, this change should be followed up with additional PRs
that update the other contracts. This change simplifies the code and
reduces the bytecode size of each of the contracts.
refcell and others added 20 commits September 15, 2023 07:19
…ell/redo-subscription

feat: Head Subscriptions
…ix-last-step

op-challenger: Fix recording of last step index
…4-fix_indexer_Fix_tygo_check_in_ci

fix(indexer): Fix tygo check in ci
Updates the implementation salt. Without this change, the
deployments fail on Goerli. They work on the devnet so something
must be different between the devnet and the live network.
This change will ensure that there is less config to manage
in the superchain registry by having a canonical address for
each semver version.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…ocol-versions-contract

contracts-bedrock: ProtocolVersions contract
…ode-protocol-versions-handling

op-node: protocol versions signal handling
…_fix

Cancel any inflight block building when stopping the sequencer, to av…
@jyellick jyellick force-pushed the jyellick/merge-upstream-20230918 branch 2 times, most recently from 9a987e0 to c4440c9 Compare September 18, 2023 16:37
@jyellick jyellick force-pushed the jyellick/merge-upstream-20230918 branch from c4440c9 to 1cf4d21 Compare September 18, 2023 16:38
Copy link

@boyuan-chen boyuan-chen left a comment

Choose a reason for hiding this comment

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

Looks good! The devnet-hardhat test passes, so smart contract changes are compatible.

@jyellick jyellick merged commit 2c2fa6f into develop Sep 19, 2023
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.