Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions gasAnalyzer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# DEX Router Gas Analyzer

A tool for analyzing gas consumption of DEX Router swap methods using `debug_traceCall`.

## Quick Start

### 1. Install

```bash
cd DEX-Router-Tools-Suite/gasAnalyzer
npm install
```

### 2. Configure RPC

Edit `config/chains.js` with your QuickNode RPC URL (must support `debug_traceCall`):

```javascript
eth: {
rpcUrl: 'YOUR_QUICKNODE_URL',
// ...
}
```

### 3. Test RPC Connection

```bash
node utils/quickTest.js
```

### 4. Run Analysis

```bash
# Single swap type
node analyzer/dynamicGasAnalyzer.js arb dagSwap ERC20->ETH

# All swap types
node analyzer/dynamicGasAnalyzer.js arb dagSwap all

# With UniV3 pool (for dagSwap)
POOL_TYPE=uniV3 node analyzer/dynamicGasAnalyzer.js arb dagSwap all
```

## Supported Methods

| Method | Command |
|--------|---------|
| dagSwapByOrderId | `node analyzer/dynamicGasAnalyzer.js {chain} dagSwap {swapType}` |
| unxswapByOrderId | `node analyzer/dynamicGasAnalyzer.js {chain} unxSwap {swapType}` |
| uniswapV3SwapTo | `node analyzer/dynamicGasAnalyzer.js {chain} uniswapV3 {swapType}` |

## Swap Types

- **Swap Types**: `ERC20->ERC20`, `ETH->ERC20`, `ERC20->ETH`, `all`

## Output

Results are saved to `result/` folder:
- CSV: `gas-analysis-{chain}-{method}-{timestamp}.csv`
- JSON: `gas-analysis-{chain}-{method}-{timestamp}.json`

## Project Structure

```
gasAnalyzer/
├── config/ # Chain & pool configurations
├── encoder/ # Calldata encoding
├── analyzer/ # Gas analysis scripts
├── utils/ # Helper scripts
└── result/ # Output files
```
Loading