Skip to content

Conversation

@smartcontracts
Copy link
Contributor

Description

We have various files (mostly tests) sitting in /ovm. This PR moves these files into /rollup-contracts and cleans up /rollup-contracts in general. I've kept some of the older files from /ovm/src for the sake of simplicity, but it's likely they'll need to either be deleted or moved into a different package. I figured we could handle that as part of a separate ticket in the future in order to keep this PR as tightly scoped as possible.

Tests are passing, though we have some linting errors that I need to fix.

Metadata

Fixes

Contributing Agreement

Copy link
Contributor

@karlfloersch karlfloersch left a comment

Choose a reason for hiding this comment

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

Screen Shot 2020-06-25 at 6 04 18 PM

Nice I really like this separation. Some of my opinions would be:

  • feels like if the package is called rollup-contracts then the rollup package is redundant. I actually think that there are some arguments to call this package contracts and then that 2nd directory could be more reasonable. That said, a 2nd note would be I like not overusing the term rollup and actually replace it with optimistic-ethereum, as that is technically the only unifying concept behind these contracts (they are all a part of OE). Only the chain and queue packages technically have any "rollup"-like features. And btw this package was named rollup-contracts because it only had those two sets of contract in it, and then we started co-locating all of our contracts and so that's why this package is now poorly named.
    • TLDR, rename package to contracts? rename rollup directory to optimistic-ethereum?
  • instead of execution (even though I find it to be a very descriptive name) we could consider calling that directory ovm to help people find the contracts that they're looking for if they come having heard about this ovm thing that we've built.
  • moving SafetyChecker.sol into the ovm package (currently called execution) could be good because it feels the ExecutionManager is sooo closely tied to the SafetyChecker, and I can't really see anywhere other in our crazy use-case where anyone would be trying to use our safety checker. That said, I guess technically it could be generally useful as we did steal the idea of safety checking from the original 'purity checker' in Casper FFG. Ok so I don't actually have a strong opinion here.
  • precompiles could actually be a directory under ovm (ovm/precompiles) because they are really only used in the context of the ExecutionManager.

Anyway overall this is looking way cleaner already!!! Very excited! Leaving this as just a comment because I'm curious what everyone thinks. That's my 2¢

"unix"
]
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Oh should we add this to the rollup-contracts package?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ohhh yes we should. Good catch.

