一、前言
DEX上有很多零风险套利的机会,包括三角套利,夹子机器人… 今天主要介绍一下架子机器人的思路和简易实现。
二、实现思路
套利原理:
- 夹子机器人的核心:在韭菜买入前以更低价格买入,并再韭菜买入后卖出,赚取差价 / 在韭菜卖出前以更高价格将token卖出 ,并在韭菜卖出后以低价将原token买回。
- 所谓夹子,就是夹的交易用户,赚取差价。
代码实现思路:
- 如何知道何时有用户交易? 需要监听链上待打包交易,可用websoket去监听
- 链上那么多交易事件,怎么知道哪一笔是我们要的? 筛选交易的 transaction.to / transaction.from 是目标DEX 的 router 合约地址,同时还需要过滤掉我们自己机器人的钱包地址,避免自己夹自己,进入死循环。
- 如何做到在用户买前买,卖前卖? 手动设置比用户更高的Gas,让矿工优先去打包我们的交易
- 如何区分该笔交易调用的什么方法,我该怎么触发交易去夹它? 用 inteface 去 decode transaction.data,去判断swap的token中是否有原生token,选择不同的合约方法去调用
swapExactETHForTokens / swapTokensForExactTokens
三、代码片段
- 创建监听:
const customWsProvider = new ethers.providers.WebSocketProvider