7 个版本 (4 个破坏性版本)
0.5.2 | 2022 年 12 月 3 日 |
---|---|
0.5.1 | 2022 年 11 月 3 日 |
0.4.0 | 2022 年 11 月 3 日 |
0.3.0 | 2022 年 10 月 19 日 |
0.1.0 | 2022 年 10 月 19 日 |
在 #arbitrage 中排名 #2
1.5MB
789 行
机器人 •
使用纯 Rust 和 Huff 构建的高度优化的三明治机器人。
注意
在 prod 环境中测试 Zuck Gobble Fast,我意外地破坏了它,快速丢失所有 ETH
用法
所需准备
- 如果没有安装,请安装 rust。
- 从 contracts 目录部署三明治合约,或重用现有的一个。
- 创建一个
.env
文件并设置所需的变量,参考下面的环境变量。(注意:我们已经将.env
和.env.prod
添加到.gitignore
文件中,这样您就不会意外地将密钥提交到仓库。所有其他密钥提交都是您的责任。请谨慎行事。)
警告
某些提供商不支持机器人使用的所有 RPC 方法。
例如,无法使用 infura 监听待处理事务,因为不支持
eth_newPendingTransactionFilter
。
RPC_URL=http://127.0.0.1:8545
RPC_URL_WSS=ws://127.0.0.1:8545
PRIVATE_KEY=0000000000000000000000000000000000000000000000000000000000000001
FLASHBOTS_AUTH_KEY=0000000000000000000000000000000000000000000000000000000000000002
SANDWICH_CONTRACT=0x0000000000000000000000000000000000000000
然后,您可以直接运行机器人:
cargo run --bin subway --release
您应该可以正常运行了!
库使用
要作为库使用,请在您的 Cargo.toml
中将 subway-rs 添加为依赖项。
[dependencies]
subway-rs = "0.5.0"
基准测试
要运行基准测试,只需运行
cargo bench
可以通过向 cargo 提供带有基准名称的 --bench
标志来运行单个基准测试。 (例如,cargo bench --bench utils
)
蓝图
.
├─ src
│ ├─ lib.rs — Exported modules with a re-exported prelude.
│ ├─ main.rs — The main bot binary.
│ ├─ numeric.rs — Refactored functions for numeric operations.
│ ├─ relayer.rs — Wrappers for network requests.
│ ├─ telemetry.rs — Telemetry for verbose logging.
│ ├─ uniswap.rs — Uniswap library.
│ └─ utils.rs — Common utilities.
└─ tests
└─ Tests so exhaustive, it'll knock your (uni)-socks off
鸣谢
依赖项
~28–44MB
~714K SLoC