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

feat(devnet-sdk): add helper to build execution environment #14298

Merged
merged 1 commit into from
Feb 11, 2025

Conversation

sigma
Copy link
Contributor

@sigma sigma commented Feb 10, 2025

Description

This change facilitates the creation of a shell environment populated
with the right variables without having to know exactly what those
variables are.
That environment in turn can be loaded in SystemTest helpers for example.

Typical use-case: op-nat shouldn't need to know all the gory details
of how to setup an environment for the tests.

Tests

Additional context

see devnet-sdk/shell/cmd/enter/main.go for an example of how to use the capability.

Metadata

Copy link

codecov bot commented Feb 10, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 41.52%. Comparing base (faf6767) to head (fd50921).
Report is 8 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #14298      +/-   ##
===========================================
- Coverage    45.86%   41.52%   -4.34%     
===========================================
  Files         1007      842     -165     
  Lines        86315    77002    -9313     
===========================================
- Hits         39586    31978    -7608     
+ Misses       43737    42209    -1528     
+ Partials      2992     2815     -177     
Flag Coverage Δ
cannon-go-tests-32 ?
cannon-go-tests-64 ?
contracts-bedrock-tests ?

Flags with carried forward coverage won't be shown. Click here to find out more.

see 174 files with indirect coverage changes

Copy link
Contributor

@scharissis scharissis left a comment

Choose a reason for hiding this comment

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

Very nice - thanks.

@sigma sigma marked this pull request as ready for review February 11, 2025 13:25
@sigma sigma requested a review from a team as a code owner February 11, 2025 13:25
@sigma sigma requested a review from bitwiseguy February 11, 2025 13:25
@sigma sigma added this pull request to the merge queue Feb 11, 2025
Merged via the queue into develop with commit a9cc178 Feb 11, 2025
46 checks passed
@sigma sigma deleted the sigma/devnet-expect-preconditions branch February 11, 2025 13:36
github-merge-queue bot pushed a commit that referenced this pull request Feb 12, 2025
* fix: generate salt through uint, retrieve cahinId through bytes20+uint160

* fix: bytes20 is not necessary

* fix: generated semver-lock.json

* chore: lint

* fix: is this what you want?

* fix: regenerated semver-lock

* chore: bumping version and semver-lock so that CI sees them changing at the same time.

