- 主讲人: Wiger https://twitter.com/JizhouW
- 代码编写: Wiger https://twitter.com/JizhouW
- 代码编写: Soth https://twitter.com/Soth76267980
- 助教: Niel
- 正常交易: 市价/限价 买入/卖出
- 抢新: 抢土狗
- 多线程模式: n 线程同时启动购买
- 价格显示
- 开盘 0 秒进场
- 买入均价获取
- BNB: 市价买入 市价卖出 止盈 止损
- USDT: 市价买入 市价卖出 止盈 止损
- 定时开启交易
- 限价/市价买入
- 限价/市价卖出
- 设置每单交易定时: 到指定时间未交易自动取消
- 设置矿工费: Gas_Price 和 Gas_Limit 越大越先打包, 过小可能交易不成功, 总矿工费: Gas_Price * Gas_Limit, 正常交易: Gas_Price = 10 - 15, 抢新币设置为: Gas_Price = 50 - 100, Gas_Limit 全部设置为 210000 即可
- 设置滑点百分比: 假定最低买入数目 100, 滑点设置为 5% (仅需输入 5, 无需输入百分号), 则最低买入数目为 95
- 查询钱包余额
- 多线程交易
- 流动性检测, 防止过早盲目交易浪费 Gas 费
- 增加 config.py 配置文件
- 增加实时显示价格功能
- 增加全部卖出/部分卖出功能
- 增加止损模式
MY_ADDR
: 钱包地址PRIV_KEY
: 钱包私钥ADDR_1
: 起始地址, 例如: WBNB 地址: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"ADDR_2
: 结束地址, 例如: BAKE 地址: "0xE02dF9e3e622DeBdD69fb838bB799E3F168902c5"LIQUL_ADDR
: 流动性检测地址, 例如: BAKE_Pancake_Swap 地址: "0x1099C2E6Ed6ebA95099c205b599B409305783E43"GAS_PRICE
: 矿工费: 抢币设置为 50 - 150GAS_LIMIT
: 矿工数目: 210000 - 360000SLIPPAGE_BUY
: 购买滑点, 输入 30 即为 30%, 输入 0 即指定数量不变SLIPPAGE_SELL
: 出售滑点, 输入 30 即为 30%, 输入 0 即指定数量不变PER_PRICE
: 限价出售单价, 例如: BAKE:BNB = 0.012decimal_1
: 一号币小数位数, 例如: BNB = 18decimal_2
: 二号币小数位数, 例如: BAKE = 18time_period
: 订单时间, 到时间自动取消, 单位为秒count_token_1
: 购买总消耗钱数, 例如: BNB = 0.00005count_token_2
: 出售总消耗钱数, 例如: BAKE = 0.03sleep_time
: 流动性检测间隔时间
MODEL_TYPE
: 抢币模式, 根据是否有合约地址, 是否有交易对地址决定, 后续会继续更新- 判断是否有合约地址, 没有合约地址则提示输入
- 用合约地址获取交易对地址
- 根据交易对地址, 获取池子 代币 和 BNB 数目
- 根据 代币 和 BNB 数目判断是否开盘
- 开盘后发起交易
- 实际开盘时间: 2021.06.01 23:39:32
- 检测开盘时间: 2021.06.01 23:39:33
- 提交购买时间: 2021.06.01 23:39:33
- 购买成交时间: 2021.06.01 23:39:39
- 检测总耗时间: 1 秒
- 开盘交易总耗时间: 7 秒
- 检测交易是否成功: 目前用检测账户余额是否数值变化进行判定, 例如交易前: BAKE 余额 600, 交易后变为: 1666, 则判定为交易成功
- 检测开盘, 拒绝盲目发起交易烧手续费: 目前通过检测池子余额进行判定开盘, 但无法将两个模式统一, 有两个思路: 1) 通过合约地址查找交易对地址, 然后开启模式 1; 2) 通过合约地址直接检测开盘与否
- 实时显示价格: 思路可能类似 2-1 通过爬虫获取
- 检测交易是否成功: 检测账户余额是否数值变化进行判定
- 检测开盘: 合约地址获取交易对地址 -> 根据交易对地址, 获取池子 代币 和 BNB 数目 -> 根据 代币 和 BNB 数目判断是否开盘
- 实时显示价格: 借助 getAmountsOut() 获取 1 个 BNB 能换多少 USDT, 并借助池子中 BNB 与 代币数目 的比值计算出最终价格
- 核心部分包装为 c++ dll 文件
- 全部部分写成函数, 抵制顺序执行, 加入主函数 main
- 代码混淆 + 加壳 + 在线验证 + ...
- 网页制作
- 多语言制作
- 通过 邮箱 + 付款地址 进行付款, 后台根据读取 BSC 链上交易进行 激活码 邮件发送
- 软件 License 系统
- Sniper 类封装性不够好,需要花时间维护或重构
- 增加 Sniper() 类
- 整合并删除 config.py
- 变量名称格式化
- 雏形已完成
- 计划完成皮肤优化
- 打包
- 4种模式已测试完成
- 交易截图已保存
- GUI 接口数据类型等未测试
pip install pyqt5 --user
python ./main.py
- 不用打印价格, 已经有实时显示功能
- 购买单价, 购买花费数目, 卖出单价, 卖出花费数目, 参数未成功传递, 仍为 init 初始值
- 止损模式价格仍然为 init 初始值
- 2021/06/14 00:00:39
- 小火箭 - To The Moon
- Waltzing
- FastShot
- QuickWin
- Whizzbang
- 用户网页下单: 邮箱地址 + 付款地址, 付款
- woocommerce API + 后端循环扫描: 判定条件 + 收款信息 + 邮箱地址, 发送邮件
- 第一次打开软件: 向服务端发起: 激活码 + 机器码(CPU + MAC + 激活时间 + ...), 服务器保存, 登记时间
- 第二次打开软件: 向服务端发起: 检验 激活码 + 机器码
conda create --name rocket python=3.8.5
conda activate rocket
pip install wmi -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pypiwin32 -i https://pypi.tuna.tsinghua.edu.cn/simple
- 将
Lib\site-packages\pywin32_system32
中这两个文件复制到C:\Windows\System32
目录下:pythoncom38.dll
和pywintypes38.dll
pip install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install tinyaes -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install web3 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
- 打开命令行, 进入文件夹, 放好图标
pyinstaller -F -w --key=wiger --clean --icon=roc.ico main.py
- dist 文件夹见