Files
2026-07-12 14:35:58 +08:00

185 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SOL Trade CLI
[English](README.md)
一个用于在 Solana 上交易代币的命令行工具,支持多种 DEX 交易和钱包管理功能。
> **真实交易警告:**运行前设置 `PRIVATE_KEY`base58 或 64 字节 JSON 数组)和 `RPC_URL`。CLI 不再创建临时交易钱包;下列命令可能提交真实主网交易。
## 功能
此 CLI 工具支持以下操作模式:
### 🚀 **交易功能**
- **买入代币** - 使用 SOL 购买代币,支持多个 DEX
- **卖出代币** - 卖出代币换取 SOL,支持指定数量或全部卖出
- **多 DEX 支持** - pumpfun, pumpswap, bonk, raydium_v4, raydium_cpmm
### 💼 **钱包管理**
- **钱包状态** - 查看 SOL 和 WSOL 余额
- **SOL 包装** - 将 SOL 包装为 WSOL
- **WSOL 关闭** - 关闭 WSOL 账户并取回 SOL
### 🎛️ **使用模式**
- **交互式模式** - 持续的命令行界面
- **直接命令模式** - 单次命令执行
## 构建
```bash
cd examples/cli_trading
cargo build --release
```
## 使用方式
### 1. 交互式模式 (推荐)
直接运行程序进入交互模式:
```bash
cargo run
# 或者显式指定
cargo run -- interactive
```
然后在交互式命令行中输入命令:
```
sol-trade> help # 查看帮助
sol-trade> wallet # 查看钱包状态
sol-trade> buy xxxxxxxxxxxxxx pumpfun 1.0 # 用1.0 SOL买入
sol-trade> buy xxxxxxxxxxxxxx pumpfun 1.0 500 # 买入并设置500滑点
sol-trade> sell xxxxxxxxxxxxxx pumpfun # 卖出所有代币
sol-trade> sell xxxxxxxxxxxxxx pumpfun 100.0 # 卖出100个代币
sol-trade> raydium_v4_buy <mint> <amm_address> 1.0 # Raydium V4 买入
sol-trade> raydium_cpmm_buy <mint> <pool_address> 1.0 # Raydium CPMM 买入
sol-trade> wrap_sol 2.5 # 包装2.5 SOL
sol-trade> close_wsol # 关闭WSOL账户
sol-trade> quit # 退出
```
### 2. 直接命令行模式 ⭐️ **新功能**
现在支持直接通过命令行参数执行单个命令,无需进入交互模式:
#### 📋 查看帮助
```bash
cargo run -- --help # 总体帮助
cargo run -- buy --help # 买入命令帮助
cargo run -- sell --help # 卖出命令帮助
```
#### 💰 买入代币
```bash
# 基础买入
cargo run -- buy <mint_address> pumpfun --amount 1.0
# 买入并设置滑点
cargo run -- buy <mint_address> pumpfun --amount 1.0 --slippage 500
# Raydium V4 买入
cargo run -- buy <mint_address> raydium_v4 --amount 1.0 --amm <amm_address>
# Raydium CPMM 买入
cargo run -- buy <mint_address> raydium_cpmm --amount 1.0 --pool <pool_address>
```
#### 💸 卖出代币
```bash
# 卖出所有代币
cargo run -- sell <mint_address> pumpfun
# 卖出指定数量
cargo run -- sell <mint_address> pumpfun --amount 100.0
# 卖出并设置滑点
cargo run -- sell <mint_address> pumpfun --amount 100.0 --slippage 500
# Raydium V4 卖出
cargo run -- sell <mint_address> raydium_v4 --amm <amm_address>
# Raydium CPMM 卖出
cargo run -- sell <mint_address> raydium_cpmm --pool <pool_address>
```
#### 🔄 钱包操作
```bash
# 包装SOL为WSOL
cargo run -- wrap-sol --amount 1.0
# 关闭WSOL账户
cargo run -- close-wsol
# 查看钱包状态
cargo run -- wallet
```
## 支持的 DEX
| DEX | 状态 | 买入 | 卖出 | 特殊参数 |
| ---------------- | ----------- | ---- | ---- | ------------------ |
| **PumpFun** | ✅ 完全支持 | ✅ | ✅ | 无 |
| **PumpSwap** | ✅ 完全支持 | ✅ | ✅ | 无 |
| **Bonk** | ✅ 完全支持 | ✅ | ✅ | 无 |
| **Raydium V4** | ✅ 完全支持 | ✅ | ✅ | 需要 `--amm` 参数 |
| **Raydium CPMM** | ✅ 完全支持 | ✅ | ✅ | 需要 `--pool` 参数 |
## 功能状态
**已完全实现的功能:**
- **多 DEX 交易** - 支持 PumpFun, PumpSwap, Bonk, Raydium V4, Raydium CPMM
- **买入/卖出** - 完整的代币交易功能(真实区块链交易)
- **钱包管理** - SOL 包装、WSOL 关闭、余额查询
- **双模式操作** - 交互式模式和直接命令行模式
- **参数验证** - 智能检查必需参数(如 Raydium 的 AMM/Pool 地址)
- **完整帮助系统** - 每个命令都有详细的帮助文档
## 快速开始示例
```bash
# 1. 查看帮助
cargo run -- --help
# 2. 检查钱包状态
cargo run -- wallet
# 3. 直接买入代币(PumpFun
cargo run -- buy xxxxxxxxxxxxxx pumpfun --amount 0.1
# 4. 使用Raydium V4买入
cargo run -- buy <mint> raydium_v4 --amount 0.1 --amm <amm_address>
# 5. 卖出代币
cargo run -- sell xxxxxxxxxxxxxx pumpfun
# 6. 启动交互模式
cargo run
```
## 特性亮点
- 🎯 **智能参数验证** - 自动检查各 DEX 所需的特殊参数
- 🔄 **双模式操作** - 支持交互式和命令行两种使用方式
- 📊 **实时状态显示** - 钱包余额、交易状态实时更新
- 🛡️ **安全交易** - 所有交易都有完整的错误处理和确认
- 📝 **详细日志** - 每笔交易都会显示签名用于追踪
## 安全提醒
⚠️ **重要安全提醒:**
- 本工具进行**真实的区块链交易**
- 所有交易会消耗真实的 SOL 作为交易费用
- 确保钱包私钥安全,不要泄露给他人
- 交易是不可逆的,请谨慎操作
- 建议先用小额进行测试