* ctb: move vm.broadcast into createDeterministic (#14243)

* ctb: Use startbroadcast/stopbroadcast with createDeterministic

This backports #14241 onto develop. While deploying the interop contracts we discovered a bug where nonces would incorrectly increase following calls to `createDeterministic`. This is because `vm.broadcast` will broadcast the _next_ call, but `createDeterministic` sometimes doesn't emit a call at all. This means that (in the case of the Sueprchain deployment) the calls to the input contract's `set` method would be called instead. This in turn caused nonces to increase incorrectly.

To fix this issue, this PR updates the Solidity implementation to use `vm.startBroadcast()` and `vm.stopBroadcast()`. This avoids the issue altogether. To prevent further incorrect usages of `vm.broadcast` I also opened #14242 which adds a Semgrep rule to check for this case.

* move vm.broadcast into createDeterministic

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks (#14179)

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks

* all: use OptimismConfig in consolidation to translate zero attribs

* TEST using default config if it cannot be fetched

* op-node/node: add ChainOpConfig override

and use it instead of a default config

* Add ChainConfig's OptimismConfig into rollup.Config

* Fix TestGetRollupConfig

* revert passing OptimismConfig around

it's now part of the rollup.Config

* dependabot(gomod): bump github.com/kurtosis-tech/kurtosis/api/golang (#14250)

Bumps [github.com/kurtosis-tech/kurtosis/api/golang](https://github.com/kurtosis-tech/kurtosis) from 1.4.3 to 1.4.4.
- [Release notes](https://github.com/kurtosis-tech/kurtosis/releases)
- [Changelog](https://github.com/kurtosis-tech/kurtosis/blob/main/CHANGELOG.md)
- [Commits](kurtosis-tech/kurtosis@1.4.3...1.4.4)

---
updated-dependencies:
- dependency-name: github.com/kurtosis-tech/kurtosis/api/golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added README to op-dripper (#14165)

* fix(op-deployer): don't deploy dachallenge contract when using GenericCommitment (#14248)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks (#14252)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks

* op-supervisor: improve logging

* op-supervisor: fix fromda test, add test cases

* op-supervisor: fix lint

* interop: op-supervisor event metrics (#14258)

* op-node,op-supervisor: share event metrics code

Signed-off-by: protolambda <[email protected]>

* op-node: cleanup noop metrics

---------

Signed-off-by: protolambda <[email protected]>

* node: Ignore No-Op Reset Requests (#14256)

* op-supervisor: improve logging (#14262)

* fix(devnet-sdk): use correct Address type (#14259)

* chore: update kurtosis to 1.4.4 (#14255)

also add kurtosis client to mise tools.

* fix(devnet-sdk): use correct chain ID type (#14261)

* fix(devnet-sdk): use correct Address type

* fix(devnet-sdk): use correct chain ID type

* ci: Log op-e2e output to files (#14257)

* ci: Log op-e2e output to files

* update log text

* fix(devnet-sdk): ensure balances are comparable (#14267)

In error cases, make sure we can still compare resulting balances
without crashing.

In particular, this makes interop_smoke_test skip properly if it can't
find a funded wallet to use.

* ci: Reduce publish job to daily (#14276)

* op-deployer: add architecture diagram (#14281)

* op-deployer: add architecture diagram

* fix formatting

* less verbose diagram description

* fix: Orbifying checkout-with-mise. (#14282)

* Add bootnodes ran by UL (#14279)

* op-conductor: Add HeartbeatTimeout & LeaderLeaseTimeout flags (#14271)

* Add MT Cannon audit reports (Coinbase and Spearbit) (#14218)

* Add MT Cannon audit report

* Fix MT Cannon audit report name

Co-authored-by: mbaxter <[email protected]>

* Add coinbase MT Cannon audit report

* Leave "subsequent release" blank for now on audit readme

---------

Co-authored-by: mbaxter <[email protected]>

* feat(devnet-sdk): enable preconditions enforcement (#14268)

In some use-cases, failure to meet preconditions is in itself an error.
For example, when running acceptance tests against a devnet, we
presumably epxect that the acceptance tests should apply.

This change adds support for an environment variable
DEVNET_EXPECT_PRECONDITIONS_MET=1 that will then mark as failed the
tests for which the preconditions are not met by the provided system.

* fix: bump patch version for mise orb. (#14290)

* feat: pass args thru contracts build commands (#14287)

Updates contracts justfile to pass arguments through the build
commands.

* op-node: fix p2p NAT option (#14280)

* op-program: Update test to ensure interop bootstrapping does not load the L2 chain ID local key (#14300)

* op-conductor: Add new Raft flags into optional flags list (#14299)

* Update op-geth dependency to add uni-mainnet config (#14301)

* op-node: Define message expiry time constant (#14296)

* op-e2e: Fix fpp bls precompile tests (#14291)

* op-challenger: Handle requesting superchain roots beyond the current unsafe head (#14206)

* op-e2e: Introduce helpers for building transition states.

* op-e2e: Add test for disputing a block prior to the proposal block

* op-challenger: Handle requesting superchain roots beyond the current chain head.

* Detect not found responses in prestate provider too.

* Add test to confirm correct enforcement of trace extension activation.

* Add more variants of tests where agreed = disputed. Cover all combinations of trace extension activating.

* Remove printf

* op-supervisor: Fix AddLink error type and clean up reset logic (#14302)

* Fix AddLink error type ; clean up reset logic

* fix tests

* feat(devnet-sdk): add helper to build execution environment (#14298)

* fix: add mirrored restrictions to lite profile (#14295)

Adds mirrored compiler restrictions to the lite profile so that
all generated artifacts get overwritten when switching between
build and build-dev.

* ci: make frozen files check depend on contracts-bedrock-build (#14316)

This parallelizes the job with contracts-bedrock-build so that results
are returned more quickly.

* fix(kurtosis-devnet): make logs more readable (#14317)

By wrapping the observed errors one layer too deep we were introducing
escaped strings into the logs. Now multi-line and quoted strings appear as-is.

* kt interop-devnet: enable super-cannon with interop-prestate (#14172)

* kt-devnet: switch to geth-teku for l1 (#14305)

* op-program: Ensure exec msg inclusion during consolidation (#14101)

* op-program: Ensure exec msg inclusion during consolidation

* implement timestamp invariants in the program

* use msg expiry in rollup config

* remove leftover non-working test

* op-supervisor: Don't reset when node is far behind (#14324)

* op-supervisor: don't reet on all errors (#14326)

* feat: Ignore frozen files check by using a PR label (#14247)

* feat: Ignore frozen files check by using a PR label

* fix: following https://github.com/orgs/community/discussions/26712

* fix: maybe

* fix: follow existing pattern

* fix: temporarily remove the contracts changed check to make it run

* spike: Using jq instead of grep

* fix: don't extract labels twice

* fix: a bit cleaner output

* fix: minor change to trigger CI again

* fix: Bring back the change check

* feat: Docs

* ci: use circleci-agent step halt to end job

---------

Co-authored-by: alcueca <[email protected]>
Co-authored-by: Maurelian <[email protected]>
Co-authored-by: Maurelian <[email protected]>

* op-e2e: Add action test for cascading reorgs in interop fault proofs (#14266)

* op-e2e: Add tests for cascading invalidations

* Make InboxContract an entity in the DSL.

* op-e2e: Focus test cases on consolidation.

* op-e2e: Generate correct payload when executing messages.

* op-e2e: Skip known failing test with reference to tracking issues.

* OPCM: OPPrestateUpdater for L1 Pectra Defense (#13998)

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* add snapshots

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* fix versions

* add snapshots

* update snapshots & semver

* correct semver

* bump OPCM version

* move interface to inherit IOPCM

* fix interface

* update versions

* add specs

* fix deploy opcm setters

* fix deploy opcm setters

* changes asked on review & semver-lock

* Add non implemented tests for coverage

* linting

* New tests & semverlock

* rewrite hasFDG boolean

* semver-lock

* fix review comments

* pre-pr

* semver

* semver-lock

* semverlock again

* final semverlock

* fix comment about versions

* fix comment about versions

* semverlock opcm

* feat: test upgrading just the pdg vs. both games

* feat: remove unused assertValidGameType() function

* review changes

* remove unnecessary comment

* update interface to fix CI

* change file format

* rebase

* semver lock

* valid semlock

* rerun ci

---------

Co-authored-by: JosepBove <[email protected]>
Co-authored-by: JosepBove <[email protected]>
Co-authored-by: JosepBove <[email protected]>

* fix: generated semver-lock.json

* chore: bumping version and semver-lock so that CI sees them changing at the same time.

* chore: bump semver-lock.json

* chore: bump versions and semver-lock

---------

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: protolambda <[email protected]>
Co-authored-by: alcueca <[email protected]>
Co-authored-by: Matthew Slipper <[email protected]>
Co-authored-by: Sebastian Stammler <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ControlCplusControlV <[email protected]>
Co-authored-by: Samuel Laferriere <[email protected]>
Co-authored-by: protolambda <[email protected]>
Co-authored-by: Axel Kingsley <[email protected]>
Co-authored-by: Yann Hodique <[email protected]>
Co-authored-by: Sam Stokes <[email protected]>
Co-authored-by: blaine <[email protected]>
Co-authored-by: Joshua Gutow <[email protected]>
Co-authored-by: Tei Im <[email protected]>
Co-authored-by: Paul Dowman <[email protected]>
Co-authored-by: mbaxter <[email protected]>
Co-authored-by: smartcontracts <[email protected]>
Co-authored-by: Adrian Sutton <[email protected]>
Co-authored-by: Inphi <[email protected]>
Co-authored-by: Maurelian <[email protected]>
Co-authored-by: Zach Howard <[email protected]>
Co-authored-by: Park Changwan <[email protected]>
Co-authored-by: Maurelian <[email protected]>
Co-authored-by: JosepBove <[email protected]>
Co-authored-by: JosepBove <[email protected]>
Co-authored-by: JosepBove <[email protected]>
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.

2 participants