一个功能强大的以太坊代币余额监控系统,支持多地址、多代币的实时监控和智能报警。
- 多地址监控: 同时监控多个以太坊地址
- 多代币支持: 每个地址可监控多个ERC20代币
- 智能阈值: 支持绝对值阈值和变化百分比阈值
- 声音报警: 可配置的声音提醒系统
- 模块化架构: 清晰的代码结构,易于维护和扩展
- 内存存储: 轻量级,不依赖外部数据库
- 跨平台: 支持Windows、macOS和Linux
- Python 3.8+
- pip
pip install -r requirements.txt您需要获取一个以太坊节点提供商的API密钥:
编辑 config.yaml 文件:
rpc_settings:
provider_url: "https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY" # 替换为您的API密钥根据需要调整以下参数:
check_interval_seconds: 检查间隔(秒)- 阈值设置:
min_balance,max_balance,change_percentage_up,change_percentage_down - 报警设置:
sound_repeat_count,alert_cooldown_minutes
python main.pypython main.py --testpython main.py --config my_config.yamlpython main.py --help启动后,您将看到:
- 初始化信息: 系统组件加载状态
- 余额快照: 当前所有监控地址的余额
- 实时监控: 定期检查和报警信息
- 统计信息: 停止时显示监控统计
- 最小余额报警: 余额低于设定的最小值
- 最大余额报警: 余额超过设定的最大值
- 上涨报警: 相比上次检查,余额上涨超过设定百分比
- 下跌报警: 相比上次检查,余额下跌超过设定百分比
- 控制台输出: 详细的报警信息
- 声音提醒: 系统声音或自定义音频文件
- 日志记录: 可选的日志文件记录
- 同一类型的报警在冷却期内不会重复触发
- 默认冷却期:5分钟(可配置)
src/
├── config/ # 配置管理模块
│ ├── __init__.py
│ └── config_manager.py
├── blockchain/ # 区块链交互模块
│ ├── __init__.py
│ ├── web3_client.py
│ └── token_service.py
├── monitor/ # 监控引擎模块
│ ├── __init__.py
│ ├── balance_monitor.py
│ └── threshold_checker.py
├── alert/ # 报警系统模块
│ ├── __init__.py
│ ├── alert_manager.py
│ └── sound_player.py
└── __init__.py
- ConfigManager: 配置文件加载和验证
- Web3Client: 以太坊网络连接和交互
- TokenService: ERC20代币相关操作
- BalanceMonitor: 余额监控和阈值检查
- AlertManager: 报警管理和通知
- SoundPlayer: 跨平台声音播放
- 将音频文件放置在项目目录
- 修改配置文件中的
sound_file_path - 支持格式:WAV, MP3(取决于系统)
- 生产环境建议:60-300秒
- 测试环境可设置:10-30秒
- 注意:频率过高可能触发API限制
可以通过添加自定义通知处理器来扩展报警方式:
def custom_notification(alert_info, alert_message):
# 自定义通知逻辑
# 如:发送邮件、Webhook、微信消息等
pass
alert_manager.add_notification_handler(custom_notification)-
连接失败
- 检查API密钥是否正确
- 确认网络连接正常
- 验证RPC URL格式
-
代币余额获取失败
- 验证代币合约地址
- 检查地址格式是否正确
- 确认代币是否为标准ERC20
-
声音播放失败
- 检查音频文件是否存在
- 确认系统音频设备正常
- 尝试使用系统默认提示音
启用详细日志:
logging:
level: "DEBUG"- ✅ 基础监控功能
- ✅ 多地址、多代币支持
- ✅ 阈值报警系统
- ✅ 声音提醒功能
- ✅ 模块化架构
- ✅ 跨平台支持
如有问题或建议,请通过以下方式联系:
- 查看日志文件获取详细错误信息
- 检查配置文件格式是否正确
- 确认所有依赖包已正确安装
- API限制: 请注意以太坊节点提供商的API调用限制
- 网络稳定性: 确保网络连接稳定,避免误报
- 私钥安全: 本工具仅读取余额,不需要私钥
- 资源消耗: 监控频率过高可能影响系统性能
本项目采用MIT许可证,请查看LICENSE文件了解详情。