consolidated scripts
This commit is contained in:
parent
10702f5aa3
commit
74e09bb38b
5 changed files with 383 additions and 377 deletions
|
|
@ -18,8 +18,8 @@ This directory contains tools for fuzzing the KRAIKEN LiquidityManager to identi
|
|||
## Files
|
||||
|
||||
### Core Scripts
|
||||
- `FuzzingAnalysis.s.sol` - Main Solidity fuzzing script that tests trading scenarios
|
||||
- `run-fuzzing.sh` - Shell script to orchestrate multiple fuzzing runs
|
||||
- `ImprovedFuzzingAnalysis.s.sol` - Enhanced fuzzing script with staking support and memory optimizations
|
||||
- `run-fuzzing.sh` - Shell script to orchestrate multiple fuzzing runs with configurable parameters
|
||||
- `clean.sh` - Cleanup script to remove generated files
|
||||
|
||||
### Helpers
|
||||
|
|
@ -47,19 +47,23 @@ This directory contains tools for fuzzing the KRAIKEN LiquidityManager to identi
|
|||
|
||||
```bash
|
||||
# Basic usage
|
||||
./run-fuzzing.sh <optimizer_class> [runs=N] [trades=N]
|
||||
./run-fuzzing.sh <optimizer_class> [runs=N] [staking=on|off] [buybias=N] [trades=N] [stakingbias=N]
|
||||
|
||||
# Examples
|
||||
./run-fuzzing.sh BullMarketOptimizer # Uses defaults
|
||||
./run-fuzzing.sh WhaleOptimizer runs=100 # 100 runs
|
||||
./run-fuzzing.sh BearMarketOptimizer trades=50 # 50 trades per run
|
||||
./run-fuzzing.sh NeutralMarketOptimizer runs=25 trades=30 # Both params
|
||||
./run-fuzzing.sh BullMarketOptimizer runs=50 staking=on buybias=85 trades=100 stakingbias=95 # Full config
|
||||
```
|
||||
|
||||
Parameters:
|
||||
- `optimizer_class` - Required. The optimizer class to use
|
||||
- `runs=N` - Optional. Number of fuzzing runs (default: 50)
|
||||
- `trades=N` - Optional. Trades per run (default: 20, actual will be ±5)
|
||||
- `runs=N` - Optional. Number of fuzzing runs (default: 20)
|
||||
- `staking=on|off` - Optional. Enable/disable staking (default: on)
|
||||
- `buybias=N` - Optional. 0-100% bias towards buying vs selling (default: 50)
|
||||
- `trades=N` - Optional. Trades per run (default: 15, supports 100+ trades)
|
||||
- `stakingbias=N` - Optional. 0-100% bias towards staking vs unstaking (default: 80)
|
||||
|
||||
### Output
|
||||
|
||||
|
|
@ -96,19 +100,25 @@ The fuzzing script supports these environment variables:
|
|||
- `FUZZING_RUNS` - Number of runs (overridden by script parameter)
|
||||
- `OPTIMIZER_CLASS` - Optimizer to use (overridden by script parameter)
|
||||
- `TRADES_PER_RUN` - Trades per run (overridden by script parameter)
|
||||
- `TRACK_POSITIONS` - Enable detailed position tracking (default: false)
|
||||
- `TRACK_POSITIONS` - Enable detailed position tracking (default: true)
|
||||
- `ENABLE_STAKING` - Enable staking operations (default: true)
|
||||
- `BUY_BIAS` - Buy bias percentage (default: 50)
|
||||
- `STAKING_BIAS` - Staking bias percentage (default: 80)
|
||||
|
||||
## Development
|
||||
|
||||
To add a new optimizer:
|
||||
1. Create the optimizer contract in `../test/mocks/`
|
||||
2. Import it in `FuzzingAnalysis.s.sol`
|
||||
2. Import it in `ImprovedFuzzingAnalysis.s.sol`
|
||||
3. Add it to the `_getOptimizerByClass` function
|
||||
4. Update this README
|
||||
|
||||
## Notes
|
||||
|
||||
- Each run deploys a fresh Uniswap V3 environment
|
||||
- Gas limit is set to 200M for --via-ir compilation
|
||||
- Gas limit is set to 200M for script execution
|
||||
- Results are deterministic based on the seed
|
||||
- The fuzzer tests random buy/sell patterns with periodic recenters
|
||||
- The fuzzer tests random buy/sell patterns with periodic recenters
|
||||
- Supports staking operations with position snatching mechanics
|
||||
- Memory-optimized with circular buffer for position tracking
|
||||
- Records all trades to CSV for complete visualization
|
||||
Loading…
Add table
Add a link
Reference in a new issue