const entryPoint = '0x0000000000000000000000000000000000001234'
const callData = '0xdeadbeefee5555'
it('should emit the correct L1ToL2Transaction L1 event when an L1->L2 tx is sent', async () => {
await l1ToL2TransactionPasser
Copy link
Contributor

Choose a reason for hiding this comment

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

Are these tests reflected anywhere in these changes or just generally deleted? Do these contracts impose a circular dependencies? If they do maybe putting stuff in rollup-full-node makes sense? Although ideally these tests are just in the rollup-contracts package

Copy link
Contributor Author

@smartcontracts smartcontracts Jun 26, 2020

Choose a reason for hiding this comment

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

These tests have all been transferred over to the rollup-contracts package.

@smartcontracts
Copy link
Contributor Author

I'm going to go ahead and close this PR since it's mostly covered in #166

@smartcontracts
Copy link
Contributor Author

@karlfloersch I'll address your comments in the other PR.

@smartcontracts
Copy link
Contributor Author

  • TLDR, rename package to contracts? rename rollup directory to optimistic-ethereum?

Yeah, I think renaming this package is a good idea. I'll go ahead and make that change.

  • instead of execution (even though I find it to be a very descriptive name) we could consider calling that directory ovm to help people find the contracts that they're looking for if they come having heard about this ovm thing that we've built.
  • moving SafetyChecker.sol into the ovm package (currently called execution) could be good because it feels the ExecutionManager is sooo closely tied to the SafetyChecker, and I can't really see anywhere other in our crazy use-case where anyone would be trying to use our safety checker. That said, I guess technically it could be generally useful as we did steal the idea of safety checking from the original 'purity checker' in Casper FFG. Ok so I don't actually have a strong opinion here.
  • precompiles could actually be a directory under ovm (ovm/precompiles) because they are really only used in the context of the ExecutionManager.

I like all of these!

@gakonst gakonst deleted the YAS-443/ovm/refactor branch March 18, 2021 15:09
snario pushed a commit that referenced this pull request Apr 14, 2021
* state dump: allow for config

* lint: fix

* add build:kovan command

Co-authored-by: Kevin Ho <[email protected]>
Lredhdx pushed a commit to node-real/combo-optimism that referenced this pull request Jun 17, 2024
bap2pecs pushed a commit to babylonlabs-io/optimism that referenced this pull request Jul 31, 2024
ClaytonNorthey92 added a commit to hemilabs/optimism that referenced this pull request Dec 9, 2024
c9dbc5f58 Test fix & fmt
fcf735497 ExternalHeaderMode rebase
f09d4e5ff Add for wind/unwind support to tbc (ethereum-optimism#159)
5c764a0cd popm: exclude tx outputs that would be dust (ethereum-optimism#186)
1f168f225 popm/wasm: fix dispatch params for {add,remove}EventListener (ethereum-optimism#181)
383611feb popm/wasm: add 'minerStatus' method (ethereum-optimism#178)
6a94b4c0b popm/wasm: rename KeyResult fields and add bitcoinScriptHash (ethereum-optimism#177)
9c4cea583 popm/wasm: add events and clean up globals (ethereum-optimism#175)
a2372394d popm: improve UTXO selection when creating Bitcoin transaction (ethereum-optimism#173)
939813cac popm/wasm: fix ethereum address when generating and parsing keys (ethereum-optimism#174)
9245995ef Updated localnet to use more recent commits of optimism and op-geth (ethereum-optimism#139)
159fbc5f5 ci: improve runtime of high usage CI workflows (ethereum-optimism#163)
60a3489db popm/wasm: add 'bitcoinAddressToScriptHash' method (ethereum-optimism#169)
fe9752a5a popm/wasm: add 'parseKey' method (ethereum-optimism#168)
65aa0caef ci: add registry-url to setup-node in release (ethereum-optimism#167)
8922ce805 popm/wasm: add new @hemilabs/pop-miner NPM package (ethereum-optimism#162)
67166046b scripts: add release script (ethereum-optimism#164)
eea96059b ci: add labeler action (ethereum-optimism#165)

git-subtree-dir: heminetwork
git-subtree-split: c9dbc5f58a7f997fa4b3af0d765a2967ed3462d1
OptimismBot pushed a commit that referenced this pull request Jan 16, 2025
* feat: use superchain config lockbox in portal

* test: add new sharedlockbox test
blockchaindevsh added a commit to blockchaindevsh/optimism that referenced this pull request Jan 25, 2025
* remove useless diff

* another
mslipper added a commit that referenced this pull request Feb 6, 2025
* feat: add shared lockbox (#126)

* feat: create shared lockbox contract with its interface and unit tests

* chore: polish tests and interfaces

* chore: run pre-pr

* chore: improve natspec

* chore: run pre-pr

* chore: update compiler version

* feat: integrate portal to lockbox (#139)

* feat: integrate portal to lockbox

* fix: pr fixes

* test: refactor assert

* feat: add liquidity migrator contract with its unit test and interface (#128)

* feat: create shared lockbox contract with its interface and unit tests

* chore: polish tests and interfaces

* chore: run pre-pr

* chore: improve natspec

* chore: run pre-pr

* feat: add liqudity migrator contract with its unit test and interface

* chore: remove underscore on stack var

* chore: add todo

* chore: run pre-pr

* chore: add contract title natspec and proxied

* refactor: integrate testing suite with common test

* chore: pre-pr

* chore: add spec test

* feat: integrate system config with superchain config (#140)

* feat: integrate portal to lockbox

* fix: pr fixes

* test: refactor assert

* feat: integrate system config with superchain config

* fix: remove OPCM interop

* test: add dependency counter test

* feat: manage dependency set on superchain config (#138)

* chore: add zero dependencies check (#142)

* fix: pre pr

* feat: Add pause check (#145)

* feat: Add pause check

Co-authored-by: 0xParticle <[email protected]>
Co-authored-by: gotzenx <[email protected]>
Co-authored-by: Joxess <[email protected]>

* test: add tests natspecs

---------

Co-authored-by: 0xParticle <[email protected]>
Co-authored-by: gotzenx <[email protected]>
Co-authored-by: Joxess <[email protected]>

* fix: pre pr and interfaces imports

* feat: add upgrader role to superchain config (#163)

* feat: use superchain config lockbox in portal (#164)

* feat: use superchain config lockbox in portal

* test: add new sharedlockbox test

* fix: pre pr

* feat: liquidity migrator deployment (#166)

* feat: liquidity migrator deployment

* test: fix comment

* test: fix internal variables names

* feat: dependency set refactor (#170)

* feat: dependency set refactor

* fix: deploy script variable name

* fix: pr

* fix: pr

* fix: pre pr

* fix: semgrep

* fix: merge conflict

* [WIP] feat: new lockbox (#192)

* chore: partial implementation comments

* feat: new lockbox

* feat: introduce dependency manager predeploy

* feat: remove timestamp check from CrossL2Inbox

* feat: introduce cluster manager role and remove immutables

* fix: remove unnecessary code, fix tests and setup

* feat: use unstructured storage and OZ v5

* fix: L2ToL2CDM dependency set check

* fix: dependency manager gas limit

* feat: refactor interop feature contracts (#200)

* feat: refactor interop feature contracts

* fix: add noops comment

* feat: adds OptimismPortal migrated flag

* test: add missing tests

* fix: portal interop storage naming

---------

Co-authored-by: Skeletor Spaceman <[email protected]>

* fix: pre pr, setup and tests

* fix: remove system config interop and add interop portal target check (#205)

* fix: remove system config interop and add interop portal check

* fix: interop portal target check order

* fix: remove wrong comment

* fix: refactor portal noops function (#206)

* test: add dependency manager and portal interop tests (#209)

* feat: initialize shared lockbox in interop portal (#211)

* feat: initialize shared lockbox in interop portal

* fix: refactor shared lockbox storage getter

* fix: lockbox pr fixes (#214)

* fix: pre pr

* fix: semver lock

* fix: semver lock

* feat: descope dependency manager (#242)

* feat: descope dependency manager

* test: fix tests

* test: fix tests

* chore: improve eth liquidity test (#248)

* fix: internal review fixes (#243)

* fix: I-0

* fix: I-1

* fix: I-2

* fix: I-3

* fix: I-6

* fix: I-7

* fix: I-9

* fix: pre pr

* fix: pre pr

* fix: portal withdrawal checks (#255)

* fix: portal withdrawal checks

* fix: include current withdrawal check

* fix: remove unused interop contracts (#256)

* test: fix flake tests (#257)

* fix: adjust op-deployer interop scripts (#262)

* fix: pre pr

* fix op-deployer tests

* remove dependency code

* fix lint

* use Bob account

---------

Co-authored-by: Disco <[email protected]>
Co-authored-by: AgusDuha <[email protected]>
Co-authored-by: agusduha <[email protected]>
Co-authored-by: 0xParticle <[email protected]>
Co-authored-by: gotzenx <[email protected]>
Co-authored-by: Joxess <[email protected]>
Co-authored-by: Skeletor Spaceman <[email protected]>
ClaytonNorthey92 added a commit to hemilabs/optimism that referenced this pull request Apr 4, 2025
c9dbc5f58 Test fix & fmt
fcf735497 ExternalHeaderMode rebase
f09d4e5ff Add for wind/unwind support to tbc (ethereum-optimism#159)
5c764a0cd popm: exclude tx outputs that would be dust (ethereum-optimism#186)
1f168f225 popm/wasm: fix dispatch params for {add,remove}EventListener (ethereum-optimism#181)
383611feb popm/wasm: add 'minerStatus' method (ethereum-optimism#178)
6a94b4c0b popm/wasm: rename KeyResult fields and add bitcoinScriptHash (ethereum-optimism#177)
9c4cea583 popm/wasm: add events and clean up globals (ethereum-optimism#175)
a2372394d popm: improve UTXO selection when creating Bitcoin transaction (ethereum-optimism#173)
939813cac popm/wasm: fix ethereum address when generating and parsing keys (ethereum-optimism#174)
9245995ef Updated localnet to use more recent commits of optimism and op-geth (ethereum-optimism#139)
159fbc5f5 ci: improve runtime of high usage CI workflows (ethereum-optimism#163)
60a3489db popm/wasm: add 'bitcoinAddressToScriptHash' method (ethereum-optimism#169)
fe9752a5a popm/wasm: add 'parseKey' method (ethereum-optimism#168)
65aa0caef ci: add registry-url to setup-node in release (ethereum-optimism#167)
8922ce805 popm/wasm: add new @hemilabs/pop-miner NPM package (ethereum-optimism#162)
67166046b scripts: add release script (ethereum-optimism#164)
eea96059b ci: add labeler action (ethereum-optimism#165)

git-subtree-dir: heminetwork
git-subtree-split: c9dbc5f58a7f997fa4b3af0d765a2967ed3462d1
ClaytonNorthey92 added a commit to hemilabs/optimism that referenced this pull request Apr 7, 2025
c9dbc5f58 Test fix & fmt
fcf735497 ExternalHeaderMode rebase
f09d4e5ff Add for wind/unwind support to tbc (ethereum-optimism#159)
5c764a0cd popm: exclude tx outputs that would be dust (ethereum-optimism#186)
1f168f225 popm/wasm: fix dispatch params for {add,remove}EventListener (ethereum-optimism#181)
383611feb popm/wasm: add 'minerStatus' method (ethereum-optimism#178)
6a94b4c0b popm/wasm: rename KeyResult fields and add bitcoinScriptHash (ethereum-optimism#177)
9c4cea583 popm/wasm: add events and clean up globals (ethereum-optimism#175)
a2372394d popm: improve UTXO selection when creating Bitcoin transaction (ethereum-optimism#173)
939813cac popm/wasm: fix ethereum address when generating and parsing keys (ethereum-optimism#174)
9245995ef Updated localnet to use more recent commits of optimism and op-geth (ethereum-optimism#139)
159fbc5f5 ci: improve runtime of high usage CI workflows (ethereum-optimism#163)
60a3489db popm/wasm: add 'bitcoinAddressToScriptHash' method (ethereum-optimism#169)
fe9752a5a popm/wasm: add 'parseKey' method (ethereum-optimism#168)
65aa0caef ci: add registry-url to setup-node in release (ethereum-optimism#167)
8922ce805 popm/wasm: add new @hemilabs/pop-miner NPM package (ethereum-optimism#162)
67166046b scripts: add release script (ethereum-optimism#164)
eea96059b ci: add labeler action (ethereum-optimism#165)

git-subtree-dir: heminetwork
git-subtree-split: c9dbc5f58a7f997fa4b3af0d765a2967ed3462d1
theochap pushed a commit that referenced this pull request Dec 10, 2025
* fix(plasma): cleanup the plasma data source

* fix(plasma): generic bound rename
Zena-park added a commit to tokamak-network/optimism that referenced this pull request Dec 30, 2025
theochap pushed a commit that referenced this pull request Jan 15, 2026
### Description

Closes #150
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.

3 participants