manifoldfinance / manifoldfinance/mev-proxy
Feature: Adopt `diffusc`
Nobody has claimed this yet.
- Dominant language
- Solidity
- Stars
- 10
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
# Diffusc
[re: Trail of Bits Blog: Differential fuzz testing upgradeable smart contracts with Diffusc
](https://blog.trailofbits.com/2023/07/07/differential-fuzz-testing-upgradeable-smart-contracts-with-diffusc/)
### TLDR: Diffusc is a tool to help improve testing around upgradeability
> see [https://github.com/crytic/diffusc#setup-1](https://github.com/crytic/diffusc#setup-1)
Diffusc is a human-assisted tool that aims to ease the validation of smart contract upgrades
1. It leverages Slither’s static analysis to identify all functions that are impacted by the upgrade.
2. It generates wrappers to deploy and interact with the contracts. Wrapper contracts come in two flavors: standard mode and fork mode.
3. The user should review the wrappers for errors, add information that Diffusc could not infer automatically, and add additional invariants and preconditions where appropriate.
4. Finally, Diffusc leverages Echidna to perform differential fuzzing and to try to find issues with the upgrade. Some failing tests may require additional manual review.

> Diffusc automatically generates differential fuzz testing contracts that can be used with Echidna to detect real-world bugs. It can do this in two ways: standard mode and fork mode. **Fork mode support is now available in HEVM as well**
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Diffusc setup documentation linked in the issue and review how its Slither and Echidna workflow could apply to this repository. Define the integration scope for upgradeable smart-contract testing; done should include a working differential fuzzing setup, reviewed generated wrappers, and any required invariants or preconditions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- solidity
- Domain
- blockchain, security, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100