Skip to content

oxdev6/comet-txflow-replayer

Repository files navigation

comet-txflow-replayer

Transaction capture and replay toolkit for Compound III (Comet) forensic analysis.

Comet TxFlow Replayer

A transaction capture and replay toolkit for forensic analysis of Compound III (Comet) protocol activity.

Setup

  1. Install dependencies:
npm install
# Comet TxFlow Replayer

**Comet TxFlow Replayer** is a transaction capture and forensic replay toolkit for the [Compound III (Comet)](https://compound.finance/docs/#compound-iii) protocol. It helps developers and researchers inspect and analyze on-chain activity by downloading, parsing, and saving real Ethereum transaction flows.

---

 What It Does

- Pulls recent Ethereum transactions targeting Compound III contracts
- Saves transaction metadata to a local `flow.json` file
- Designed to support decoding and simulation of tx flows
- Modular base for building protocol tooling or research pipelines

---

## Install

### Global (recommended)
```bash
npm install -g comet-txflow-replayer
comet-txflow --help

Local / project usage

npm install --save-dev comet-txflow-replayer
npx comet-txflow --limit 5 --json

Make sure you have either ALCHEMY_API_KEY or any ETH_RPC_URL in your .env file so the replay can fetch on-chain data.


Getting Started

1. Clone the Repository

git clone https://github.com/your-username/comet-txflow-replayer.git
cd comet-txflow-replayer
2. Install Dependencies
bash
Copy
Edit
npm install
3. Add Your Etherscan API Key
Create a file named .env in the project root:

env
Copy
Edit
ETHERSCAN_API_KEY=your_key_here
You can get a free key from etherscan.io

▶Usage
Run the capture script:

bash
Copy
Edit
node captureTxFlow.js
This will create a flow.json file with the latest Compound III transactions.

Project Structure
bash
Copy
Edit
comet-txflow-replayer/
├── captureTxFlow.js    # Main transaction fetcher
├── flow.json           # Output: latest fetched txs
├── .env                # Your Etherscan API key (not committed)
└── README.md           # Project overview and instructions
Future Features (Planned)
Input data decoding (ABI decoding)

Tx replay with simulated state traces

Protocol-specific action labeling

Web-based explorer or CLI visualization

## CLI Usage Examples

The `replayTxFlow.js` script now supports multiple output and filtering modes via **yargs** flags:

| Flag | Purpose |
|------|---------|
| `--limit <n>` | Process only the first **n** transactions from `flow.json` |
| `--filter successful|failed` | Include **only** transactions whose receipt `status` matches (1 = successful, 0 = failed) |
| `--json` | Stream one JSON object per line (ND-JSON) to *stdout* — great for piping into other tools |
| `--quiet` | Suppress the colourful human-readable logs (still streams JSON if `--json` is set) |
| `--output <file>` | Write an **array** of processed tx objects to the given file |
| `--verbose` | Extra debug timings / fetch details |
| `--from-block N` | Skip txs before block N |
| `--to-block N` | Skip txs after block N |

### Quick recipes

```bash
# 1. Full forensic replay (verbose)
node replayTxFlow.js

# 2. First 5 transactions only
node replayTxFlow.js --limit 5

# 3. Only failed txs, no console noise
node replayTxFlow.js --filter failed --quiet

# 4. ND-JSON stream → jq
node replayTxFlow.js --json | jq -c .

# 5. Structured array written to disk
node replayTxFlow.js --limit 20 --output txs.json --quiet

Example verbose output:

🔍 [1] Tx: 0x...
   ⛓  Block: 23031...
   📨  From : 0x...
   📥  To   : 0x...
   🔎  Function: supply
   📤  ERC20 Transfers:
       0x... → 0x... : 123.45 tokens (0xTOKEN)

License MIT — feel free to use, fork, and contribute.

About

Transaction capture and replay toolkit for Compound III (Comet) forensic analysis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors