optimism

op-chain-ops

Issues: monorepo

Pull requests: monorepo

This is an OP Stack utils package for chain operations, ranging from EVM tooling to chain generation.

Packages:

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:

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
├── check-prestate                - Checks a fault proof absolute prestate's chain compatibility. e.g: go run cmd/check-prestate --prestate-hash <HASH>
├── 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             - Utility 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

Design principles

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