Skip to content

Conversation

@gakonst
Copy link
Contributor

@gakonst gakonst commented Feb 10, 2026

Summary

Sync tempo branch with upstream foundry-rs/foundry master (47 commits).

Conflict Resolution

Content conflicts were auto-resolved favoring our (tempo) side via -X ours. The following files had conflicts that were resolved by keeping our version — please review these carefully to incorporate any needed upstream changes:

  • Cargo.toml — upstream changed tempo dep pins from rev to tag: v1.0.0 and removed some deps
  • Cargo.lock — version differences
  • crates/anvil/src/config.rs — upstream changes to config
  • crates/anvil/src/eth/backend/mem/mod.rs — import differences (address vs HashSet)
  • crates/cast/src/cmd/erc20.rs — upstream refactoring
  • crates/cast/src/cmd/mktx.rs — tx construction changes
  • crates/cast/src/cmd/send.rs — tx sending changes
  • crates/evm/evm/src/executors/mod.rs — executor changes
  • crates/primitives/Cargo.tomltempo-revm vs tempo-alloy dep
  • deny.toml — license exception formatting + tiny-keccak entry

Deleted files (kept our deletion)

  • .github/workflows/docker-publish.yml
  • .github/workflows/test-flaky.yml
  • .github/workflows/test-isolate.yml
  • flake.lock

Thread: https://tempoxyz.slack.com/archives/C0A87C21805/p1770722908997809

