Issues: monorepo
Pull requests: monorepo
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.
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
├── 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.
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.
- 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 withop-deployer
. This change depends largely on the future ofop-e2e
, where system tests may be replaced in favor of tests set up byop-e2e
.script
is a Go version offorge
script, with hooks and customization options, for better integration into tooling such asop-deployer
. This package should evolve to serve testing andop-deployer
as best as possible, it is not a fullforge
replacement.genesis
will shrink over time, as more of the genesis responsibilities are automated away into the protocol through system-transactions, and tooling such asop-deployer
and OPCM.
- 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.
- 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.