amms-rs
is a Rust library to interact with automated market makers across EVM chains.
This lib provides functionality to discover, sync, filter, and interact with a variety of AMMs. This library also provides functionality to keep a state space synced, abstracting logic to handle chain reorgs, maintaining a state change cache and more.
amms-rs
was built with modularity in mind, making it quick and easy to add a new AMM
variant by implementing the AutomatedMarketMaker
trait. For a full walkthrough on how to quickly implement a new AMM
, check out addingAnAMM.md
.
To use amms
in your project, add the following to your Cargo.toml
[dependencies]
amms = "0.6.1"
Tests are still being written, assume bugs until tested. If you would like to help contribute on the tests or docs, feel free to open up an issue or make a PR.
AMM | Status |
---|---|
UniswapV2 Pools | ✅ |
UniswapV3 Pools | ✅ |
ERC4626 Vaults | ✅ |
Izumi Pools | 🟨 |
Curve Pools | ❌ |
Balancer Pools | ❌ |
Bancor Pools | ❌ |