Skip to content

qq727127158/airdrop-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

空投工具 (Airdrop Tool)

一个用Rust编写的强大区块链空投工具,支持批量发送代币到多个地址。

功能特性

  • 🚀 批量空投: 支持批量发送代币到多个地址
  • 🔍 地址验证: 自动验证以太坊地址格式和校验和
  • 📊 结果统计: 详细的空投结果统计和报告
  • ⚙️ 配置管理: 灵活的配置文件系统
  • 🔄 重试机制: 自动重试失败的交易
  • 📝 日志记录: 完整的操作日志
  • 🛡️ 错误处理: 完善的错误处理机制

安装

前提条件

  • Rust 1.70+
  • Cargo

构建

# 克隆项目
git clone <repository-url>
cd airdrop-tool

# 构建项目
cargo build --release

# 运行测试
cargo test

配置

在使用前,请先配置 config.json 文件:

{
  "airdrop": {
    "rpc_url": "https://eth-mainnet.alchemyapi.io/v2/YOUR_API_KEY",
    "private_key": "YOUR_PRIVATE_KEY",
    "gas_limit": 21000,
    "gas_price": 20000000000,
    "chain_id": 1
  },
  "tokens": {
    "ETH": {
      "symbol": "ETH",
      "name": "Ethereum",
      "decimals": 18,
      "contract_address": "0x0000000000000000000000000000000000000000"
    }
  },
  "batch_size": 10,
  "retry_attempts": 3,
  "delay_between_batches": 1000
}

配置说明

  • rpc_url: 区块链RPC节点URL
  • private_key: 发送方私钥(用于签名交易)
  • gas_limit: Gas限制
  • gas_price: Gas价格(以wei为单位)
  • chain_id: 区块链网络ID
  • tokens: 支持的代币配置
  • batch_size: 每批处理的地址数量
  • retry_attempts: 失败重试次数
  • delay_between_batches: 批次间延迟(毫秒)

使用方法

1. 执行空投

# 空投到指定地址列表
cargo run -- airdrop \
  --addresses 0x1234... 0x5678... 0x9abc... \
  --amount 0.1 \
  --token ETH

# 从文件读取地址列表
cargo run -- airdrop \
  --addresses @addresses.txt \
  --amount 0.1 \
  --token ETH

2. 验证地址

# 验证地址格式
cargo run -- validate \
  --addresses 0x1234... 0x5678... 0x9abc...

3. 生成测试地址

# 生成100个测试地址
cargo run -- generate \
  --count 100 \
  --output test_addresses.txt

命令行参数

全局参数

  • -c, --config <FILE>: 配置文件路径(默认: config.json)

空投命令

  • -a, --addresses <ADDRESSES>: 目标地址列表
  • --amount <AMOUNT>: 每个地址的空投金额
  • -t, --token <TOKEN>: 代币符号

验证命令

  • -a, --addresses <ADDRESSES>: 要验证的地址列表

生成命令

  • -c, --count <COUNT>: 生成地址数量(默认: 100)
  • -o, --output <FILE>: 输出文件路径(默认: test_addresses.txt)

输出文件

执行空投后,工具会生成以下文件:

  • airdrop_results.csv: 详细的空投结果
  • airdrop_summary.json: 空投摘要统计

结果文件格式

airdrop_results.csv

address,amount,token,transaction_hash,status,error_message
0x1234...,0.1,ETH,0xabc...,Success,
0x5678...,0.1,ETH,,Failed,交易失败

airdrop_summary.json

{
  "total_addresses": 100,
  "successful_transactions": 95,
  "failed_transactions": 5,
  "total_amount": "10.0",
  "gas_used": 2100000,
  "results": [...]
}

安全注意事项

⚠️ 重要安全提醒:

  1. 私钥安全: 永远不要在代码中硬编码私钥,使用环境变量或安全的密钥管理
  2. 测试网络: 首次使用请在测试网络上测试
  3. 小额测试: 先进行小额测试确认配置正确
  4. 备份: 定期备份重要数据和配置

开发

项目结构

src/
├── main.rs          # 程序入口
├── lib.rs           # 库入口
├── cli.rs           # 命令行界面
├── config.rs        # 配置管理
├── error.rs         # 错误处理
├── types.rs         # 类型定义
├── airdrop.rs       # 空投执行
├── validator.rs     # 地址验证
└── generator.rs     # 地址生成

添加新功能

  1. 在相应的模块中添加新功能
  2. 更新命令行界面
  3. 添加测试用例
  4. 更新文档

许可证

MIT License

贡献

欢迎提交Issue和Pull Request!

免责声明

本工具仅供学习和研究使用。使用者需要自行承担使用风险,开发者不承担任何责任。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages