feat(cast): cache Etherscan sources under Foundry cache with temp fallback #12025
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change replaces the ephemeral temp directory used for Etherscan source retrieval with a persistent cache path at ~/.foundry/cache/etherscan//sources/
. We use the standard Foundry cache location exposed by foundry_config to align with existing caching practices and to avoid repeatedly downloading and writing the same source tree. If creating the cache directory fails (e.g., permissions), we safely fall back to a temp directory. The compilation flow and behavior remain unchanged (no artifacts, same solc selection logic). This improves performance on subsequent runs, reduces unnecessary I/O, and keeps caching consistent with the project’s existing Etherscan client caching strategy.