Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
23a65e81
Unverified
Commit
23a65e81
authored
Dec 02, 2024
by
protolambda
Committed by
GitHub
Dec 02, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
op-chain-ops: add readme (#13166)
parent
9345537a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
80 additions
and
0 deletions
+80
-0
README.md
op-chain-ops/README.md
+80
-0
No files found.
op-chain-ops/README.md
0 → 100644
View file @
23a65e81
# `op-chain-ops`
Issues:
[
monorepo
](
https://github.com/ethereum-optimism/optimism/issues?q=is%3Aissue%20state%3Aopen%20label%3AA-op-chain-ops
)
Pull requests:
[
monorepo
](
https://github.com/ethereum-optimism/optimism/pulls?q=is%3Aopen+is%3Apr+label%3AA-op-chain-ops
)
This is an OP Stack utils package for chain operations,
ranging from EVM tooling to chain generation.
Packages:
-
`clients`
: utils for chain checker tools.
-
`cmd`
: upgrade validation tools, debug tools, attributes formatting tools.
-
`crossdomain`
: utils to interact with L1
<>
L2 cross-domain messages.
-
`devkeys`
: generate OP-Stack development keys from a common source.
-
`foundry`
: utils to read foundry artifacts.
-
`genesis`
: OP Stack genesis-configs generation, pre OPCM.
-
`interopgen`
: interop test-chain genesis config generation.
-
`script`
: foundry-like solidity scripting environment in Go.
-
`solc`
: utils to read solidity compiler artifacts data.
-
`srcmap`
: utils for solidity source-maps loaded from foundry-artifacts.
## Usage
Upgrade checks and chain utilities can be found in
`./cmd`
:
these are not officially published in OP-Stack monorepo releases,
but can be built from source.
Utils:
```
text
cmd/
├── check-canyon - Checks for Canyon network upgrade
├── check-delta - Checks for Delta network upgrade
├── check-deploy-config - Checks of the (legacy) Deploy Config
├── check-derivation - Check that transactions can be confirmed and safety can be consolidated
├── check-ecotone - Checks for Ecotone network upgrade
├── check-fjord - Checks for Fjord network upgrade
├── deposit-hash - Determine the L2 deposit tx hash, based on log event(s) emitted by a L1 tx.
├── ecotone-scalar - Translate between serialized and human-readable L1 fee scalars (introduced in Ecotone upgrade).
├── op-simulate - Simulate a remote transaction in a local Geth EVM for block-processing debugging.
├── protocol-version - Translate between serialized and human-readable protocol versions.
├── receipt-reference-builder - Receipt data collector for pre-Canyon deposit-nonce metadata.
└── unclaimed-credits - Utilitiy to inspect credits of resolved fault-proof games.
```
## Product
### Optimization target
Provide tools for chain-setup and inspection tools for deployment, upgrades, and testing.
This includes
`op-deployer`
, OP-Contracts-Manager (OPCM), upgrade-check scripts, and
`op-e2e`
testing.
### Vision
-
Upgrade checking scripts should become more extensible, and maybe be bundled in a single check-script CLI tool.
-
Serve chain inspection/processing building-blocks for test setups and tooling like op-deployer.
-
`interopgen`
is meant to be temporary, and consolidate with
`op-deployer`
.
This change depends largely on the future of
`op-e2e`
,
where system tests may be replaced in favor of tests set up by
`op-e2e`
.
-
`script`
is a Go version of
`forge`
script, with hooks and customization options,
for better integration into tooling such as
`op-deployer`
.
This package should evolve to serve testing and
`op-deployer`
as best as possible,
it is not a full
`forge`
replacement.
-
`genesis`
will shrink over time, as more of the genesis responsibilities are automated away into
the protocol through system-transactions, and tooling such as
`op-deployer`
and OPCM.
## Design principles
-
Provide high-quality bindings to accelerate testing and tooling development.
-
Minimal introspection into fragile solidity details.
There is a trade-off here in how minimal the tooling is:
generally we aim to provide dedicated functionality in Go for better integration,
if the target tool is significant Go service of its own.
If not, then
`op-chain-ops`
should not be extended, and the design of the target tool should be adjusted instead.
## Testing
-
Upgrade checks are tested against live devnet/testnet upgrades, before testing against mainnet.
Testing here is aimed to expand to end-to-end testing, for better integrated test feedback of these tools.
-
Utils have unit-test coverage of their own, and are used widely in end-to-end testing itself.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment