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

chore: pull in merged commits from upstream #492

Closed
wants to merge 435 commits into from
Closed

Conversation

Karrq
Copy link
Contributor

@Karrq Karrq commented Jul 25, 2024

Motivation

When we merged #445 we weren't able to merge without squashing, thus we lost all commits from foundry.
Future updates will get intertwined with these commits if we don't merge them back in soon.

Solution

This PR will bring in the foundry commits that have been merged to far. All conflicts were already resolved and taken care of previously, so this PR doesn't really bring in any changes

Troublor and others added 30 commits April 18, 2024 17:18
* feat:support forge clone

* feat: update configuration based on metadate from EtherScan 👷

* doc: update the documenation for

* add dump_sources function

* fix: add existing remapping into remappings.txt

* apply remapping on libraries

* add tests

* feat: update remappings in config file

* add two more test cases

* fix library remapping bug

* test: add e2e test cases for forge clone

* test: fix rate limit issue for forge clone tests

* feat: disable git by default for forge clone

* dump clone.toml metadata in cloned projects

* add storage layout to the clone metadata

* dump clone metadata in a hidden, readonly, compact json file

* add constructor arguments in clone metadata

* fix: typo field name

* fix: bug in remapping

* fix: remapping disorder for verified foundry contracts

* fix clippy and fmt warnings

* fmt in the foundry way

* chore: restore files to be consistent with foundry fmt style

* cherry pick bug fixes from tweak branch

* fix: remove the dependency of Etherscan in tests

* chore: move mockall to dev dependency, only mock in test build

* feat: use camelCase in .clone.meta

* doc: add comments to explain forge clone

* fix: import file not found error

* chore: remove uncessary dependency

fix: fix a foundry config bug regarding generating project_paths

* chore: refactor the test code a bit

* Update crates/forge/bin/cmd/clone.rs

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

* Update crates/forge/bin/cmd/clone.rs

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

* chore: change string as address in CloneArg

* test: add one basic forgetest for clone

* feat: dump remappings into remappings.txt by default

chore: break a large function into multiple small one to improve readability

* feat: improve UX and make --quiet true quiet

* test: add one more forgetest! for clone

* fix minor issues suggested in code review

* fix: incorrect assertion for project paths

* test: add default etherscan api keys and remove sleep in tests

* test: add more etherscan api keys

* fix: revoke the unnecessary changes in config.rs

* feat: bump foundry-compilers to 0.3.16

* chore: refactor code and clean some comments

* fix: path disorder on windows

* touchups

---------

Co-authored-by: Zhuo Zhang <[email protected]>
Co-authored-by: Zhuo Zhang <[email protected]>
Co-authored-by: DaniPopes <[email protected]>
Co-authored-by: Matthias Seitz <[email protected]>
* feat: support ipc path as rpc url

* typo
* fix: use 2718 encoding for tx root

* fmt

* rm doc

* fix
* fix: exclude empty artifacts from ContractsByArtifact

* additional check

* fmt

* doc

* use Option for bytecodes
* fix: Type parameter of Vm.prevrandao as uint256

* fix: tests types

* fix: overload instead of breaking
* return logs in all cases

* make clippy happy

* nits
* fix: correctly process relative paths as  values

* clippy

* nit
* fix: do not require --sender with --unlocked

* test
* test: add a test case with nested src

* fix: fix the bug caused by nested src

* chore: make the directory of the cloned project more readable

* chore: add --keep-directory-structure option to improve compilation robustness if necessary

test: add two more tests for forge clone

* chore: use  instead of
* chore(deps): update yansi to v1.0

* move yansi to workspace deps

* move yansi to workspace deps

* adjustments

---------

Co-authored-by: DaniPopes <[email protected]>
* chore(deps): weekly `cargo update`

    Updating git repository `https://github.com/alloy-rs/alloy`
    Updating git repository `https://github.com/paradigmxyz/evm-inspectors`
     Locking 23 packages to latest compatible versions
    Updating async-channel v2.2.0 -> v2.2.1
    Updating aurora-engine-modexp v1.0.0 -> v1.1.0
    Updating aws-smithy-http v0.60.7 -> v0.60.8
    Updating aws-smithy-runtime v1.3.0 -> v1.3.1
    Updating aws-smithy-xml v0.60.7 -> v0.60.8
    Updating cc v1.0.94 -> v1.0.95
    Updating chrono v0.4.37 -> v0.4.38
    Updating figment v0.10.16 -> v0.10.18
    Updating foundry-compilers v0.3.17 -> v0.3.18
    Updating hyper v1.2.0 -> v1.3.1
      Adding lzma-rs v0.3.0
    Updating prettyplease v0.2.17 -> v0.2.19
    Updating proc-macro2 v1.0.79 -> v1.0.81
    Updating reqwest v0.12.3 -> v0.12.4
    Updating serde v1.0.197 -> v1.0.198
    Updating serde_derive v1.0.197 -> v1.0.198
    Updating serde_json v1.0.115 -> v1.0.116
    Updating syn v2.0.58 -> v2.0.60
    Updating thiserror v1.0.58 -> v1.0.59
    Updating thiserror-impl v1.0.58 -> v1.0.59
    Updating toml_edit v0.22.9 -> v0.22.12
      Adding zip v1.1.0
    Updating zip_next v1.0.1 -> v1.1.1
note: pass `--verbose` to see 169 unchanged dependencies behind latest

* tempfile

---------

Co-authored-by: mattsse <[email protected]>
Co-authored-by: DaniPopes <[email protected]>
…once (#7741)

Return transaction hash in ots_getTransactionBySenderAndNonce
* fix(fuzz): deduplicate fuzz inputs

* Fix tests, collect fixtures in test setup, arc fixtures

* Cleanup

* Use fixture_ prefix

* Update tests to reflect that random values are used if no fixtures

* Review changes

* Group fuzz_calldata and fuzz_calldata_from_state in calldata mod

* Review changes: remove unnecessary clones, nicer code to collect fixtures

* Add support for bytes and string fixtures, fixture strategy macro. Solidity test

* Remove unnecessary clone

* Use inline config

* More robust invariant assume test
- previously rejecting when param was 0 (vm.assume(param != 0)) that is param should have been fuzzed twice with 0 in a run
- with fuzz input deduplication is now harder to occur, changed rejected if param is not 0 (vm.assume(param != 0)) and narrow down to one run and just 10 depth

* Fixtures as storage arrays, remove inline config

* Simplify code

* Support fixed size arrays fixtures

* Update comment

* Use DynSolValue::type_strategy for address and fixed bytes fuzzed params

* Add prefix to mark a storage array or a function as fixture

* Fix test

* Simplify code / fixture strategy macro, panic if configured fixture not of param type

* Consistent panic with fixture strategy if uint / int fixture of different type.
Keep level of randomness in fixture strategy, at par with uint / int strategies.

* Review changes: don't panic when invalid fixture, use prop_filter_map for fixture strategy and raise error
grandizzy and others added 22 commits June 14, 2024 23:06
* feat(invariant): introduce tearDown function

* Add Tests

* Fix tests

* tearDown -> afterInvariant refactor

* Group has_invariants with tmp_tracing
* fix(forge-bind): allow attrs and mod single_file imports

* fmt nit

* allow rustdoc::all

* fix: file consistenct check

* fix clippy
* chore(deps): weekly `cargo update`

    Updating git repository `https://github.com/bluealloy/revm.git`
    Updating git repository `https://github.com/alloy-rs/alloy`
    Updating git repository `https://github.com/paradigmxyz/revm-inspectors`
     Locking 45 packages to latest compatible versions
    Updating alloy-chains v0.1.18 -> v0.1.20
    Updating aws-runtime v1.2.2 -> v1.2.3
    Updating aws-sigv4 v1.2.1 -> v1.2.2
    Updating aws-smithy-runtime-api v1.6.2 -> v1.7.0
    Updating aws-smithy-types v1.1.10 -> v1.2.0
    Updating clap v4.5.6 -> v4.5.7
    Updating clap_builder v4.5.6 -> v4.5.7
    Updating derive_more v0.99.17 -> v0.99.18
    Updating fs4 v0.8.3 -> v0.8.4
    Updating http-body-util v0.1.1 -> v0.1.2
    Updating httparse v1.8.0 -> v1.9.3
      Adding icu_collections v1.5.0
      Adding icu_locid v1.5.0
      Adding icu_locid_transform v1.5.0
      Adding icu_locid_transform_data v1.5.0
      Adding icu_normalizer v1.5.0
      Adding icu_normalizer_data v1.5.0
      Adding icu_properties v1.5.0
      Adding icu_properties_data v1.5.0
      Adding icu_provider v1.5.0
      Adding icu_provider_macros v1.5.0
    Updating idna v0.5.0 -> v1.0.0
    Updating interprocess v2.1.1 -> v2.2.0
      Adding litemap v0.7.3
    Updating memchr v2.7.2 -> v2.7.4
    Updating redox_syscall v0.5.1 -> v0.5.2
    Updating regex v1.10.4 -> v1.10.5
    Updating regex-automata v0.4.6 -> v0.4.7
    Updating regex-lite v0.1.5 -> v0.1.6
    Updating regex-syntax v0.8.3 -> v0.8.4
    Updating rustls v0.23.9 -> v0.23.10
      Adding stable_deref_trait v1.2.0
      Adding synstructure v0.13.1
      Adding tinystr v0.7.6
    Removing unicode-bidi v0.3.15
    Updating url v2.5.0 -> v2.5.1
      Adding utf16_iter v1.0.5
      Adding utf8_iter v1.0.4
      Adding write16 v1.0.0
      Adding writeable v0.5.5
      Adding yoke v0.7.4
      Adding yoke-derive v0.7.4
      Adding zerofrom v0.1.4
      Adding zerofrom-derive v0.1.4
      Adding zerovec v0.10.2
      Adding zerovec-derive v0.10.2
note: pass `--verbose` to see 158 unchanged dependencies behind latest

* allow unicode

---------

Co-authored-by: mattsse <[email protected]>
Co-authored-by: Matthias Seitz <[email protected]>
* chore(deps): bump alloy, revm

* doctests
* feat: debug_getRawTransaction rpc endpoint

* clippy happy

* conflicts resolved

* chore: tests + refactor

* fix
…176)

* fix(invariant): weight invariant selectors by number of selectors

- Consolidate FuzzRunIdentifiedContracts logic
- add function to flatten contracts function in order to be used by strategy
- test

* Changes after review: cleanup
* [do not merge] patch compilers

* fix import

* fix doc

* update patch

* rm patch
* fix: move paths to BuildArgs

* tests

* dirs -> paths
* chore(deps): pin alloy 0.1.1

* bump revm and apply patch
* implemented latest_block dump/load

* update to dump/load all blocks instead of only latest

* refactored state loading into storage.rs, and added load-dump cycle test

* fix clippy errors for anvil

* remove SerializableHeader and use Header (now serializable)

* clippy happy

---------

Co-authored-by: Matthias Seitz <[email protected]>
* feat(invariant): add excludeSelectors() filter

* Apply suggestions from code review

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

* Review changes: shorter err message

---------

Co-authored-by: DaniPopes <[email protected]>
* fix(cheatcodes): handle delegatecalls in vm.mockCalls using `bytecode_address`

* add: repro test

* nit: forge fmt
…rmat. (#8195)

* feat(cast): support readable time for cast block

* fix: remove `time`

* Update crates/common/src/fmt/ui.rs

* fmt

---------

Co-authored-by: fenghaojiang <[email protected]>
Co-authored-by: DaniPopes <[email protected]>
@Karrq Karrq changed the title chore: pull in merged commits from foundry chore: pull in merged commits from upstream Jul 25, 2024
@Karrq Karrq closed this Aug 14, 2024
@Karrq Karrq deleted the dev-with-foundry-commits branch August 14, 2024 17:38
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.