一个用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节点URLprivate_key: 发送方私钥(用于签名交易)gas_limit: Gas限制gas_price: Gas价格(以wei为单位)chain_id: 区块链网络IDtokens: 支持的代币配置batch_size: 每批处理的地址数量retry_attempts: 失败重试次数delay_between_batches: 批次间延迟(毫秒)
# 空投到指定地址列表
cargo run -- airdrop \
--addresses 0x1234... 0x5678... 0x9abc... \
--amount 0.1 \
--token ETH
# 从文件读取地址列表
cargo run -- airdrop \
--addresses @addresses.txt \
--amount 0.1 \
--token ETH# 验证地址格式
cargo run -- validate \
--addresses 0x1234... 0x5678... 0x9abc...# 生成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: 空投摘要统计
address,amount,token,transaction_hash,status,error_message
0x1234...,0.1,ETH,0xabc...,Success,
0x5678...,0.1,ETH,,Failed,交易失败
{
"total_addresses": 100,
"successful_transactions": 95,
"failed_transactions": 5,
"total_amount": "10.0",
"gas_used": 2100000,
"results": [...]
}- 私钥安全: 永远不要在代码中硬编码私钥,使用环境变量或安全的密钥管理
- 测试网络: 首次使用请在测试网络上测试
- 小额测试: 先进行小额测试确认配置正确
- 备份: 定期备份重要数据和配置
src/
├── main.rs # 程序入口
├── lib.rs # 库入口
├── cli.rs # 命令行界面
├── config.rs # 配置管理
├── error.rs # 错误处理
├── types.rs # 类型定义
├── airdrop.rs # 空投执行
├── validator.rs # 地址验证
└── generator.rs # 地址生成
- 在相应的模块中添加新功能
- 更新命令行界面
- 添加测试用例
- 更新文档
MIT License
欢迎提交Issue和Pull Request!
本工具仅供学习和研究使用。使用者需要自行承担使用风险,开发者不承担任何责任。