thunggis and others added 30 commits February 4, 2026 10:24
Co-authored-by: tefyosL-sol <gasgoblinn@gmail.com>
…s (#13305)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>
…th comments (#13319)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>
…xs tracing (#13098)

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>
Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>
…3318)

* fix(config): handle vyper section with skip_serializing_if fields

The vyper config section uses skip_serializing_if = Option::is_none on all
fields, causing the default serialization to produce an empty dict. This led to
all vyper keys being flagged as unknown.

Add explicit VYPER_KEYS constant and special-case the vyper section in
collect_standalone_section_warnings to use these known keys instead of
deriving them from the (empty) default serialization.

Fixes #13316

* test(config): add regression tests for vyper config warnings

Tests for #13316:
- no_false_warnings_for_vyper_config_keys: valid vyper keys in standalone section
- no_false_warnings_for_nested_vyper_config_keys: valid vyper keys in profile
- warns_on_unknown_vyper_keys: unknown vyper keys should still warn

Amp-Thread-ID: https://ampcode.com/threads/T-019c28b9-9c8c-76bf-96a5-ff5a504c0507
Co-authored-by: Amp <amp@ampcode.com>

* fix build issues

* fix(config): handle nested vyper section with skip_serializing_if fields

The VyperConfig struct uses skip_serializing_if on all Option fields,
causing the default serialization to produce an empty dict. This caused
false warnings for valid vyper keys like optimize, path, and
experimental_codegen when used in profile nested sections like
[profile.default.vyper].

Uses the existing VYPER_KEYS constant for nested vyper sections,
matching how standalone [vyper] sections are already handled.

Fixes #13316

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019c297e-a282-7188-8f79-5080d3e451a9

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: zerosnacks <zerosnacks@protonmail.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
* kip checksum hash in create2 mining

* fix the clippy
… does not exist (#13339)

avoid encoding FOUNDRY_PROFILE: ci, profile does not exist
…3327)

* perf(evm): wrap Executor.backend in Arc for copy-on-write cloning

During parallel fuzzing, each worker clones the Executor. Previously this
deep-cloned the entire Backend (CacheDB, JournaledState, state snapshots),
which could be 10-50MB per clone with 16 workers = 160-800MB wasted memory.

This change wraps Backend in Arc<Backend> and uses Arc::make_mut() for
copy-on-write semantics. When workers only read state, they share the same
backend. When a worker mutates, it gets its own copy.

Expected impact:
- ~80% memory reduction for parallel fuzz runs
- Faster executor clone (pointer copy instead of deep clone)
- No behavioral change: mutations still get isolated copies

Amp-Thread-ID: https://ampcode.com/threads/T-019c2af1-f00b-723a-a3c3-25cbd6f3e92b
Co-authored-by: Amp <amp@ampcode.com>

* test: update config test expectations for new mixed_case_exceptions

Fix test expectations after 1bd687f added new values (ID, URL, API,
JSON, XML, HTML, HTTP, HTTPS) to lint.mixed_case_exceptions defaults.

Amp-Thread-ID: https://ampcode.com/threads/T-019c2af1-f00b-723a-a3c3-25cbd6f3e92b
Co-authored-by: Amp <amp@ampcode.com>

* Update config.rs

* Update config.rs

* fix: restore "URI" in config test JSON expectations

Amp-Thread-ID: https://ampcode.com/threads/T-019c2f68-f9df-76bc-ba4c-94fbe1789c9c
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Co-authored-by: zerosnacks <zerosnacks@protonmail.com>
…etSigner` (#13343)

- superseeded by `EthereumWallet`'s one, which is integrated in `TransactionBuilder` flow
…tabase_at (#13267)

* return error when querying future block number

* fix test

---------

Co-authored-by: onbjerg <onbjerg@users.noreply.github.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
* chore: remove stale tiny-keccak profile override

* chore: remove stale tiny-keccak deny exception
…… (#13363)

perf(anvil): reuse storage root from prove_storage instead of recomputing
cuiweixie and others added 10 commits February 9, 2026 13:23
Co-authored-by: grandizzy <38490174+grandizzy@users.noreply.github.com>
Bumps [depot/build-push-action](https://github.com/depot/build-push-action) from 1.16.2 to 1.17.0.
- [Release notes](https://github.com/depot/build-push-action/releases)
- [Commits](depot/build-push-action@9785b13...5f3b3c2)

---
updated-dependencies:
- dependency-name: depot/build-push-action
  dependency-version: 1.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…406)

Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.67.18 to 2.67.27.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](taiki-e/install-action@650c5ca...1e67ded)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.67.27
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.43.0 to 1.43.4.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@93cbdb2...78bc6fb)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.43.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ream-foundry

Amp-Thread-ID: https://ampcode.com/threads/T-019c474f-6c39-751e-a3d1-24b335ebc389
Co-authored-by: Amp <amp@ampcode.com>

# Conflicts:
#	.github/workflows/docker-publish.yml
#	.github/workflows/test-flaky.yml
#	.github/workflows/test-isolate.yml
#	flake.lock
Tempo AI and others added 6 commits February 10, 2026 11:53
- Add missing tempo-alloy dep to crates/primitives/Cargo.toml
- Wrap backend in Arc::new() in executor new()
- Add HashSet import in anvil mem backend
- Fix env.tx.base -> env.tx.inner for chain_id access
- Use TempoBlockEnv wrapper for block_env in trace replay

Amp-Thread-ID: https://ampcode.com/threads/T-019c474f-6c39-751e-a3d1-24b335ebc389
Co-authored-by: Amp <amp@ampcode.com>
- FoundryTxReceipt::with_timestamp was missing feePayer in other fields,
  causing deserialization failures when TempoTransactionReceipt tried to
  parse receipts from anvil
- Remove useless .into() conversion in cast send (clippy)

Amp-Thread-ID: https://ampcode.com/threads/T-019c474f-6c39-751e-a3d1-24b335ebc389
Co-authored-by: Amp <amp@ampcode.com>
- Add FoundryTxType::Tempo to the match arm that fills max_fee_per_gas
  and max_priority_fee_per_gas in anvil's build_tx_request, fixing
  'missing keys' errors for unlocked account / ethsign transactions
- Fix rustfmt: inline feePayer insert in receipt with_timestamp

Amp-Thread-ID: https://ampcode.com/threads/T-019c474f-6c39-751e-a3d1-24b335ebc389
Co-authored-by: Amp <amp@ampcode.com>
- mktx_ethsign: relax snapshot to match any Tempo tx (0x76 prefix)
  since gas fields are now auto-filled with different values
- adheres_to_json_flag: contract_address now populated for call to
  address(0), use wildcard pattern

Amp-Thread-ID: https://ampcode.com/threads/T-019c474f-6c39-751e-a3d1-24b335ebc389
Co-authored-by: Amp <amp@ampcode.com>
@grandizzy grandizzy marked this pull request as ready for review February 10, 2026 13:49
Copy link
Contributor

@zerosnacks zerosnacks left a comment

Choose a reason for hiding this comment

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

lgtm 👍

@grandizzy grandizzy merged commit 3acf269 into tempo Feb 10, 2026
13 checks passed
@grandizzy grandizzy deleted the georgen/sync-upstream-foundry branch February 10, 2026 15:57
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.