Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marktoda/uniswapx-artemis
Sample Artemis bot to fill UniswapX orders using on-chain liquidity
https://github.com/marktoda/uniswapx-artemis
Last synced: about 1 month ago
JSON representation
Sample Artemis bot to fill UniswapX orders using on-chain liquidity
- Host: GitHub
- URL: https://github.com/marktoda/uniswapx-artemis
- Owner: marktoda
- License: mit
- Created: 2023-07-22T10:33:28.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-30T09:28:02.000Z (11 months ago)
- Last Synced: 2024-05-20T22:43:23.295Z (4 months ago)
- Language: Rust
- Size: 291 KB
- Stars: 156
- Watchers: 3
- Forks: 23
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# UniswapX Atomic Filler
This is a sample [Artemis](https://github.com/paradigmxyz/artemis) bot that fills UniswapX orders atomically using Uniswap v2 and v3 liquidity.
Feel free to fork and modify to run any strategies you wish to fill UniswapX orders!
# Usage
First you must deploy an executor contract that implements the [IReactorCallback](https://github.com/Uniswap/UniswapX/blob/main/src/interfaces/IReactorCallback.sol) interface. This sample currently uses the provided [SwapRouter02Executor](https://github.com/Uniswap/UniswapX/blob/main/src/sample-executors/SwapRouter02Executor.sol).
Then update the address constant in [uniswapx_strategy](./src/strategies/uniswapx_strategy.rs) to point to your executor contract.
Finally, run the bot with the following command:
```
cargo run -- --wss --private-key --bid-percentage
```# Collectors
### [block-collector](./src/collectors/block_collector.rs)
Collects new blocks as they are confirmed. Similar to the base one in Artemis-core but includes timestamp data to resolve dutch decays
### [uniswapx-order-collector](./src/collectors/uniswapx_order_collector.rs)
Collects new executable UniswapX orders as they are posted.
### [uniswapx-route-collector](./src/collectors/uniswapx_route_collector.rs)
Finds on-chain AMM routes to fill UniswapX orders. Ran in a separate collector thread as these can be slow and don't want to block other processing.
# Strategies
### [uniswapx-strategy](./src/strategies/uniswapx_strategy.rs)
Simple strategy that batches UniswapX orders together by tokenin/tokenout pair and attempts to fill using Uniswap protocol liquidity
# Crates
### [uniswapx-rs](./crates/uniswapx-rs)
Library for encoding, decoding, and resolving UniswapX dutch orders### [bindings-uniswapx](./crates/bindings-uniswapx)
Autogenerated forge bindings for UniswapX contracts