Telegram 狙击机器人:面向 BSC 链 的 Fourmeme 内盘(以及相关交易路由/合约)自动化交易与风控。
- 钱包管理
- 多钱包(同一 Telegram 用户可创建多个钱包、切换激活钱包)
- 狙击(sniper)与扫链(sweep)可在同一钱包上分别启用与独立配置
- 交易/策略
- 面向 Fourmeme 内盘的狙击/扫链策略(以项目内实现为准)
- 通过合约(FeeCollector / TokenManager2)与路由进行 swap(依项目内实现为准)
- 止盈/止损(TPSL)
- 价格监控(等待下跌触发自动买入)
- 价格服务
- 内置
utils/priceWorker.js子进程,轮询获取代币价格并触发监听事件
- 内置
注意:本项目涉及私钥/助记词/链上交易与资金风险,请仅在你完全理解代码与风险的前提下使用。
- Node.js
telegraf(Telegram Bot Framework)ethers(链上交互)knex+mysql2(MySQL 数据库)dotenv(环境变量)
- Python(可选工具脚本)
requests、web3(用于部分辅助脚本,见requirements.txt)
bot.js:主入口(Telegram bot)config/index.js:环境变量与配置聚合db/knex.js:MySQL 连接(Knex)mysql_schema_v2.sql:数据库结构(v2)utils/priceWorker.js:价格 worker 子进程services/、lib/、utils/:业务逻辑与工具
- Node.js 18+(建议)
- MySQL 8+(建议)
- 一个 Telegram Bot Token(来自 @BotFather)
- 一个可用的 BSC JSON-RPC / WebSocket RPC(用于读链、发交易与价格轮询)
使用 yarn:
yarn install或使用 npm:
npm install项目使用 dotenv,需要在项目根目录创建 .env(已在 .gitignore 中忽略,不会提交)。
BOT_TOKEN:Telegram Bot TokenMYSQL_HOSTMYSQL_PORT(默认 3306)MYSQL_USERMYSQL_PASSWORDMYSQL_DATABASE
config/index.js 中会读取以下 RPC 配置(未填则有默认值):
LOCAL_RPC_URL(默认http://localhost:8545)PUBLIC_RPC_URL(默认:LOCAL_RPC_URL或http://localhost:8545)JSON_RPC_URL(默认http://localhost:8545)WS_RPC_URL/WEBSOCKET_RPC_URL(默认ws://localhost:8546)
FEE_COLLECTOR_ADDRESS:FeeCollector 合约地址(未设置时,代码内有默认地址兜底)
utils/priceWorker.js 额外读取:
PRICE_WORKER_RPC:价格轮询专用 RPC(默认使用PUBLIC_RPC_URL)PRICE_WORKER_MAX_PER_TICK:每轮轮询的最大 token 数(默认 20)
NODE_ENV=production
BOT_TOKEN=123456:ABCDEF
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=fourmeme_sniper_bot
PUBLIC_RPC_URL=https://bsc-dataseed.binance.org/
WS_RPC_URL=wss://bsc-ws-node.nariox.org:443
FEE_COLLECTOR_ADDRESS=0xYourFeeCollector
PRICE_WORKER_RPC=https://bsc-dataseed.binance.org/
PRICE_WORKER_MAX_PER_TICK=20- 在 MySQL 创建数据库(示例):
CREATE DATABASE fourmeme_sniper_bot DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- 导入表结构:
- 执行
mysql_schema_v2.sql
文件包含:
userswalletstake_profit_stop_loss(含mode字段区分sniper/sweep)sniper_recordsprice_monitors
yarn startyarn dev脚本定义见 package.json:
start:node bot.jsdev:nodemon bot.js
项目内提供了脚本入口(若目录存在且你已配置好相关参数/私钥/网络):
- 编译:
yarn compile- 部署:
yarn deploy- 部署到 Remix(脚本参数):
yarn deploy:remix具体合约与部署参数以
scripts/目录实现为准。
- 检查
.env中MYSQL_HOST/MYSQL_USER/MYSQL_PASSWORD/MYSQL_DATABASE - 确保 MySQL 已启动,并允许该用户从你的主机连接
- 检查
PUBLIC_RPC_URL/PRICE_WORKER_RPC是否可用、是否被限流 - 尝试更换更稳定的 RPC
- 适当调小
PRICE_WORKER_MAX_PER_TICK以减少每轮请求量
- 确认
BOT_TOKEN正确 - 检查是否有多个实例同时使用同一个 bot token(会导致 webhook/long polling 冲突)
- 不要提交
.env、数据库文件、私钥/助记词 - 建议使用独立测试钱包进行验证
- 建议先在测试网或小额资金环境中运行
ISC